在 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
提取可读字符串- 根据文件类型选择专用工具深入分析
- 必要时使用图形化工具进行交互式分析
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理!
部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!
图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!