pedro-javierf/NTRGhidra

GitHub: pedro-javierf/NTRGhidra

一款为 Ghidra 提供 Nintendo DS 二进制文件加载和动态 Overlay 管理能力的开源逆向分析插件。

Stars: 204 | Forks: 17

# NTRGhidra 一款用于 Ghidra 的 Nintendo DS 加载器和插件 NTRGhidra Logo 支持的最新 Ghidra 版本:12.0.4 (09/03/2026 | dd/mm/yyyy) [![Build NTRGhidra](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/d7e3de57d5072143.svg)](https://github.com/pedro-javierf/NTRGhidra/actions/workflows/build_ntrghidra.yml) ![](https://img.shields.io/github/issues/pedro-javierf/NTRGhidra/bug)
# 安装说明 如果您只想将加载器安装到现有的 Ghidra 安装中: 1. 从 [releases 页面](https://github.com/pedro-javierf/NTRGhidra/releases)下载 .zip 文件(或者根据代码自行构建项目,说明见下文)。 2. 将 .zip 放入 GHIDRA_INSTALL_DIR/Extensions/Ghidra 文件夹 3. 在初始 Ghidra 窗口(而非 Code Browser)中,打开 "File" 菜单,选择 "Install Extensions"。点击窗口右上角的加号图标,选择下载的扩展 zip 文件。这将在扩展列表中添加一个条目。确保将其勾选并点击 OK。 ![Step 1](https://raw.githubusercontent.com/pedro-javierf/NTRGhidra/master/install1.png) ![Step 2](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/0868a19d74072214.png) 4. 如果您希望动态加载/卸载 overlays,必须通过激活插件功能来启用此功能,使用 `File` -> `Configure` -> `Miscellaneous` -> `NTRGhidraPlugin` 并启用 NTRGhidraPlugin。 ![Enable plugin for overlays feature](https://private-user-images.githubusercontent.com/2887824/557116007-b15ffc90-9024-41ef-87f7-34021bcd9fb4.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzMwNzc1NTYsIm5iZiI6MTc3MzA3NzI1NiwicGF0aCI6Ii8yODg3ODI0LzU1NzExNjAwNy1iMTVmZmM5MC05MDI0LTQxZWYtODdmNy0zNDAyMWJjZDlmYjQucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDMwOSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjAzMDlUMTcyNzM2WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YWRmZTNlNzgzOWVkNTI3OWY0Mjc4NTQ3MTE0YThhNTUzNTE4MmFhZDE3OTgzYjRiMTAxMzdhNWY2MGJmNDRlZiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.txHOvG1-q8yjk3Ib6oEeD3MLHooI3DrEXp57ek1hkhQ) 5. 重启 Ghidra。 # 如何自行构建 注意:如果您在使用 Eclipse 调试时发现任何异常,请 ![create an issue](https://github.com/pedro-javierf/NTRGhidra/issues) 以下是调试和构建加载器的基本步骤。您必须已安装 Ghidra。 1. 安装 Ghidra 2. 安装 Eclipse IDE 3. 在 Eclipse 中,安装 Ghidra Development Extension。点击 Help > "Install New Software" (https://stackoverflow.com/questions/31553376/eclipse-how-to-install-a-plugin-manually) 4. 扩展安装完成后,克隆/下载此代码库,其中包含一个 Eclipse 项目。 5. 使用 Eclipse 打开项目 (File > Open Projects from File System) 6. 您可能需要通过在 Eclipse 中右键单击项目,然后执行 GhidraDev -> Link Ghidra... 来重新连接 Ghidra 到该项目。 7. 构建:选择 "File > Export",然后选择 "Ghidra > Ghidra Module Extension"。您可以使用本地 Gradle 安装或在线构建系统。 # 许可证 NTRGhidra 基于 ![Apache License 2.0](https://github.com/pedro-javierf/NTRGhidra/blob/master/LICENSE) 发布。 # 功能 进行中 / 待办 / 已完成的功能列表可在 [此列表](https://github.com/pedro-javierf/NTRGhidra/projects/1) 中查看 ## 动态 Overlay 加载示例 在使用前使用 `File` -> `Configure` -> `Miscellaneous` -> `NTRGhidraPlugin` 启用插件: ![](https://private-user-images.githubusercontent.com/2887824/557116007-b15ffc90-9024-41ef-87f7-34021bcd9fb4.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzMwNzcxMjYsIm5iZiI6MTc3MzA3NjgyNiwicGF0aCI6Ii8yODg3ODI0LzU1NzExNjAwNy1iMTVmZmM5MC05MDI0LTQxZWYtODdmNy0zNDAyMWJjZDlmYjQucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDMwOSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjAzMDlUMTcyMDI2WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZGNiYzM3MTUwNjcxOTExOWVhMTQ4YjFmMjg4Y2Q2YWFhMzY0MmZlYTkxYTA1ZWFjNTJmOTA5NzRlZGM5Mjc5NyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.gswpe3d-vAvEICJI1VTbeEll2gkICfWtc3vx_ogQdGk) 加载后选择所需的 overlays: (**注意**:这要求程序的原始 ROM 文件必须位于导入 Ghidra 时完全相同的文件路径中。) ![](https://private-user-images.githubusercontent.com/2887824/557114924-3337acc9-9696-4f35-b179-c3d18382cd37.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzMwNzcxMjYsIm5iZiI6MTc3MzA3NjgyNiwicGF0aCI6Ii8yODg3ODI0LzU1NzExNDkyNC0zMzM3YWNjOS05Njk2LTRmMzUtYjE3OS1jM2QxODM4MmNkMzcucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDMwOSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjAzMDlUMTcyMDI2WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZWI4OTAyNDA2MGFlNTFiYmY1Mjk2ZTM0YzYyOGExMjdjN2VjYWU2ZWYwMjA4NGY4MDk2NDM2ZjMwMGRlNDFmOSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.xI9EtxtAv9UacFcyoi8oYQtdgYCK5RipD9S3mW9Mlzc) ![](https://private-user-images.githubusercontent.com/2887824/557114983-7625d06e-2302-48bc-8b3c-49fc743fd6be.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzMwNzcxMjYsIm5iZiI6MTc3MzA3NjgyNiwicGF0aCI6Ii8yODg3ODI0LzU1NzExNDk4My03NjI1ZDA2ZS0yMzAyLTQ4YmMtOGIzYy00OWZjNzQzZmQ2YmUucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDMwOSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjAzMDlUMTcyMDI2WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MDY3ZGJlMzY4MjAyZDAyNTRkNjNiMDI4YTkyZGY2OGRjZDc3NTIzZGNiYThmZjI1YzIyZWU4YzgxMTY5MmIwNyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.gS02wK9I6ondz31jFPFNg5KTsxju4LbC6pm4tJGskCo) # 致谢 * 特别感谢 [gbatek](https://problemkaputt.de/gbatek.htm) 提供的 DS 技术信息 * 感谢 Gericom 提供的来自 EFE(Every File Explorer) 的原始 C# Header 和 ARM9 解压缩代码,以及测试支持。 # 其他 关于 Ghidra 加载器及其编写方法的参考和教程,您可能需要阅读: * [教程:编写 Ghidra 加载器https://pedro-javierf.github.io/devblog/tutorialwritingaghidraloader/) * [高级 Ghidra 加载器:标签、overlays 和 Function ID](https://pedro-javierf.github.io/devblog/advancedghidraloader/)
标签:Ghidra, JS文件枚举, Loader, NDS, NTRGhidra, Nuclei漏洞扫描, ROM分析, TLS抓取, URL提取, 二进制分析, 二进制加载器, 云安全监控, 云安全运维, 云资产清单, 代码浏览器, 任天堂DS, 动态加载, 反编译, 后台面板检测, 域名枚举, 嵌入式系统, 插件, 游戏安全, 软件安全, 逆向工程, 静态分析