Den Befehl readelf Linux verstehen

Den Befehl readelf Linux verstehen
Bei der Arbeit mit verschiedenen Programmen und Compilern wie die GCC, Am Ende kompiliert Sie die Programme häufig in einem ausführbaren Binärformat. Die erzeugte Objektdatei ist nur von der Maschine verständlich, und der einzige Weg, wie Menschen arbeiten und ihren Inhalt verstehen können Readelf Befehl. Mit Readelf können Sie die Informationen aus den ELF -Dateien (ausführbarer und verknüpfbares Format) extrahieren. Das Readelf -Programm ähnelt fast dem objdump. Mit Readelf erhalten Sie jedoch spezifischere Details und im Gegensatz zu Objdumps ist es nicht auf die BFD Bibliothek.

Arbeiten Sie mit dem Befehl Readelf Linux

Installieren Sie ihn mit dem Befehl readelf mithilfe des folgenden Befehls:

$ sudo apt installieren Binutils

Nach der Installation können Sie seine Hilfeseite öffnen, indem Sie seinen Namen auf dem Terminal eingeben.

$ readelf

Es gibt verschiedene Optionen, die Sie mit Readelf verwenden können. Wir werden versuchen, die meisten von ihnen mit den Beispielen abzudecken. Stellen Sie zunächst sicher, dass Sie eine ELF -Datei für das Beispiel verwenden können.

Für unser Beispiel werden wir a verwenden C Programmcode, mit dem wir kompilieren werden GCC Um es in ELF umzuwandeln, wie in Folgendes gezeigt:

Verwenden Sie die folgende Syntax, um zu überprüfen, ob sich die Datei im ELF -Format befindet.

$ Datei-Dateiname

Wenn die Datei ELF ist, sollte sie in ihrer Ausgabe als Elf zurückkehren, wie im folgenden Bild gezeigt:

Anzeigen der Header der Elf -Datei

Das Readelf bietet die -H Flag, das alle Header im angegebenen Elf auflistet. In unserem Fall können wir alle Header in der auflisten Elf-Datei1 Wie im Folgenden dargestellt:

$ readelf -h Elf -Datei1

Anzeigen der ELF -Programmheader

Wenn Sie die Programmheader der Datei anzeigen möchten, verwenden Sie das -l -Flag.

In ähnlicher Weise können Sie die Abschnittsüberschriften mit dem -S -Flag erhalten. Die Ausgabe zeigt die verschiedenen Abschnitte, die im Adressraum der Prozesse enthalten sind:

Anzeige der Symboltabelle

Eine ELF -Datei enthält Symboltabellen. Sie können ihre Informationen mit dem -S -Flag extrahieren.

Sie können die verschiedenen Einträge in den Abschnitten der Symboltabelle Ihrer Datei wie in der vorherigen Ausgabe beachten.

Darüber hinaus ist es möglich, den Ausgang einzugrenzen und festzulegen, welcher Abschnitt unter den Abschnittsüberschriften, um seine Details zu erhalten. Die Syntax dafür ist:

$ readelf -p [Abschnittsname] [Dateiname]

Lassen Sie uns zum Beispiel die verwenden .Strtab.

Unsere Ausgabe wäre:

Die vorherige Ausgabe ist verständlicher und spezifischer für den Abschnitt.

Anzeigen der Kernnotizen

Wenn die Datei Anmerkungsegmente oder Abschnitte enthält, die -N Flag zeigt den Inhalt an. Sie können es wie im folgenden Beispielbild verwenden:

Einige der angezeigten Inhalte umfassen die Eigentümerdetails und die Datengröße.

Anzeige des Histogramms

Sie können die Länge der Bucket List in einem Histogramm darstellen, wenn Sie den Inhalt der Symboltabelle anzeigen. Der -ICH Option wird verwendet oder -Histogramm.

Anzeigen des Abschnitts zur Umsiedlung

Wenn die ELF -Datei Umzugabschnitte hat, können Sie den Inhalt mit dem erhalten -R oder -Relocs Flagge.

Wenn die Datei dynamische Abschnitte hat, kann der Inhalt des Abschnitts mit der Abschnitt abgerufen werden -D Flagge.

Der Inhalt enthält das Tag, den Typ und den Namen oder den Wert für jeden Inhalt.

Die Menge an Informationen über die ELF -Datei, die Sie mit dem Befehl readelf linux extrahieren können, ist endlos. Die Mannseite bietet mehrere Optionen, die Sie für verschiedene Aufgaben verwenden können. Alles, was Sie brauchen, ist nach einer Option zu suchen, die das erreicht, was Sie beabsichtigen, und sie verwenden.

Abschluss

Wir haben den Befehl readelf linux, die Installation und die Verwendung des Tools behandelt. Wenn Sie nach einem Tool suchen, um die verschiedenen Informationen zu ELF -Dateien anzuzeigen, ist Readelf perfekt für den Job. Es hat viele Optionen und das Gute ist, dass es einfach zu bedienen ist, wie wir in den gegebenen Beispielen gesehen haben. Versuch es!