Der Befehl objdump linux

Der Befehl objdump linux

„Der Objdump ist ein Befehlszeilen-Dienstprogramm, mit dem Informationen zu einem Objekt auf Unix-ähnlichen Systemen angezeigt werden. Der Befehl erhält bei Verwendung die Informationen einer Objektdatei, auch wenn Sie keinen Quellcode haben. Daher kann es ein Debugging -Tool für Objektdateien sein, insbesondere bei der Arbeit mit Compiler -Programmen.”

Dieser Leitfaden deckt die verschiedenen Verwendungen des Objdump -Befehls mit Beispielen ab. Hör zu.

Verwendungen des Objdump -Befehls

Der objdump hat 6 Hauptzwecke:

  • Um die Objektdatei zu debuggen
  • Abrufdatei -Header
  • Den bfdnamen bekommen
  • Abrufen des Archivkopfes
  • Offsets einer Datei abrufen
  • Eine Objektdatei zerlegen

Seine grundlegende Syntax ist:

$ objdump

Es gibt viele Optionen, die Sie mit dem Befehl objdump verwenden können, und Sie können die Hilfeseite anzeigen, um sie anzuzeigen.

$ objdump -HELP

Dieser Artikel verwendet das /bin /echo als unsere Objektdatei für unsere Beispiele. Sie können jedoch andere Objektdateien wie C -Programme verwenden. Die Verwendung ist immer noch die gleiche.

Arbeiten mit Objdump

Dateiheader der Objektdatei anzeigen

Die Option -f arm. Denken Sie daran, wir verwenden das /bin /echo, eine binäre ausführbare Datei für den Befehl echo als unser Objekt in diesem Fall.

$ objdump -f /bin /echo

Die resultierende Ausgabe, die die Datei -Header anzeigt, lautet:

Sie können das Format und die Header der Objektdatei aus der Ausgabe beachten.

Um die objektspezifischen Dateihoitzen zu erhalten

Wenn Sie bestimmte Dateiheader für die von Ihnen verwendete Objektdatei anzeigen müssen, verwenden Sie die Option -P.

$ objdump -p /bin /echo

Anzeigen der Inhalte des Abschnitts Header

Jede Datei hat unterschiedliche Abschnittsüberschriften. Wenn Sie den Inhalt der einzelnen Abschnittsüberschriften anzeigen müssen, verwenden Sie die Option -H.

$ objdump -h /bin /echo

In diesem Fall war die Ausgabe:

Aus der Ausgabe können Sie feststellen, dass die verschiedenen Abschnittsüberschriften von 1 nummeriert sind und jeder Abschnitt -Header seine Größe, VMA, LMA, Datei und ALGN hat.

Größe: repräsentiert die Größe des geladenen Abschnitts.

VMA: repräsentiert die virtuelle Speicheradresse

Lma: repräsentiert die logische Speicheradresse

Datei abgeben: repräsentiert den Versatz des Abschnitts vom Beginn der Datei.

Algn: repräsentiert die Ausrichtung des Abschnitts.

Die anderen Details wie Alloc, Daten, Readonly und Inhalt sind die verschiedenen Flags, die darstellen, wenn der Abschnitt readonly oder geladen ist.

Zeigen Sie Informationen aller Header an

Sie können auch alle Informationen über die Header in der Objektdatei erhalten. Verwenden Sie dazu die Option -x.

$ objdump -x /bin /echo

In diesem Beispiel wird die teilweise Ausgabe für den obigen Befehl lautet:

Um den Assemblerinhalt des ausführbaren Abschnitts zu erhalten

Verwenden Sie die Option -d -Option, um den Assembler -Inhalt des ausführbaren Abschnitts des Abschnitts zu erhalten.

$ objdump -d /bin /echo

In diesem Beispiel lautet die teilweise Ausgabe:

Die Ausgabe wird in ausführbare Abschnitte unterteilt, und für jeden Versammlungsinhalt wird wie gezeigt angezeigt. Zum Beispiel können Sie den Abschnitt sehen “.Init ”und seinen entsprechenden Assembler -Inhalt darunter, bevor Sie mit dem nächsten ausführbaren Abschnitt der Objektdatei fortfahren.

Holen Sie sich den Assembler -Inhalt jedes Abschnitts

Der -D zeigt den Assemblerinhalt nur der ausführbaren Abschnitte an. Verwenden Sie jedoch die Option der D, wenn Sie den Inhalt für alle Dateiabschnitte benötigen.

$ objdump -d /bin /echo

Alle Inhalte aller Abschnitte zu bekommen

Verwenden Sie dazu die Option -S

$ objdump -s /bin /echo

Die Ausgabe für alle Abschnitte und deren Inhalt ist:

Debug -Informationen anzeigen

Die Option -G zeigt alle verfügbaren Debug -Informationen der Objektdatei an.

$ objdump -g /bin /echo

Inhalt der Symboltabelle anzeigen

Wenn die Objektdatei über eine Symboltabelle verfügt, können Sie ihren Inhalt mit der Option -t -Option anzeigen

$ objdump -t /bin /echo

Abschluss

Ein Befehl objdump ist ein nützliches Werkzeug für Programmierer, die sich mit Compilern befassen. Der Befehl hat mehrere Verwendungszwecke und wir haben die häufigste Beispielnutzung behandelt. Sie können auch seine Mannseite überprüfen, um weitere Informationen darüber zu erhalten, wie Sie das Tool verwenden können. Darüber hinaus kann der Befehl etwas überwältigend werden. Üben Sie also weiter mehr. Alles Gute!