在 Linux 中查看二进制文件有多种方法,以下是常用的工具和操作示例,如何在Linux中轻松查看二进制文件?这5种方法你试过吗?,Linux高手必备,这5种查看二进制文件的神器,你用过几种?
hexdump(十六进制与 ASCII 查看工具)
hexdump -C 文件名
-C选项:以经典格式显示,左侧为十六进制偏移量,中间为十六进制字节表示,右侧为对应的 ASCII 字符- 特点:
- 输出格式清晰规整,适合快速查看文件结构和内容
- 无需安装额外软件,大多数 Linux 发行版默认包含
- 进阶用法:
-n 字节数:限制显示的index.php/tags-522.html" class="superseo">文件字节数-s 偏移量:从指定偏移量开始显示-v:显示所有数据(默认会省略重复行)
xxd(十六进制转储与转换工具)
xxd 文件名
- 默认行为:每行显示16字节的十六进制表示,右侧附带对应的 ASCII 字符
- 独特功能:
- 反向转换:可将十六进制转储还原为二进制文件:
xxd -r 十六进制文件 输出文件
- 二进制修补:直接编辑十六进制输出并转换回二进制
- 反向转换:可将十六进制转储还原为二进制文件:
- 实用选项:
-l 长度:限制显示/转换的字节长度-s 偏移量:从指定偏移量开始操作-p:以连续十六进制流格式输出(适合管道处理)
od(多格式转储工具)
od -tx1 -Ax 文件名
- 常用参数组合:
-tx1 -Ax:以单字节十六进制格式显示,使用十六进制偏移量-tc -Ax:显示 ASCII 字符及十六进制偏移量-td4:以4字节十进制格式显示
- 优势:
- 支持多种输出格式(八进制、十进制、十六进制、浮点数等)
- 可自定义输出格式(
-t选项后接格式说明符)
- 专业用法:
-j 偏移量:跳过指定字节数-N 字节数:限制读取的字节数-w 字节数:控制每行显示的字节数
strings(可打印字符串提取工具)
strings 文件名
- 核心功能:从二进制文件中提取连续可打印字符(默认长度≥4)
- 应用场景:
- 检查二进制文件中的隐藏文本信息(如版权声明、配置参数)
- 分析恶意软件中的字符串线索(如URL、API调用)
- 恢复损坏文档中的可读内容
- 常用选项:
-n 长度:设置最小字符串长度阈值-t 格式:显示字符串偏移量(x=十六进制,d=十进制,o=八进制)-e 编码:指定字符编码(l=16位小端,b=16位大端)
objdump(可执行文件反汇编工具)
objdump -d 文件名
- 主要功能:
- 反汇编可执行文件(
-d选项) - 显示详细符号表(
-t选项) - 查看段头信息(
-h选项) - 显示动态链接信息(
-p选项)
- 反汇编可执行文件(
- 高级用法:
-M intel:使用Intel语法反汇编(默认AT&T语法)--disassemble=函数名:反汇编特定函数-S:混合显示源代码和汇编代码(需编译时带调试信息)
- 适用对象:ELF、PE、Mach-O等常见可执行文件格式
readelf(ELF 文件专业分析工具)
readelf -a 文件名
- 专精领域:ELF 格式文件(Linux 可执行文件、共享库、核心转储等)
- 关键功能:
-S:显示完整的节头表(section headers)-l:查看程序头表(program headers)和段信息-d:显示动态段信息(依赖库等)-s:分析符号表(函数和变量符号)-r:检查重定位条目
- 专业选项:
-x 节名/索引:以十六进制显示指定节内容-p 节名/索引:显示指定节内容为字符串--debug-dump:提取DWARF调试信息
gdb(调试器内存查看)
gdb -batch -ex "x/16xb 0x地址" 文件名
- 核心功能:
- 动态调试时查看内存内容
- 分析程序运行时状态
- 反汇编执行代码
- 常用内存检查命令:
x/10xw:查看10个字(4字节)的十六进制值x/20cb:以字符格式显示20个字节x/s 地址:显示以null结尾的字符串x/i 地址:反汇编指定地址的指令
- 高级技巧:
set print pretty on:美化结构体输出info registers:查看寄存器状态disassemble 函数名:反汇编整个函数
图形化工具推荐
| 工具名称 | 特点 | 适用场景 |
|---|---|---|
| Bless | 功能丰富的GTK+十六进制编辑器 | 文件手动分析与修改 |
| GHex | GNOME 环境原生工具,界面简洁 | 基础十六进制编辑 |
| radare2/Cutter | 专业逆向工程套件,支持脚本化 | 高级二进制分析与逆向 |
| 010 Editor | 跨平台专业编辑器(商业软件) | 模板解析复杂二进制结构 |
| Ghidra | NSA开源逆向工程框架 | 专业级二进制分析 |
| HxD | Windows平台轻量级编辑器 | 快速查看与简单编辑 |
实用场景示例
-
快速验证文件类型签名
xxd 文件 | head -n 5
-
搜索特定字节模式(如魔术数字)
hexdump -C 文件 | grep "1a 2b 3c"
-
提取二进制中的网络相关字符串
strings -n 8 -t x 文件 | grep -E "http://|https://"
-
分析可疑可执行文件的导入函数
objdump -T 可疑文件 | less
-
检查ELF文件的安全属性
readelf -a 程序 | grep -E "STACK|RELRO"
-
比较两个二进制文件的差异
diff <(xxd 文件1) <(xxd 文件2)
工具选择指南
-
快速预览文件内容:
- 基础查看:
hexdump -C或xxd - 字符串提取:
strings
- 基础查看:
-
格式转换与修补:
- 十六进制转二进制:
xxd -r - 二进制转ASCII:
od -tc
- 十六进制转二进制:
-
可执行文件分析:
- 基础分析:
objdump -d - 深度检查:
readelf -a
- 基础分析:
-
专业逆向工程:
- 交互式分析:
radare2 - 图形化逆向:
Ghidra/Cutter
- 交互式分析:
-
动态分析:
- 调试:
gdb - 系统调用跟踪:
strace - 库调用跟踪:
ltrace
- 调试:
专业建议:建立系统化的分析流程:
- 使用
file命令确定文件类型- 用
xxd或hexdump查看文件头部特征- 用
strings提取可读字符串- 根据文件类型选择专用工具深入分析
- 必要时使用图形化工具进行交互式分析
(二进制文件分析的标准工作流程示意图)
(现代十六进制编辑器的典型功能布局)
(主流二进制分析工具的功能矩阵比较)
相关阅读:
1、VPS搭云盘,高效便捷的文件管理,轻松实现云存储新体验!
2、Linux用户组的作用与管理详解,Linux用户组到底有多重要?一文掌握核心管理与实战技巧!
3、深入理解Linux内核中的ioctl系统调用,Linux内核中的ioctl系统调用,它到底有多强大?,ioctl系统调用究竟有多强大?揭秘Linux内核的终极控制利器!
4、电脑VPS操作指南,轻松搭建个人服务器,实现高效远程访问与管理!
5、亚马逊VPS关闭全攻略,详细步骤,轻松操作指南
高防服务器,游戏服务器,高防IP,服务器租用托管





