RISC-V Binutils工具链18之xxd命令的使用

Linux ELF 分析18之xxd工具的使用

xxd 用于将二进制文件转换为十六进制,也可以将hex dump 转回二进制。

1 xxd 工具常用选项

$ xxd --help

输出log见:xxd_help

1.1 基本模式

选项 说明
-r 反向模式(reverse):将 hex dump 文本还原为二进制数据。
-i 输出为C 语言头文件格式(C include style),适合嵌入代码。
-ps 输出为PostScript 风格的纯十六进制流(plain hexdump)。
-b 二进制位 dump:显示每个字节的 8 位二进制形式(而不是十六进制)。

注意:-r, -i, -ps, -b, -e 互不兼容,不能同时使用。

-i 模式输出示例:

unsigned char data[] = {
  0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x57, 0x6f,  // Hello Wo
  0x72, 0x6c, 0x64, 0x0a                           // rld.
};
unsigned int data_len = 12;

非常适合嵌入到 C/C++ 程序中。

1.2 输出格式控制

选项 说明
-c cols 每行显示 cols 个字节(octets)。默认 16。
-i 模式默认 12
-ps 模式默认 30
-g 每组显示 g 个字节,默认 2。
例如 -g 100 11 22
-g 400112233(常用于小端模式)
-u 使用大写字母表示十六进制(如 A-F
默认小写
-e 小端序(little-endian) dump,每 4 字节一组反序显示。
-g 4 类似,但格式固定。

1.3 显示风格与美化

选项 说明
-a 启用 autoskip:连续的空行(全 00)用一行 * 代替,节省输出空间
-E 显示字符部分使用 EBCDIC 编码(罕见,主要用于 IBM 主机环境)
默认使用 ASCII
-C -i 模式下,变量名使用大写(C 风格宏命名)

1.4 帮助与信息

选项 说明
-h 显示帮助信息(help)
-v 显示版本信息(version)

2 典型使用场景

命令 说明
xxd file.bin 默认 hex dump,16 字节/行
xxd -c 8 file.bin 每行 8 字节
xxd -g 1 file.bin 每组 1 字节,便于阅读
xxd -u file.bin 十六进制用大写字母
xxd -i file.bin 输出为 C 数组格式
xxd -i -C file.bin C 数组,变量名大写
xxd -e file.bin 小端序 dump,每 4 字节一组
xxd -b file.bin 二进制位 dump(0/1 形式)
xxd -ps file.bin 纯十六进制流,无地址和ASCII
xxd -r hexdump.txt binary.bin 将 hexdump 还原为二进制
xxd -s 512 -l 256 disk.img 从第 512 字节开始,读 256 字节
posted @ 2026-08-29 16:28  sureZ_ok  阅读(17)  评论(0)    收藏  举报