Skip to main content

So erstellen Sie einen Hexdump einer Datei oder einer Zeichenfolge

Zufälle in der Homematic / Zufällige Schalthandlungen der CCU (Kann 2025)

Zufälle in der Homematic / Zufällige Schalthandlungen der CCU (Kann 2025)
Anonim

Einführung

Ein Hex-Dump ist eine hexadezimale Ansicht von Daten. Möglicherweise möchten Sie beim Debuggen eines Programms hexadezimal verwenden oder ein Programm zurückentwickeln.

Beispielsweise haben viele Dateiformate bestimmte Hex-Zeichen, um ihren Typ anzugeben. Wenn Sie versuchen, eine Datei mit einem Programm zu lesen und aus irgendeinem Grund nicht korrekt geladen werden, kann es sein, dass die Datei nicht das erwartete Format hat.

Wenn Sie wissen möchten, wie ein Programm funktioniert, und Sie nicht über den Quellcode oder die Software verfügen, die den Code zurückentwickelt, können Sie sich den Hex-Dump anschauen, um herauszufinden, was passiert.

Was ist Hexadezimal?

Computer denken binär. Jedes Zeichen, jede Zahl und jedes Symbol wird durch einen binären oder mehrere binäre Werte referenziert.

Menschen neigen jedoch dazu, in Dezimalzahlen zu denken.

TausendeHunderteZehnEinheiten
1011

Als Menschen werden unsere niedrigsten Zahlen Einheiten genannt und stellen die Zahlen 0 bis 9 dar. Wenn wir 10 erreichen, setzen wir die Einheiten-Spalte auf 0 zurück und addieren 1 zur Zehner-Spalte (10).

1286432168421
10010001

Im Binärmodus stellt die niedrigste Zahl nur 0 und 1 dar. Wenn wir über 1 hinausgehen, setzen wir eine 1 in die Spalte von 2 und eine 0 in die Spalte von 1. Wenn Sie 4 darstellen möchten, setzen Sie eine 1 in die Spalte 4 und setzen die Spalte 2 und 1 zurück.

Um 15 darzustellen, hätten Sie also 1111, was für 1 Acht, 1 Vier, 1 Zwei und 1 Eins steht. (8 + 4 + 2 + 1 = 15).

Wenn wir eine Datendatei im Binärformat anzeigen, wäre das absolut riesig und praktisch unmöglich zu verstehen.

Der nächste Schritt von binär ist octal, wobei 8 als Basisnummer verwendet wird.

241681
0110

In einem Oktalsystem geht die erste Spalte von 0 bis 7, die zweite von 8 bis 15, die dritte von 16 bis 23 und die vierte von 24 bis 31 und so weiter. Im Allgemeinen einfacher zu lesen als binär, bevorzugen die meisten Leute Hexadezimal.

Hexadezimal verwendet 16 als Basisnummer. Jetzt wird es verwirrend, weil wir als Menschen Zahlen als 0 bis 9 betrachten.

Was wird also für 10, 11, 12, 13, 14, 15 verwendet? Die Antwort ist Briefe.

  • 0 = 0
  • 1 = 1
  • 2 = 2
  • 3 = 3
  • 4 = 4
  • 5 = 5
  • 6 = 6
  • 7 = 7
  • 8 = 8
  • 9 = 9
  • 10 = A
  • 11 = B
  • 12 = C
  • 13 = D
  • 14 = E
  • 15 = F

Der Wert 100 wird daher durch 64 dargestellt. Sie benötigen 6 der 16s-Spalte, die 96 und dann 4 in der 100-Einheiten-Spalte anzeigt.

Alle Zeichen in einer Datei werden durch einen Hexadezimalwert gekennzeichnet. Was diese Werte bedeuten, hängt vom Format der Datei selbst ab. Das Format der Datei wird durch hexadezimale Werte angegeben, die normalerweise am Anfang der Datei gespeichert werden.

Wenn Sie die Reihenfolge der hexadezimalen Werte kennen, die am Anfang von Dateien angezeigt werden, können Sie manuell herausfinden, in welchem ​​Format sich die Datei befindet. Durch das Anzeigen einer Datei in einem Hex-Dump können Sie versteckte Zeichen finden, die nicht angezeigt werden, wenn die Datei vorhanden ist in einen normalen Texteditor geladen.

So erstellen Sie einen Hex-Dump mit Linux

Um einen Hex-Dump mit Linux zu erstellen, verwenden Sie den Hexdump-Befehl.

Führen Sie den folgenden Befehl aus, um eine Datei als Hexadezimal für das Terminal anzuzeigen (Standardausgabe):

Hexdump-Dateiname

Zum Beispiel

hexdump image.png

Die Standardausgabe zeigt die Zeilennummer (im Hexadezimalformat) und dann 8 Sätze mit je 4 Hexadezimalwerten pro Zeile an.

Zum Beispiel:

00000000 5089 474e 0a0d 0a1a 0000 0d00 4849 5244

Sie können verschiedene Schalter angeben, um die Standardausgabe zu ändern. Durch die Angabe des Minus-b-Schalters wird beispielsweise ein 8-stelliger Versatz erzeugt, gefolgt von 16 dreispaltigen, nullspaltigen Bytes der Eingangsdaten im Oktalformat.

hexdump -b image.png

Daher wird das obige Beispiel nun wie folgt dargestellt:

00000000 211 120 116 107 015 012 032 012 000 000 000 015 111 110 104 122

Das obige Format ist als 1-Byte-Oktalanzeige bekannt.

Eine andere Möglichkeit zum Anzeigen der Datei besteht in der Ein-Byte-Zeichenanzeige mit dem Minus-c-Schalter.

hexdump -c image.png

Dies zeigt wieder den Versatz, aber diesmal gefolgt von sechzehn durch Leerzeichen getrennten, dreispaltigen, mit Leerzeichen gefüllten Zeichen der Eingangsdaten pro Zeile.

Andere Optionen umfassen eine kanonische Hex + ASCII-Anzeige, die mit dem Minus-C-Schalter angezeigt werden kann, und eine 2-Byte-Dezimalanzeige, die mit dem Minus-D-Schalter angezeigt werden kann. Mit der Minus-Taste können Sie eine 2-Byte-Oktalanzeige anzeigen. Schließlich kann der Schalter x x x zur Anzeige einer 2-Byte-Hexadezimalanzeige verwendet werden.

hexdump -C image.png

hexdump -d image.png

hexdump -o image.png

hexdump -x image.png

Wenn keines der oben genannten Formate Ihren Anforderungen entspricht, verwenden Sie den Schalter minus e, um das Format anzugeben.

Wenn Sie wissen, dass eine Datendatei sehr lang ist und Sie nur die ersten Zeichen sehen möchten, um ihren Typ zu bestimmen, können Sie mit der Option -n angeben, wie viel Datei in Hex angezeigt werden soll.

hexdump -n100 image.png

Der obige Befehl zeigt die ersten hundert Bytes an.

Wenn Sie einen Teil der Datei überspringen möchten, können Sie den Minus-Schalter verwenden, um einen Versatz festzulegen, von dem aus begonnen werden soll.

hexdump -s10 image.png

Wenn Sie keinen Dateinamen angeben, wird der Text aus der Standardeingabe gelesen.

Geben Sie einfach den folgenden Befehl ein:

Hexdump

Geben Sie dann den Text in die Standardeingabe ein und beenden Sie die Eingabe mit quit. Das Hex wird auf der Standardausgabe angezeigt.

Zusammenfassung

Das Hexdump-Dienstprogramm ist offensichtlich ein ziemlich leistungsfähiges Werkzeug, und Sie sollten die Handbuchseite auf jeden Fall lesen, um sich mit allen Funktionen vertraut zu machen.

Sie benötigen auch ein gutes Verständnis dafür, wonach Sie suchen, wenn Sie die Ausgabe lesen.

Führen Sie den folgenden Befehl aus, um die manuelle Seite anzuzeigen:

Mann Hexdump