# NTRGhidra Nintendo DS 程序 Ghidra 加载器

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

- 类型：工具
- 目标：游戏
- 类别：游戏分析工具
- 关联：基础工具
- 来源复核于：2026-10-20
- 收录于：2026-11-02
- 原始资源：<https://github.com/pedro-javierf/NTRGhidra>
- 一手来源：<https://github.com/pedro-javierf/NTRGhidra/blob/9e0674c0b36ef9b816dbe7833a68b17327edc1b9/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/ntrghidra/>
- 记录 JSON：<https://awesomerea.org/resources/ntrghidra/record.json>
- 英文版：[English](https://awesomerea.org/resources/ntrghidra/index.md)

## 使用条件与局限

- 审阅时最新版本为 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 解压代码。

## 一手来源

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

## 同分区更多条目：游戏

- [mgbdis Game Boy ROM 反汇编器](https://awesomerea.org/zh/resources/mgbdis/index.md) · 工具
- [ghidra-allegrex PSP Allegrex 处理器模块](https://awesomerea.org/zh/resources/ghidra-allegrex/index.md) · 工具
- [GM8Decompiler GameMaker 8 游戏反编译器](https://awesomerea.org/zh/resources/gm8decompiler/index.md) · 工具
- [UELib Unreal 包文件解析与反编译库](https://awesomerea.org/zh/resources/uelib-unreal-package-library/index.md) · 工具
- [DiztinGUIsh Super NES ROM 反汇编工具](https://awesomerea.org/zh/resources/diztinguish/index.md) · 工具
- [Zygisk-Il2CppDumper 运行时导出 IL2CPP 元数据的 Zygisk 模块](https://awesomerea.org/zh/resources/zygisk-il2cppdumper/index.md) · 工具

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
