Pyrrha: A mapper collection for firmware analysis
Pyrrha is a firmware cartography tool which provide three level of details:
- an overview of the import/export relationships between executables;
- a firmware-wide callgraph;
- a complete map of a given decompiled binary.
It uses the open-source code source explorer NumbatUI to provide users with an easy way to navigate through and search for path to function.
An example of the symbols and libraries imported by libgcc_s.so.1 and of the symbols which reference this library.
An example of the symlinks which point on busybox.
Installation
The installation is done in two parts:
- Install
Pyrrhaitself. - Install
NumbatUI(orSourcetrail) to be able to visualize Pyrrha's results. - (Optional) Install Ghidra or IDA if you want to use
fs-cgordecompmappers.
Usage
The usage workflow is composed of two steps which allow you to separate DB creation and result visualization.
- Run Pyrrha to obtain NumbatUI compatible files (
*.srctrlprjfor the project file and*.srctrldbfor the DB file). With the python package, you can just launch the commandpyrrha. - Visualize your results with Sourcetrail/NumbatUI.
Publications
Pyrrha presentations, including live demos:
-
Pyrrha & Friends: Diving into Firmware Cartography, Eloïse Brocas & Robin David, SSTIC, Rennes, France, 2025. [slides] [video]
-
Pyrrha: navigate easily into your system binaries, Eloïse Brocas, Hack.lu, Luxembourg, 2023. [slides] [video]
-
Map your Firmware!, Eloïse Brocas, Pass The SALT, Lille, France, 2023. [slides] [video]
Theory behind implementations
- Streamlining Firmware Analysis with Inter-Image Call Graphs and Decompilation, Robin David, RE//verse.io, USA, 2025. [slides] [video]
Authors
- Eloïse Brocas (@ebrocas), Quarkslab
- Robin David (@RobinDavid), Quarkslab
Past Contributors
- Pascal Wu (@pwu42), during his internship at Quarkslab
Metadata
Release files for pyrrha-mapper 2.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pyrrha_mapper-2.0.1.tar.gz | 490.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyrrha_mapper-2.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 554.2 kB
Release files / pyrrha_mapper-2.0.1.tar.gz
| Download URL | pyrrha_mapper-2.0.1.tar.gz |
|---|---|
| Size | 490.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
80812e8b97a26dd9da32e18291e1ca5d45d7e2bc4e16280515b93f027bec1d02
|
|
BLAKE2b-256 checksum How to use checksums |
e57d82e6f035bad25e80e03df223965185a8c5eea6547fa343611fae7ae5c097
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / pyrrha_mapper-2.0.1-py3-none-any.whl
| Download URL | pyrrha_mapper-2.0.1-py3-none-any.whl |
|---|---|
| Size | 63.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
02cb919cb7a26f1e0ece2f14f12f631a08cf49116486eaee783772c1fde579dc
|
|
BLAKE2b-256 checksum How to use checksums |
6c143147a4f52700c09867af1317b297bb651fc857b955e87dbf195462e7e4b3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|