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、它的有用選項以及與此實用程序相關的命令的一些有用演示。 希望你喜歡這篇文章。 如果您有任何意見或問題,請隨時在評論中告訴我們。