Tool
ghidra-nanomips
Ghidra processor module that adds nanoMIPS disassembly and decompilation through a SLEIGH specification of the little-endian 32-bit nanoMIPS instruction set, including its multithreading instructions. NCC Group's announcement says it was written while reverse engineering MediaTek 5G baseband firmware, implements the instructions met in that firmware and leaves some complex P-Code emulation unimplemented, yet decompiles most of the baseband code the team analyzed.
- Targets
- Binary · Firmware
- Category
- Native analysis tools
- Relationship
- Foundation tool
- Sources reviewed
Requirements & limits
- Latest release at review: v0.3.3, published 2025-11-06 from the reviewed main commit, with an extension zip built for Ghidra 11.4.2; v0.3.1 and v0.3.2 also target 11.4.2, while the README's build example uses Ghidra 11.0.3. For another Ghidra release, build from source with Gradle and GHIDRA_INSTALL_DIR, then add the zip through File > Install Extensions.
- The module defines the single language nanomips:LE:32:default, and its importer opinion file is a commented-out template, so the language is chosen manually when importing, for example for a raw binary. The README lists the nanoMIPS32 ISA, privileged-architecture, multithreading, ELF ABI and I7200 core manuals it was written from; those documents are not included.
- Release notes record p-code fixes for LWM/RESTORE, BITREVH and memory references, a compiler-spec fix for a decompiler varnode error and PC-relative address display for ADDIUPC. The repository has no tests or CI, and the specification still carries TODO notes on effective-address handling; this review loaded no binaries.
- GPL-3.0; build.gradle keeps the Apache-2.0 header of Ghidra's extension skeleton. extension.properties names James Chambers and Robert Herrera as authors. Users supply the firmware to analyze; the announcement's MediaTek walkthrough is an illustration, not a bundled sample.
About this entry
The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.
Primary sources
- README.md GitHub · nccgroup/ghidra-nanomips · Revision 62ebe71
- data/languages/nanomips.ldefs GitHub · nccgroup/ghidra-nanomips · Revision 62ebe71
- data/languages/nanomips.opinion GitHub · nccgroup/ghidra-nanomips · Revision 62ebe71
- data/languages/nanomips.slaspec GitHub · nccgroup/ghidra-nanomips · Revision 62ebe71
- data/languages/nanomips.sinc GitHub · nccgroup/ghidra-nanomips · Revision 62ebe71
- extension.properties GitHub · nccgroup/ghidra-nanomips · Revision 62ebe71
- LICENSE GitHub · nccgroup/ghidra-nanomips · Revision 62ebe71
- https://github.com/nccgroup/ghidra-nanomips/releases/tag/v0.3.3
- https://www.nccgroup.com/research/ghidra-nanomips-isa-module/
More in Native binaries
- SMDA · Tool
- frida-trace (NowSecure library) · Tool
- BTD (Bin To DNN) · Tool
- Boomerang Decompiler · Tool
- ktool · Tool
- Brida · Tool