当前位置:首页 > Linux > 正文

Linux二进制文件如何查看?

Linux二进制文件如何查看? 第1张

在Linux中可使用hexdump、xxd或od命令查看二进制文件的十六进制和ASCII内容,objdump工具可分析可执行文件结构。

命令行工具

hexdump – 十六进制转储

  • 功能:以十六进制和ASCII格式显示文件内容。
  • 常用命令: hexdump -C 文件名 # -C 显示十六进制和对应ASCII字符
  • 示例输出: 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 a0 10 40 00 00 00 00 00 |..>.......@.....|
  • 高级选项
    • -s 偏移量:跳过指定字节(如 -s 0x100)。
    • -n 长度:限制显示字节数(如 -n 512)。

xxd – 生成十六进制转储

  • 功能:类似hexdump,但支持反向转换(将十六进制转回二进制)。
  • 常用命令: xxd 文件名 # 默认十六进制格式 xxd -b 文件名 # 显示二进制格式(0和1)
  • 反向转换: xxd -r 十六进制文件.txt > 新二进制文件

od – 多格式转储

  • 功能:支持十进制、八进制、十六进制等多种格式。
  • 常用命令: od -t x1 -A x 文件名 # x1=单字节十六进制, A x=用十六进制显示偏移量 od -t a 文件名 # 仅显示ASCII字符

objdump – 分析可执行文件

  • 功能:反汇编代码、查看节区(section)信息。
  • 常用命令: objdump -d 文件名 # 反汇编代码段 objdump -h 文件名 # 显示文件头部和节区信息 objdump -s -j .data 文件名 # 查看.data节内容

strings – 提取文本字符串

  • 功能:扫描二进制文件中的可打印字符串。
  • 常用命令: strings 文件名 # 默认显示长度≥4的字符串 strings -n 10 文件名 # 显示长度≥10的字符串

gdb – 调试器查看内存

  • 功能:动态调试时查看内存或寄存器。
  • 步骤: gdb ./可执行文件 (gdb) x/16xb 内存地址 # 查看16字节的十六进制内容 (gdb) disas 函数名 # 反汇编特定函数


图形化工具

Bless – 十六进制编辑器

  • 安装: sudo apt install bless # Debian/Ubuntu
  • 功能:可视化编辑、支持多字节格式解析、搜索/替换。
  • 使用:bless 文件名

GHex – GNOME环境编辑器

  • 安装: sudo apt install ghex # Debian/Ubuntu
  • 特点:双面板显示(十六进制+ASCII),适合基础分析。


安全注意事项

  1. 谨慎操作:修改二进制文件可能导致程序崩溃或系统不稳定。
  2. 权限控制:使用普通用户权限查看,避免sudo执行高风险操作。
  3. 恶意文件防护:未知来源的二进制文件需用杀毒软件(如ClamAV)扫描: sudo apt install clamav && clamscan 文件名


方法选择建议

场景 推荐工具
快速查看内容 hexdump -C 或 xxd
反汇编分析代码 objdump -d
提取隐藏字符串 strings
可视化编辑 Bless
动态调试 gdb


Linux提供了丰富的二进制分析工具链:

Linux二进制文件如何查看? 第2张

  • 命令行工具适合自动化或服务器环境(如hexdump、objdump)。
  • 图形工具(如Bless)适合交互式深度分析。
  • 安全性和权限管理是操作前提,尤其处理外部文件时。

引用说明参考Linux手册页(man命令)、GNU Binutils官方文档及开源社区最佳实践,工具用法经Ubuntu 22.04 LTS和CentOS 7环境实测验证。

Linux二进制文件如何查看? 第3张

0