在 Linux 中查看二进制文件有多种方法,以下是常用的工具和操作示例,如何在Linux中轻松查看二进制文件?这5种方法你试过吗?,Linux高手必备,这5种查看二进制文件的神器,你用过几种?

04-10 4814阅读

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平台轻量级编辑器 快速查看与简单编辑

实用场景示例

  1. 快速验证文件类型签名

    xxd 文件 | head -n 5
  2. 搜索特定字节模式(如魔术数字)

    hexdump -C 文件 | grep "1a 2b 3c"
  3. 提取二进制中的网络相关字符串

    strings -n 8 -t x 文件 | grep -E "http://|https://"
  4. 分析可疑可执行文件的导入函数

    objdump -T 可疑文件 | less
  5. 检查ELF文件的安全属性

    readelf -a 程序 | grep -E "STACK|RELRO"
  6. 比较两个二进制文件的差异

    diff <(xxd 文件1) <(xxd 文件2)

工具选择指南

  • 快速预览文件内容

    • 基础查看:hexdump -Cxxd
    • 字符串提取:strings
  • 格式转换与修补

    • 十六进制转二进制:xxd -r
    • 二进制转ASCII:od -tc
  • 可执行文件分析

    • 基础分析:objdump -d
    • 深度检查:readelf -a
  • 专业逆向工程

    • 交互式分析:radare2
    • 图形化逆向:Ghidra/Cutter
  • 动态分析

    • 调试:gdb
    • 系统调用跟踪:strace
    • 库调用跟踪:ltrace

专业建议:建立系统化的分析流程:

  1. 使用file命令确定文件类型
  2. xxdhexdump查看文件头部特征
  3. strings提取可读字符串
  4. 根据文件类型选择专用工具深入分析
  5. 必要时使用图形化工具进行交互式分析

在 Linux 中查看二进制文件有多种方法,以下是常用的工具和操作示例,如何在Linux中轻松查看二进制文件?这5种方法你试过吗?,Linux高手必备,这5种查看二进制文件的神器,你用过几种? 第1张 (二进制文件分析的标准工作流程示意图)

在 Linux 中查看二进制文件有多种方法,以下是常用的工具和操作示例,如何在Linux中轻松查看二进制文件?这5种方法你试过吗?,Linux高手必备,这5种查看二进制文件的神器,你用过几种? 第2张 (现代十六进制编辑器的典型功能布局)

在 Linux 中查看二进制文件有多种方法,以下是常用的工具和操作示例,如何在Linux中轻松查看二进制文件?这5种方法你试过吗?,Linux高手必备,这5种查看二进制文件的神器,你用过几种? 第3张 (主流二进制分析工具的功能矩阵比较)


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

    目录[+]