工具

NTRGhidra Nintendo DS 程序 Ghidra 加载器

面向 Nintendo DS 程序的 Ghidra 加载器与插件。它校验 .nds 文件头,把 ARM9 或 ARM7 二进制映射到其内存地址,并建立主机的内存区域和 I/O 寄存器标签;经 SDK 压缩的 ARM9 代码和覆盖模块(overlay)会被解压,导入时用户选中的覆盖模块会载入内容,可选的覆盖模块管理插件还能在导入后切换各覆盖模块。仓库另附一个小型 Ghidra Function ID 数据库,收录 NitroSDK 3.0 例程,用于识别函数。

目标
游戏
类别
游戏分析工具
关联
基础工具
来源复核于

使用条件与局限

  • 审阅时最新版本为 v1.5.1,于 2026-03-24 以 NTRGhidra-build.zip 形式发布,适用于 Ghidra 12.0.4,其标签即所审阅的 master 提交;更早的版本分别针对各个 Ghidra 10.x 和 11.x 版本构建,README 写明当前支持的最新 Ghidra 版本为 12.0.4。该 zip 需在 Ghidra 项目窗口的 File → Install Extensions 中安装,覆盖模块管理器则需另在 CodeBrowser 的 File → Configure → Miscellaneous 中启用。README 称项目正在寻找维护者和贡献者。
  • 从源码构建需要已安装的 Ghidra:build.gradle 会从 GHIDRA_INSTALL_DIR 引入 Ghidra 的 buildExtension.gradle,README 介绍的是借助 GhidraDev 扩展在 Eclipse 中构建,GitHub Actions 工作流则在每次推送时用 Gradle 构建 zip,并在创建新版本时附加到发布页。仓库没有测试,src/test 中只有一份占位 README。
  • 输入为使用者自行提供的 .nds 文件;仓库不含任何 ROM 或 BIOS 文件。导入时,加载器会拒绝文件头 CRC 不符的文件,并询问该文件是使用任天堂 SDK 的商业游戏还是自制程序,以及要载入 ARM9 还是 ARM7 代码;商业游戏须带有预期的任天堂标志 CRC,其 ARM9 二进制会被解压。覆盖模块管理器只会从导入时路径上的原始文件,或 MD5 与 SHA-256 均与之一致的替代文件中重新读取覆盖模块。
  • fidb 文件夹中的 nitrosdk3.0.fidb 是一个 2 KB 的 Function ID 数据库,其 README 称收录的是商业游戏中 NitroSDK 3.0.0 函数的哈希,涵盖 ARM 代码中的 crt0 和文件系统例程,尚不支持 Thumb;加载器不会自动应用它。加载器将支持的格式命名为 Nintendo DS(NTR)和 DSi(TWL),源码中也有 DSi 寄存器和内存区域列表,但导入时只映射 DS 的 ARM9 和 ARM7 列表,CRT0 自动加载(autoload)处理也标为待办。
  • 采用 Apache-2.0 许可。README 致谢 GBATEK 提供的 DS 技术资料,以及 Gericom 的 Every File Explorer 提供最初的文件头与 ARM9 解压代码。本次未安装或运行任何内容,也未载入任何程序;所审来源未确立与 REA 的关联。

关于此条目

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

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

一手来源

  1. README.md GitHub · pedro-javierf/NTRGhidra · 修订 9e0674c
  2. src/main/java/ntrghidra/NTRGhidraLoader.java GitHub · pedro-javierf/NTRGhidra · 修订 9e0674c
  3. src/main/java/ntrghidra/plugin/NTRGhidraPlugin.java GitHub · pedro-javierf/NTRGhidra · 修订 9e0674c
  4. src/main/java/ntrghidra/ARM9.java GitHub · pedro-javierf/NTRGhidra · 修订 9e0674c
  5. fidb/README.md GitHub · pedro-javierf/NTRGhidra · 修订 9e0674c
  6. build.gradle GitHub · pedro-javierf/NTRGhidra · 修订 9e0674c
  7. .github/workflows/build_ntrghidra.yml GitHub · pedro-javierf/NTRGhidra · 修订 9e0674c
  8. LICENSE GitHub · pedro-javierf/NTRGhidra · 修订 9e0674c
  9. https://github.com/pedro-javierf/NTRGhidra/releases/tag/v1.5.1

同分区更多条目:游戏

游戏分区全部 252 项资源