工具

Pyrrha 固件测绘工具

Quarkslab 的固件“测绘”工具,将已提取的固件文件系统编入数据库,再用 NumbatUI(Quarkslab 基于 Sourcetrail 代码浏览器的分支)浏览。fs 映射器借助 LIEF 映射 ELF 和 PE 文件、其导入与导出,以及指向这些文件的符号链接;fs-cg 用 IDA Pro 或 Ghidra 反汇编每个可执行文件,并把各二进制的调用图跨文件连接起来;decomp 则为单个可执行文件的反编译函数建立索引并附调用交叉引用。JSON 导出可用 Python 进一步处理,例如比较两个固件版本的差异。

使用条件与局限

  • 审阅时最新版本为 v2.0.3,于 2026-09-21 发布到 GitHub,并以 pyrrha-mapper 名称发布到 PyPI;所审阅的 main 提交设定的也是该版本。v2.0.0(2026-07-07)新增 Ghidra 后端,并移除了原先对 Quokka 的依赖。pyproject.toml 将该软件包标为 Beta,并列出 Linux 和 Windows。
  • 输入为使用者已提取或挂载的固件根文件系统;decomp 的输入则是单个可执行文件。Pyrrha 本身不解包固件镜像。fs 的快速入门示例使用从 OpenWrt 项目下载的 OpenWrt x86-64 根文件系统。
  • pyproject.toml 要求 Python 3.11+,而安装页面写的是 3.10。fs 不需要反汇编器,但 fs-cg 和 decomp 需要本地安装 IDA Pro 9.1+ 或 Ghidra 12.0+,可放在 PATH 中,或通过 IDADIR 或 GHIDRA_INSTALL_DIR 指定位置;GitHub 镜像仓库提供基于 Ghidra 的 Docker 镜像,而用于 CI 的 IDA 镜像须以使用者自己的 Hex-Rays 安装程序和许可证构建。结果可在 NumbatUI 中查看,也可用 Sourcetrail 2021.4.19 查看,但无法使用节点重命名等新功能。
  • GitLab CI 配置运行 pytest 单元测试以及各映射器的命令行测试,其中 fs-cg 和 decomp 使用 IDA 与 Ghidra 镜像;GitHub 工作流只构建文档和发布版本。tests/test_fw 是一个小型 32 位 ARM Linux 测试样例,包含以 Buildroot 构建的 OpenSSL 1.1.1n 可执行文件和 glibc 库。
  • 采用 Apache-2.0 许可;NumbatUI 是采用 GPL-3.0 的独立项目,IDA Pro 是商业软件。README 列出了作者在 SSTIC、Hack.lu、Pass The SALT 和 RE//verse 的演讲。所审来源未提及 REA 的使用,本收录未对任何固件进行测绘。

关于此条目

类型
工具
类别
固件工具
关联
基础工具
目标
二进制 · 固件

来源复核于

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

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

一手来源

  1. README.md GitHub · quarkslab/pyrrha · 修订 54cfe78
  2. docs/installation.md GitHub · quarkslab/pyrrha · 修订 54cfe78
  3. docs/index.md GitHub · quarkslab/pyrrha · 修订 54cfe78
  4. docs/mappers/index.md GitHub · quarkslab/pyrrha · 修订 54cfe78
  5. docs/mappers/fs.md GitHub · quarkslab/pyrrha · 修订 54cfe78
  6. docs/mappers/fs-cg.md GitHub · quarkslab/pyrrha · 修订 54cfe78
  7. docs/mappers/exe-decomp.md GitHub · quarkslab/pyrrha · 修订 54cfe78
  8. docs/.snippets/diffing_pyrrha_exports.py GitHub · quarkslab/pyrrha · 修订 54cfe78
  9. pyproject.toml GitHub · quarkslab/pyrrha · 修订 54cfe78
  10. CHANGELOG.md GitHub · quarkslab/pyrrha · 修订 54cfe78
  11. .gitlab-ci.yml GitHub · quarkslab/pyrrha · 修订 54cfe78
  12. ci/ida/Dockerfile GitHub · quarkslab/pyrrha · 修订 54cfe78
  13. tests/test_fw GitHub · quarkslab/pyrrha · 修订 54cfe78
  14. LICENSE GitHub · quarkslab/pyrrha · 修订 54cfe78
  15. https://github.com/quarkslab/pyrrha/releases/tag/v2.0.3
  16. https://pypi.org/project/pyrrha-mapper/2.0.3/

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

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