Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Linux hexdump 命令全解析:二進制文件多進制視圖與結構化分析

編輯:關於 Linux

hexdump 是 Linux 系統分析二進制文件結構的瑞士軍刀。它能以十六進制、八進制、十進制、ASCII 碼等多種視圖呈現文件字節內容,支援自定義格式化輸出,是逆向工程、協議分析、文件格式驗證的核心工具。本文系統講解核心參數、輸出模式解讀、實戰分析技巧,助您洞悉二進制黑盒。

hexdump 多模式輸出對比

核心參數矩陣

參數顯示模式行寬特點典型場景
-b八進制位元組16 字節/行偏移量十六進制,純數值位級別標誌位檢查
-cASCII 字符16 字節/行可打印字符直觀,控制字符轉義文本片段提取、字符串搜尋
-C經典十六進制 + ASCII16 字節/行左側十六進制,右側 ASCII 對照 (|...|)通用首選,文件頭識別、結構對齊
-d十進制雙字節 (2 字節)8 個單位/行無符號十進制,小端序數值型數據快速讀取
-o八進制雙字節8 個單位/行無符號八進制舊系統文件格式分析
-x十六進制雙字節8 個單位/行無符號十六進制,小端序16 位字長數據結構
-n N限制解析長度-單位默認字節,支援 0x/0 前綴指定進制大文件定位頭部/特定偏移
-v顯示全部 (不折疊重複行)-默認折疊連續相同行為 *完整導出、差異對比
-e '格式字符串'自定義格式化-支援多格式串疊加,類 printf 語法專用報表、結構化導出

經典模式輸出解讀 (-C 推薦)

$ hexdump -C -n 32 /bin/ls
00000000  7f 45 4c 46 02 01 01 00  00 00 00 00 00 00 00 00  |.ELF...........|
00000010  02 00 3e 00 01 00 00 00  c0 13 40 00 00 00 00 00  |..>.......@....|

三欄結構:

  1. 偏移地址:十六進制,行首 (00000000)
  2. 十六進制數據區:16 字節,空格分組 (7f 45 4c 46 ...)
  3. ASCII 視圖區:| 包裹,可打印字符顯示,不可打印顯示 . (|.ELF...........|)

文件頭識別:7f 45 4c 46 = ELF 魔數,確認為 Linux 可執行文件。

自定義格式化輸出 (-e 進階)

格式字符串語法:'格式單元 解釋單元',支援 %_p (指針地址)、%_u (無符號十進制) 等擴展。

示例 1:結構化導出 32 位無符號整數陣列

hexdump -e '4/4 "%08x " "\n"' data.bin
# 輸出:每行 4 個 4 字節十六進制數,空格分隔,換行

示例 2:模擬 C 結構體輸出

# 結構:struct { uint32_t id; char name[16]; float score; }
hexdump -e '"ID: " 1/4 "%u" "  Name: " 16/1 "%_p" "  Score: " 1/4 "%f" "\n"' record.bin

實戰分析技巧

技巧 1:快速識別文件類型 (魔數表)

hexdump -C -n 16 unknown.bin | head -5
# 常見魔數:
# 7f ELF        → ELF 可執行文件
# 89 50 4E 47   → PNG 圖片
# FF D8 FF      → JPEG 圖片
# 4D 5A         → Windows PE (exe/dll)
# 25 50 44 46   → PDF 文檔
# 50 4B 03 04   → ZIP 壓縮包 (含 JAR/APK/DOCX)

技巧 2:提取嵌入字符串 (配合 strings)


# hexdump 定位偏移
hexdump -C firmware.bin | grep -A2 -B2 "password"
# 精確提取
hexdump -C -s 0x1A2B0 -n 64 firmware.bin

技巧 3:對比兩文件差異


# 生成標準化十六進制流
hexdump -v -e '1/1 "%02x " "\n"' file1 > f1.hex
hexdump -v -e '1/1 "%02x " "\n"' file2 > f2.hex
diff -u f1.hex f2.hex

技巧 4:分析網絡封包 (pcap 全局頭)


hexdump -C -n 24 capture.pcap
# 24 字節全局頭:魔數(4) 版本(2+2) 時區(4) 精度(4) 捕獲長度(4) 鏈路類型(4)
# a1 b2 c3 d4 → 微端序 pcap (標準)
# d4 c3 b2 a1 → 大端序 pcap

配套工具鏈

  • xxd:vim 內建,支援反向轉換 (xxd -r),編輯二進制首選
  • od:POSIX 標準,支援更多數據類型 (浮點、雙精度)
  • strings:專門提取可打印字符串 (默認 ≥4 字符)
  • binwalk:固件分析神器,自動識別/提取嵌入文件系統
  • radare2 / ghidra:專業逆向工程框架,內建十六進制視圖

總結

hexdump 以 -C 為日常主力,-e 為深度分析利器。掌握「魔數識別 → 偏移定位 → 格式化解析 → 結構還原」四步法,配合 diff/strings/xxd 工具鏈,即可破解多數二進制文件結構謎題。記住:二進制不透明,唯有字節誠實。

Copyright © Windows教程網 All Rights Reserved