Freedom251 › Reverse Engineering Tools
FirmWire

What FirmWire is
FirmWire is a free, Linux, self-hosted platform for dynamic baseband firmware analysis and emulation. It is built for fuzzing, debugging, and root-cause analysis, supporting a subset of MediaTek MTK and Samsung Shannon firmware images. AFL++ can fuzz baseband tasks through specialized injected tasks and TriforceAFL hypercalls, with inputs delivered through normal firmware message channels. GDB connects to the emulated baseband for breakpoints, memory inspection or modification, and execution control. An IPython/Jupyter console exposes the API and machine abstraction. Snapshots save QEMU qcow2 emulation images with Python peripheral state for restoration. PANDA provides emulation while avatar2 orchestrates execution. FirmWire can recognize and unpack images, then choose a loader and machine. Its modkit supports compiling C modules and tasks for injection. Installation options include the supplied Docker environment, a VS Code devcontainer, or manual setup. MediaTek analysis requires custom Ghidra patches.
Who it suits
FirmWire suits Linux users conducting baseband firmware research, fuzzing, debugging, or vulnerability analysis. It is intended for work with supported MediaTek and Samsung Shannon images.
What it does well
- Free BSD-3 licensed software
- AFL++ baseband fuzzing support
- GDB interactive debugging
- Snapshot restoration support
- C module injection modkit
What to know first
- Supports only a subset of firmware images
- MediaTek analysis needs custom Ghidra patches
- MediaTek snapshotting is described as hacky
- Public release omits some research-paper functionality
Verdict
FirmWire combines emulation, fuzzing, debugging, scripting, and firmware injection for supported baseband images. Its Linux-only setup and documented limitations matter when planning research workflows.
Facts from FirmWire's own pages
- Emulation
- Its emulation core uses PANDA for emulation and avatar2 to orchestrate emulator execution. · firmwire.github.io, 8 Oct 2026
- External tools
- Documented tooling includes Docker, QEMU/PANDA, avatar2, GDB, Ghidra, and AFL++. · firmwire.github.io, 8 Oct 2026
- Firmware loading
- FirmWire can recognize a firmware image, unpack it, and select a loader and machine automatically. · firmwire.github.io, 8 Oct 2026
- Fuzzing
- The command-line interface supports AFL fuzz tasks, test case input, triage, persistent fuzzing, crash logs, and coverage collection. · firmwire.github.io, 8 Oct 2026
- Ghidra requirement
- MediaTek firmware analysis requires custom patches to Ghidra, while Shannon firmware uses the ShannonLoader with custom or upstream Ghidra. · firmwire.github.io, 8 Oct 2026
- Installation
- The recommended setup builds and runs FirmWire in its supplied Docker environment; the documentation also describes a VS Code devcontainer and manual installation. · firmwire.github.io, 8 Oct 2026
- Interactive debugging
- Users can connect GDB to the emulated baseband to set breakpoints, inspect or modify memory, and steer execution. · firmwire.github.io, 8 Oct 2026
- Known limitations
- The documentation says MediaTek snapshotting is hacky, Panda may segfault after snapshotting, and Ctrl+C does not work in console mode. · firmwire.github.io, 8 Oct 2026
- License and commercial use
- FirmWire is BSD-3 licensed, and its makers state that the license permits commercial use such as private baseband vulnerability research and bug bounties. · github.com, 8 Oct 2026
- Modkit
- The modkit lets users create and compile C modules and tasks for injection into emulated baseband firmware. · firmwire.github.io, 8 Oct 2026
- Purpose
- FirmWire is a full-system baseband firmware analysis and emulation platform for fuzzing, debugging, and root-cause analysis. · github.com, 8 Oct 2026
- Python console
- An IPython/Jupyter console exposes FirmWire’s API and machine abstraction for interacting with the emulated baseband. · firmwire.github.io, 8 Oct 2026
- Research context
- The project describes itself as the result of a multi-year, cross-university research effort and links an NDSS 2022 paper. · github.com, 8 Oct 2026
- Research preview
- The documentation says the public release is a preview that omits some functionality described in the research paper. · firmwire.github.io, 8 Oct 2026
- Snapshots
- FirmWire saves emulation state in QEMU qcow2 images along with auxiliary state for Python peripherals, and supports restoring snapshots. · firmwire.github.io, 8 Oct 2026
- Support and services
- The makers invite contact through public issues or private email or Signal and say team members may provide consulting, training, or custom extensions. · github.com, 8 Oct 2026
- Supported images
- The documentation lists Samsung A10s and A41 MediaTek images, plus selected Samsung Galaxy S7 through S10 and Moto One Vision Shannon images. · firmwire.github.io, 8 Oct 2026
- Supported vendors
- It supports a subset of MediaTek MTK and Samsung Shannon firmware images. · firmwire.github.io, 8 Oct 2026
Where FirmWire stands on Freedom251
- Reverse Engineering Tools#37 of 73