工具

ghidra-nanomips nanoMIPS 处理器模块

为 Ghidra 增加 nanoMIPS 反汇编和反编译能力的处理器模块,以 SLEIGH 规范描述小端 32 位 nanoMIPS 指令集,包括其多线程指令。NCC Group 的发布文章称,该模块是在逆向分析 MediaTek 5G 基带固件时编写的,实现了该固件中遇到的指令,部分复杂 P-Code 仿真尚未实现,但已能反编译团队分析过的大部分基带代码。

目标
二进制 · 固件
类别
原生分析工具
关联
基础工具
来源复核于

使用条件与局限

  • 审阅时最新版本为 v0.3.3,于 2025-11-06 基于所审阅的 main 分支提交发布,附带为 Ghidra 11.4.2 构建的扩展 zip;v0.3.1 和 v0.3.2 同样面向 11.4.2,而 README 的构建示例使用 Ghidra 11.0.3。若使用其他 Ghidra 版本,需用 Gradle 并设置 GHIDRA_INSTALL_DIR 从源码构建,再通过 File > Install Extensions 安装 zip。
  • 模块只定义了 nanomips:LE:32:default 一种语言,导入器判定文件仍是注释掉的模板,因此导入时(例如导入原始二进制)需手动选择该语言。README 列出了编写时参考的 nanoMIPS32 指令集、特权架构、多线程、ELF ABI 以及 I7200 内核手册;仓库不含这些文档。
  • 发布说明记录了 LWM/RESTORE、BITREVH 及内存引用的 p-code 修正、一处导致反编译器 varnode 错误的编译器规范修正,以及 ADDIUPC 的 PC 相对地址显示。仓库没有测试或 CI,规范中仍有关于有效地址处理的 TODO 注释;本次审阅未加载任何二进制。
  • 采用 GPL-3.0;build.gradle 保留了 Ghidra 扩展模板的 Apache-2.0 文件头。extension.properties 署名作者为 James Chambers 和 Robert Herrera。待分析的固件需由使用者提供;发布文章中的 MediaTek 演示仅为示例,并非随附样本。

关于此条目

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

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

一手来源

  1. README.md GitHub · nccgroup/ghidra-nanomips · 修订 62ebe71
  2. data/languages/nanomips.ldefs GitHub · nccgroup/ghidra-nanomips · 修订 62ebe71
  3. data/languages/nanomips.opinion GitHub · nccgroup/ghidra-nanomips · 修订 62ebe71
  4. data/languages/nanomips.slaspec GitHub · nccgroup/ghidra-nanomips · 修订 62ebe71
  5. data/languages/nanomips.sinc GitHub · nccgroup/ghidra-nanomips · 修订 62ebe71
  6. extension.properties GitHub · nccgroup/ghidra-nanomips · 修订 62ebe71
  7. LICENSE GitHub · nccgroup/ghidra-nanomips · 修订 62ebe71
  8. https://github.com/nccgroup/ghidra-nanomips/releases/tag/v0.3.3
  9. https://www.nccgroup.com/research/ghidra-nanomips-isa-module/

同分区更多条目:原生二进制

原生二进制分区全部 158 项资源