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

Linux二进制文件如何查看?

在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 -Cxxd
反汇编分析代码 objdump -d
提取隐藏字符串 strings
可视化编辑 Bless
动态调试 gdb

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

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

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

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

0