# Pyrrha 固件测绘工具

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

- 类型：工具
- 目标：二进制 · 固件
- 类别：固件工具
- 关联：基础工具
- 来源复核于：2026-10-20
- 收录于：2026-11-02
- 原始资源：<https://github.com/quarkslab/pyrrha>
- 一手来源：<https://github.com/quarkslab/pyrrha/blob/54cfe78055740336283a02a75cfd8694f48cf2b9/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/pyrrha/>
- 记录 JSON：<https://awesomerea.org/resources/pyrrha/record.json>
- 英文版：[English](https://awesomerea.org/resources/pyrrha/index.md)

## 使用条件与局限

- 审阅时最新版本为 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 的演讲。

## 一手来源

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

## 同分区更多条目：固件与硬件

- [RETracker Polyend Tracker 逆向工程框架](https://awesomerea.org/zh/resources/retracker/index.md) · 工具
- [Quarkslab Titan M 安全芯片研究工具](https://awesomerea.org/zh/resources/quarkslab-titanm-tools/index.md) · 工具
- [uefi_retool UEFI 固件逆向工具](https://awesomerea.org/zh/resources/uefi-retool/index.md) · 工具
- [Shannon 基带镜像 IDA Pro 加载器](https://awesomerea.org/zh/resources/shannon-modem-loader/index.md) · 工具
- [IMSProg EEPROM／闪存芯片编程器](https://awesomerea.org/zh/resources/imsprog/index.md) · 工具
- [rbasefind 固件基址搜索工具](https://awesomerea.org/zh/resources/rbasefind/index.md) · 工具

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
