如何通過實際示例使用 Linux Hexdump 命令

Hexdump 是一個對開發人員和應用程序調試人員非常有用的 Linux 命令。 它能夠將文件內容轉儲為多種格式,如十六進制、八進制、ASCII 和十進制。 此命令將文件或任何標準輸入作為輸入參數並將其轉換為您選擇的格式。 假設您使用二進制數據並且無法理解文件的格式,您可以使用 Hexdump 命令以更好的可讀格式獲取文件內容。 此命令預裝在所有現代 Linux 操作系統中,例如 CentOS, Fedora, Ubuntu, Debian, Arch Linux 等。在本文中,我們將通過各種示例演示 hexdump 命令的使用。 這個命令是用 C 語言編寫的,對於專業的 C 程序員來說可能很容易理解,但對於其他 IT 專業人士來說,這可能是一個棘手的命令。 我們將盡力在本文中展示其用法和目的。

1) 十六進制轉儲 -b

將“-b”開關與 Hexdump 一起使用將以十六進制格式顯示輸入偏移量。 此選項也稱為“一字節八進制顯示”。 輸出之後將是 16 個空格分隔的三列零填充輸入數據字節,以八進制為單位,每行。 這裡是 example 我們在名為“Linoxide”的文件上使用“-b”開關運行此命令時收到的輸出。

# 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) 十六進制轉儲 -c

此選項稱為“單字節字符顯示”。 您可以使用此命令參數以十六進制顯示輸入偏移量。 輸出字符串之後將是每行輸入數據的十六個空格分隔、三列、空格填充的字符。 這裡是 example 此命令的輸出。

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) 十六進制轉儲 -C

也稱為“規範十六進制+ASCII 顯示”,它以十六進制顯示輸入偏移量,輸出後跟十六個空格分隔的兩列十六進製字節,以及用“| 括起來的 %_p 格式的相同十六個字節。 ” 人物。 這裡正在工作 example 這個命令選項。

# 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) 十六進制轉儲 -d

此開關/選項以十六進制顯示輸入偏移量,以及八個空格分隔、五列、零填充、兩字節單元的輸入數據。 每行輸出為無符號十進制。 它也被稱為“雙字節十進制顯示”模式。 這是 example 此命令的輸出。

 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) 十六進制轉儲 -o

也稱為“雙字節八進制顯示”,它以十六進制顯示指定的輸入偏移量。 命令的輸出後跟八個空格分隔、六列、零填充、兩個字節的輸入數據量,以八進製表示,每行。

# 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) 十六進制轉儲 -x

它以十六進制顯示偏移量,後跟八位、空格分隔、四列、零填充、兩字節的十六進制輸入數據量。 它被稱為“雙字節十六進制顯示”。

# 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) 十六進制轉儲 -v

默認情況下,hexdump 使用星號bash 替換輸出字符串中的相同行,但 -v 選項會導致 hexdump 顯示所有輸入數據。 在對任何字符串或文本的完整輸出進行分析時,此選項很有用。 這個命令可以在shell/

腳本以及更好地自動化您所需的任務。

8) 十六進制轉儲 -s

hexdump -s n -c  File

“Hexdump -s”僅顯示文件中指定的字節數,使用此選項的一般語法如下。 example 其中,將“n”替換為您想要顯示的行數,並將“文件”替換為您的實際文件名。 下列的

# hexdump -s 1 -c  Linoxide
0000001   h   i   s       i   s           a       t   e   s   t       L
0000011

產出應進一步澄清這一概念。

上面的命令將只顯示一行輸出。

man hexdump

您可以使用其幫助手冊獲取有關 hexdump 的更多詳細信息。 只需在 Linux 系統的終端上鍵入以下命令,它就會顯示可與 hexdump 一起使用的所有可能性和選項。

結論 bash Hexdump 是系統管理員和程序員非常有用的實用程序。 它使分析和解碼各種文件格式變得輕而易舉。 它可以很容易地用於


編程或 C 編程語言腳本來執行文件格式轉換或分析和逆向工程的複雜任務。 在本文中,我們介紹了 hexdump、它的有用選項以及與此實用程序相關的命令的一些有用演示。 希望你喜歡這篇文章。 如果您有任何意見或問題,請隨時在評論中告訴我們。