工具

binbloom 原始固件端序与基址分析工具

Quarkslab 开发的命令行工具,通过对内容做简单统计来推断无文件头原始固件镜像的基本属性,因此 README 称其适用于所有架构。它根据指针宽度数值的高位字节在两种字节序下的聚集程度推测端序,并按候选加载地址(基址)下有多少数值会指向已索引的文本字符串和指针数组,对候选地址排序。给定基址后,它还能在汽车 ECU 固件中查找统一诊断服务(UDS)命令 ID 表,并输出推断出的结构体布局,供反汇编器使用。

使用条件与局限

  • 审阅时最新版本为 v2.1,发布于 2024-06-06,标签指向 master 最新提交 95cfaac(2022-11-07),其源码报告的版本号为 2.1.0。该版本新增用于设置基址对齐的 -m 选项,并修复了处理极小文件时的崩溃以及空指针和浮点异常错误;configure.ac 和 man 手册仍写作 2.0,master 分支此后没有新的提交。
  • README 只说明了在 Linux 上从源码构建,步骤为 autoreconf、configure、make 和 make install;configure.ac 需要 C 编译器、libm 和 pthreads。该版本未附带预编译程序。
  • 每次运行处理一个由使用者自备的原始固件转储,未指定 -a 64 时默认按 32 位目标处理。README 提醒,文件小于约 10 KB 时端序检测可能不可靠,此时可用 -e 强制指定;-t 可启用多线程,-f 可提供已知函数地址文件,实验性的 -d 深度搜索速度较慢。输出为按得分排序的候选基址列表,有时会标注不确定;只有用 -b 提供基址时才会执行 UDS 搜索。
  • README 称 UDS 搜索基于启发式方法,可能出现误报,因此每个候选表都需要人工核实。仓库不含测试或样例固件,也未公布准确率结果。
  • 采用 Apache-2.0 许可。本次未构建,也未分析任何固件。

关于此条目

类型
工具
类别
固件工具
关联
基础工具
目标
固件

来源复核于

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

报告条目过时 建议修正翻译

一手来源

  1. README.md GitHub · quarkslab/binbloom · 修订 95cfaac
  2. man/binbloom.1 GitHub · quarkslab/binbloom · 修订 95cfaac
  3. configure.ac GitHub · quarkslab/binbloom · 修订 95cfaac
  4. src/binbloom.c#L1197-L1259 GitHub · quarkslab/binbloom · 修订 95cfaac
  5. src/binbloom.c#L1422-L1443 GitHub · quarkslab/binbloom · 修订 95cfaac
  6. LICENSE GitHub · quarkslab/binbloom · 修订 95cfaac
  7. https://github.com/quarkslab/binbloom/releases/tag/v2.1

同分区更多条目:固件与硬件

固件与硬件分区全部 29 项资源