Hexdump ist ein sehr nützlicher Linux-Befehl für Entwickler und Anwendungsdebugger. Es hat die Fähigkeit, Dateiinhalte in vielen Formaten wie Hexadezimal, Oktal, ASCII und Dezimal auszugeben. Dieser Befehl nimmt eine Datei oder eine beliebige Standardeingabe als Eingabeparameter und konvertiert sie in das Format Ihrer Wahl. Angenommen, Sie arbeiten mit Binärdaten und können das Format einer Datei nicht verstehen. Sie können den Befehl Hexdump verwenden, um Dateiinhalte in einem viel besser lesbaren Format zu erhalten. Dieser Befehl ist auf allen modernen Linux-Betriebssystemen wie CentOS, Fedora, Ubuntu, Debian, Arch Linux usw. vorinstalliert. In diesem Artikel demonstrieren wir die Verwendung des Hexdump-Befehls anhand verschiedener Beispiele. Dieser in C geschriebene Befehl mag für professionelle C-Programmierer leicht verständlich sein, aber für andere IT-Profis könnte er ein kniffliger Befehl sein. Wir werden unser Bestes tun, um seine Verwendung und seinen Zweck hier in diesem Artikel zu demonstrieren.
1) Hexdump -b
Die Verwendung des Schalters „-b“ mit Hexdump zeigt den Eingabe-Offset im Hexadezimalformat an. Diese Option wird auch "Ein-Byte-Oktalanzeige" genannt. Der Ausgabe folgen sechzehn durch Leerzeichen getrennte, dreispaltige, mit Nullen gefüllte Bytes von Eingabedaten in Oktalform pro Zeile. Hier ist die Beispielausgabe, die wir erhalten haben, als wir diesen Befehl mit dem Schalter „-b“ für eine Datei namens „Linoxide“ ausgeführt haben.
# hexdump -b Linoxide
0000000 124 150 151 163 040 151 163 040 040 141 040 164 145 163 164 040
0000010 114 151 156 157 170 151 144 145 040 106 151 154 145 012 125 163
0000020 145 144 040 146 157 162 040 144 145 155 157 156 163 164 162 141
0000030 164 151 157 156 040 160 165 162 160 157 163 145 163 012 012
000003f
2) Hexdump -c
Diese Option wird als "Ein-Byte-Zeichenanzeige" bezeichnet. Mit diesem Befehlsparameter können Sie den Eingangs-Offset hexadezimal anzeigen. Auf die Ausgabezeichenfolge folgen sechzehn durch Leerzeichen getrennte, dreispaltige, mit Leerzeichen gefüllte Zeichen der Eingabedaten pro Zeile. Hier ist die Beispielausgabe dieses Befehls.
hexdump -c Linoxide
0000000 T h i s i s a t e s t
0000010 L i n o x i d e F i l e \n U s
0000020 e d f o r d e m o n s t r a
0000030 t i o n p u r p o s e s \n \n
000003f
3) Hexdump -C
Auch als "kanonische Hex+ASCII-Anzeige" bekannt, zeigt dies den Eingabe-Offset in hexadezimaler Form an, der Ausgabe folgen sechzehn durch Leerzeichen getrennte, zweispaltige, hexadezimale Bytes, zusammen mit den gleichen sechzehn Bytes im %_p-Format, eingeschlossen in ``| '' Figuren. Hier ist ein funktionierendes Beispiel für diese Befehlsoption.
# hexdump -C Linoxide
00000000 54 68 69 73 20 69 73 20 20 61 20 74 65 73 74 20 |This is a test |
00000010 4c 69 6e 6f 78 69 64 65 20 46 69 6c 65 0a 55 73 |Linoxide File.Us|
00000020 65 64 20 66 6f 72 20 64 65 6d 6f 6e 73 74 72 61 |ed for demonstra|
00000030 74 69 6f 6e 20 70 75 72 70 6f 73 65 73 0a 0a |tion purposes..|
0000003f
4) Hexdump -d
Dieser Schalter/Option zeigt den Eingabe-Offset im Hexadezimalformat zusammen mit acht durch Leerzeichen getrennten, fünfspaltigen, mit Nullen gefüllten Zwei-Byte-Einheiten von Eingabedaten. Die Ausgabe erfolgt in vorzeichenloser Dezimalzahl pro Zeile. Er wird auch als "Zwei-Byte-Dezimalanzeige"-Modus bezeichnet. Hier ist eine Beispielausgabe dieses Befehls.
hexdump -d Linoxide
0000000 26708 29545 26912 08307 24864 29728 29541 08308
0000010 26956 28526 27000 25956 17952 27753 02661 29525
0000020 25701 26144 29295 25632 28005 28271 29811 24946
0000030 26996 28271 28704 29301 28528 25971 02675 00010
000003f
5) Hexdump -o
Auch als "Zwei-Byte-Oktalanzeige" bekannt, zeigt es den angegebenen Eingangs-Offset in Hexadezimalform an. Der Ausgabe des Befehls folgen acht durch Leerzeichen getrennte, sechs Spalten, mit Nullen gefüllte, zwei Byte große Mengen an Eingabedaten, in Oktalform, pro Zeile.
# hexdump -o Linoxide
0000000 064124 071551 064440 020163 060440 072040 071545 020164
0000010 064514 067556 064570 062544 043040 066151 005145 071525
0000020 062145 063040 071157 062040 066545 067157 072163 060562
0000030 064564 067157 070040 071165 067560 062563 005163 000012
000003f
6) Hexdump -x
Es zeigt den Offset in Hexadezimalform, gefolgt von acht, durch Leerzeichen getrennten, vierspaltigen, mit Nullen gefüllten, Zwei-Byte-Eingabedatenmengen in Hexadezimalform. Dies wird als "Zwei-Byte-Hexadezimalanzeige" bezeichnet.
# hexdump -x Linoxide
0000000 6854 7369 6920 2073 6120 7420 7365 2074
0000010 694c 6f6e 6978 6564 4620 6c69 0a65 7355
0000020 6465 6620 726f 6420 6d65 6e6f 7473 6172
0000030 6974 6e6f 7020 7275 6f70 6573 0a73 000a
000003f
7) Hexdump -v
Standardmäßig verwendet Hexdump das Sternchen (*), um die identische Zeile in der Ausgabezeichenfolge zu ersetzen, aber die Option -v bewirkt, dass Hexdump alle Eingabedaten anzeigt. Diese Option ist nützlich, wenn Sie die Analyse der vollständigen Ausgabe einer Zeichenfolge oder eines Textes durchführen. Dieser Befehl kann auch in Shell-/Bash-Skripten verwendet werden, um Ihre gewünschten Aufgaben besser zu automatisieren.
8) Hexdump -s
"Hexdump -s" zeigt nur die angegebene Anzahl von Bytes aus einer Datei an, die allgemeine Syntax zur Verwendung dieser Option ist wie folgt.
hexdump -s n -c File
Ersetzen Sie dabei "n" durch die Anzahl der anzuzeigenden Zeilen und "Datei" durch Ihren tatsächlichen Dateinamen. Die folgende Beispielausgabe sollte dieses Konzept weiter verdeutlichen.
# hexdump -s 1 -c Linoxide
0000001 h i s i s a t e s t L
0000011
Der obige Befehl zeigt nur eine Ausgabezeile an.
Weitere Informationen zu Hexdump finden Sie in der Hilfeanleitung. Geben Sie einfach den folgenden Befehl auf dem Terminal Ihres Linux-Systems ein und es werden alle Möglichkeiten und Optionen angezeigt, die mit Hexdump verwendet werden können.
man hexdump
Schlussfolgerung
Hexdump ist ein ziemlich nützliches Dienstprogramm für Systemadministratoren und Programmierer. Es macht das Analysieren und Dekodieren der verschiedenen Dateiformate zum Kinderspiel. Es kann einfach in der Bash-Programmierung oder in Skripten der Programmiersprache C verwendet werden, um komplexe Aufgaben der Dateiformatkonvertierung oder Analyse und Reverse Engineering durchzuführen. In diesem Artikel haben wir Hexdump, seine nützlichen Optionen und einige nützliche Demonstrationen der Befehle für dieses Dienstprogramm vorgestellt. Ich hoffe, Ihnen hat dieser Artikel gefallen. Wenn Sie Kommentare oder Fragen haben, können Sie uns dies gerne in den Kommentaren mitteilen.