建立檔案的十六進位制轉儲


介紹

Hexdump 以十六進位制、十進位制、八進位制或 ASCII 格式顯示二進位制檔案內容。它是一個檢查工具,也可用於程式設計、逆向工程和資料恢復。它以十六進位制形式表示檔案的內容。本文將介紹我們可以用來生成檔案十六進位制轉儲的各種工具。我們將學習如何建立檔案的十六進位制轉儲。

為了用作本文的模型,讓我們生成一個 ASCII 文字檔案。

$ cat >> example.txt

這是我們檔案中示例文字。

我們將使用各種工具將其轉換為十六進位制。

使用 hexdump

Linux 帶有一個內建工具,稱為 hexdump,它允許您以十六進位制、十進位制、八進位制或 ASCII 格式過濾和檢視各種檔案的內容。它有效地用作檢查工具,並具有資料恢復功能。此外,我們可以使用它來檢查各種程式的可執行程式碼。

hexdump 的基本語法如下:

語法

$ hexdump [options…] [files …]

示例

讓我們從我們之前建立的 example.txt 檔案生成一個十六進位制轉儲:

$ hexdump example.txt

輸出

預設情況下,hexdump 命令將十六進位制資料輸出為 16 位數字。

$ hexdump example.txt 0000000 6854 7369 6920 2073 756f 2072 6173 706d 0000010 656c 7420 7865 2074 6e69 7420 6568 6620 0000020 6c69 2e65 570a 2065 6977 6c6c 6320 6e6f 0000030 6576 7472 6920 2074 6e69 6f74 6820 7865 0000040 7520 6973 676e 7620 7261 6f69 7375 7420 0000050 6f6f 736c 0a2e 0000056 $

如果要顯示十六進位制資料和 ASCII 資料,可以使用帶有規範標誌的相同命令。相同的命令將寫成:

示例

$ hexdump C example.txt

輸出

$ hexdump -C example.txt 00000000 54 68 69 73 20 69 73 20 6f 75 72 20 73 61 6d 70 |This is our samp| 00000010 6c 65 20 74 65 78 74 20 69 6e 20 74 68 65 20 66 |le text in the f| 00000020 69 6c 65 2e 0a 57 65 20 77 69 6c 6c 20 63 6f 6e |ile..We will con| 00000030 76 65 72 74 20 69 74 20 69 6e 74 6f 20 68 65 78 |vert it into hex| 00000040 20 75 73 69 6e 67 20 76 61 72 69 6f 75 73 20 74 | using various t| 00000050 6f 6f 6c 73 2e 0a |ools..| 00000056 $

使用 xxd

我們可以使用 xxd 生成檔案的十六進位制轉儲。此外,它可以用於將十六進位制轉儲返回到其原始 ASCII 或二進位制格式。

語法

Xxd 具有以下語法。

$ xxd [options …] [file …]

示例

讓我們執行命令:

$ xxd example.txt

輸出

$ xxd example.txt
00000000: 5468 6973 2069 7320 6f75 7220 7361 6d70 This is our samp
00000010: 6c65 2074 6578 7420 696e 2074 6865 2066 le text in the f
00000020: 696c 652e 0a57 6520 7769 6c6c 2063 6f6e ile..We will con
00000030: 7665 7274 2069 7420 696e 746f 2068 6578 vert it into hex
00000040: 2075 7369 6e67 2076 6172 696f 7573 2074 using various t
00000050: 6f6f 6c73 2e0a ools..
$

使用 od

od,也稱為八進位制轉儲,是將檔案轉換為不同格式的內建命令。八進位制格式是預設格式。

od 命令可以透過組合列出的每個檔案中的資料,按列出的順序接受多個檔案作為輸入。

藉助此命令,我們可以將可執行檔案轉換為人類可讀的格式,並用於除錯。

眾所周知,od 命令預設顯示八進位制格式的資料,輸出將使用 -t x1 標誌轉換為十六進位制格式:

示例

$ od -t x1 example.txt

輸出

$ od -t x1 example.txt
0000000 54 68 69 73 20 69 73 20 6f 75 72 20 73 61 6d 70
0000020 6c 65 20 74 65 78 74 20 69 6e 20 74 68 65 20 66
0000040 69 6c 65 2e 0a 57 65 20 77 69 6c 6c 20 63 6f 6e
0000060 76 65 72 74 20 69 74 20 69 6e 74 6f 20 68 65 78
0000100 20 75 73 69 6e 67 20 76 61 72 69 6f 75 73 20 74
0000120 6f 6f 6c 73 2e 0a
0000126

此外,我們可以將 -t x1 標誌與 -c 標誌結合使用以顯示每個字元的十六進位制值:

示例

$ od -t x1 -c example.txt

輸出

$ od -t x1 -c example.txt
0000000 54 68 69 73 20 69 73 20 6f 75 72 20 73 61 6d 70
   T h i s i s o u r s a m p
0000020 6c 65 20 74 65 78 74 20 69 6e 20 74 68 65 20 66
   l e t e x t i n t h e f
0000040 69 6c 65 2e 0a 57 65 20 77 69 6c 6c 20 63 6f 6e
   i l e . 
W e w i l l c o n
0000060 76 65 72 74 20 69 74 20 69 6e 74 6f 20 68 65 78 v e r t i t i n t o h e x 0000100 20 75 73 69 6e 67 20 76 61 72 69 6f 75 73 20 74 u s i n g v a r i o u s t 0000120 6f 6f 6c 73 2e 0a o o l s .
0000126 $

結論

本文介紹了將檔案轉換為十六進位制格式的各種工具。在處理可執行檔案和除錯目的時,編輯十六進位制檔案尤其重要。在本教程中,我們檢查了建立檔案十六進位制轉儲的各種工具。

更新於:2022 年 11 月 21 日

2K+ 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.