# ghidra-allegrex PSP Allegrex 处理器模块

> 面向 PlayStation Portable 所用 Allegrex CPU 的 Ghidra 处理器模块，由 Ghidra 的 MIPS 模块衍生而来。它补充了 Allegrex 特有指令、VFPU 指令的反汇编与基础反编译、PSP 调用约定，以及可识别 PSP 可执行文件的 ELF 加载器；加载器会处理 PSP 特有的 A 类和 B 类重定位节，并支持导入后重新设定基址。附带的脚本可导入和导出 PPSSPP 的 .sym 函数标签文件，另有导出器可把内核模块写成可供链接的可重定位目标文件。

- 类型：工具
- 目标：二进制 · 固件 · 游戏
- 类别：游戏分析工具
- 关联：基础工具
- 来源复核于：2026-10-27
- 收录于：2026-11-02
- 原始资源：<https://github.com/kotcrab/ghidra-allegrex>
- 一手来源：<https://github.com/kotcrab/ghidra-allegrex/blob/abcf97659260b11a9a4781ff72fff30ede2f073f/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/ghidra-allegrex/>
- 记录 JSON：<https://awesomerea.org/resources/ghidra-allegrex/record.json>
- 英文版：[English](https://awesomerea.org/resources/ghidra-allegrex/index.md)

## 使用条件与局限

- 审阅时的最新发布版为 v21.5，发布于 2026-10-25，面向 Ghidra 12.2，需要 JVM 25；所审阅的 master 分支提交即该标签。每个发布压缩包只对应一个 Ghidra 版本，因此 Ghidra 12.1.3 和 12.1.4 仍使用 2026-08-25 发布的 v21.4。扩展 v19 及更高版本通过 Ghidra 的 File > Install Extensions 安装；v18 及更早版本需解压后放入 Ghidra 的 Processors 目录。
- 从源码构建需设置 GHIDRA_INSTALL_DIR，并运行 Gradle wrapper 的 buildExtension 任务，使用 JVM 25 工具链，基于本地 Ghidra 安装编译 Kotlin 和 Java 代码。CI 在 Ubuntu 上针对 Ghidra 12.2 构建扩展并上传压缩包；仓库没有自动化测试。两个 PPSSPP 脚本采用 Ghidra 的 Python 2（Jython）写法，.sym 文件来自使用者自己的 PPSSPP 调试会话。
- 输入是使用者自备的 ELF/PRX 格式 PSP 可执行文件、内核模块或原始二进制；README 指出游戏可执行文件须为已解密版本，仓库本身不包含任何 PSP 软件或固件。原始二进制需手动选择处理器并设定映像基址，部分内核模块导入时需勾选 reboot.bin B 类重定位选项。
- README 列出的限制包括：几乎所有 VFPU 运算都会被反编译为 vadd_q(...) 之类的函数调用；vpfxs、vpfxt 和 vpfxd 前缀的语义尚未建模；vfim.s 的半精度浮点操作数显示为整数；目标文件导入后不能再更改基址；带 64 位参数的函数因 Ghidra 的一个问题需要手动指定参数存储。
- 采用 Apache-2.0 许可；README 说明它衍生自采用 Apache-2.0 的 Ghidra MIPS 模块，B 类重定位解析参考了采用 AFL v2.0 的 prxtool。另外，REA PSP 静态 ELF 指南把它作为需由使用者自行安装的扩展，并将 v21.4 与 Ghidra 12.1.3 配套使用。

## 一手来源

1. <https://github.com/kotcrab/ghidra-allegrex/blob/abcf97659260b11a9a4781ff72fff30ede2f073f/README.md>
2. <https://github.com/kotcrab/ghidra-allegrex/blob/abcf97659260b11a9a4781ff72fff30ede2f073f/README.md#L73-L81>
3. <https://github.com/kotcrab/ghidra-allegrex/blob/abcf97659260b11a9a4781ff72fff30ede2f073f/CHANGES.md>
4. <https://github.com/kotcrab/ghidra-allegrex/blob/abcf97659260b11a9a4781ff72fff30ede2f073f/build.gradle>
5. <https://github.com/kotcrab/ghidra-allegrex/blob/abcf97659260b11a9a4781ff72fff30ede2f073f/.github/workflows/build.yml>
6. <https://github.com/kotcrab/ghidra-allegrex/tree/abcf97659260b11a9a4781ff72fff30ede2f073f/ghidra_scripts>
7. <https://github.com/kotcrab/ghidra-allegrex/blob/abcf97659260b11a9a4781ff72fff30ede2f073f/LICENSE>
8. <https://github.com/kotcrab/ghidra-allegrex/releases/tag/v21.5>
9. <https://github.com/kotcrab/ghidra-allegrex/releases/tag/v21.4>
10. <https://github.com/morluto/rea/blob/c12d9eda87aa5a022ee7e18ea96d8d03bfd12e96/docs/ghidra-psp.md#L28-L37>

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

- [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) · 工具
- [UABEA Unity 资源包读写工具](https://awesomerea.org/zh/resources/uabea/index.md) · 工具
- [AssetStudio Unity 资源浏览与导出工具](https://awesomerea.org/zh/resources/assetstudio/index.md) · 工具

## 关于此条目

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