工具

basefind2 快速固件基址扫描器

一个 Python 脚本,无需暴力枚举每个候选基址即可估算平面 32 位小端固件镜像的加载地址,在 mncoppola 的 basefind.py 和 rbasefind 的基础上改进而来。它在排序后指针值的相邻差值中,查找与一段相邻字符串偏移差值完全相同的连续序列,把每处匹配视为候选基址,再按抽样字符串在重定位后的地址同样作为指针出现的比例为其打分。README 中的示例约用 26 秒找出了一个镜像的正确基址。

目标
固件
类别
固件工具
关联
基础工具
来源复核于

使用条件与局限

  • 整个工具就是 basefind2.py;所审阅的 main 分支提交日期为 2022-05-02,是 2022-04-07 至 2022-05-02 间六个提交中的最后一个,没有发布版本、标签或软件包。只需 Python 3 及其标准库。
  • 输入是使用者提供的平面镜像;仓库不含任何固件或样例。指针按 4 字节对齐的小端 32 位字读取,没有大端或 64 位选项。字符串指由至少 10 个可打印 ASCII 字符、制表符或换行符组成的连续片段(-sl),默认需有 10 个连续差值相同才算匹配(-dl),打分时每 20 个字符串抽取一个(-s)。整个文件会被读入内存。
  • 输出列出每个候选基址及其抽样匹配百分比,需要分析人员选择并确认。README 唯一的示例把 -dl 提高到 40,约 26 秒后以 81.64% 报告出一个镜像的正确基址。项目没有测试或 CI,README 也未在相同镜像上与 rbasefind 或 basefind.py 比较;本次审阅未扫描任何文件。
  • 采用 MIT 许可证(2022 年,soyer)。被分析的固件适用其自身条款。

关于此条目

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

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

一手来源

  1. README.md GitHub · soyersoyer/basefind2 · 修订 370d0dd
  2. basefind2.py GitHub · soyersoyer/basefind2 · 修订 370d0dd
  3. LICENSE GitHub · soyersoyer/basefind2 · 修订 370d0dd
  4. README.md GitHub · sgayou/rbasefind · 修订 a661118

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

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