chaoticgd/ghidra-emotionengine-reloaded
GitHub: chaoticgd/ghidra-emotionengine-reloaded
为Ghidra添加PlayStation 2 Emotion Engine指令集支持的反向工程扩展。
Stars: 220 | Forks: 12
# Ghidra Emotion Engine: 重载版 [](https://github.com/chaoticgd/ghidra-emotionengine-reloaded/actions/workflows/test.yml)
一个为 Ghidra 添加 PlayStation 2 支持的扩展。
此扩展基于原 [ghidra-emotionengine](https://github.com/beardypig/ghidra-emotionengine) 项目,并进行了多项改动。
## 功能
- 反汇编和反编译 EE 特定的指令集(MMI、VU0 宏模式等)。
- 通过内置的 STABS 分析器,从包含 `.mdebug` 段的 ELF 文件中恢复数据类型、函数和全局变量。
- 导入 PCSX2 存档状态。
- 通过 MIPS-R5900 常量引用分析器修复对全局变量的引用。
- 支持 Ghidra 12.1。
## 安装说明
发布版可在 [发布页面](https://github.com/chaoticgd/ghidra-emotionengine-reloaded/releases) 获取。每当有推送至主分支时生成的不稳定版可在 [此处](https://github.com/chaoticgd/ghidra-emotionengine-reloaded/releases/tag/unstable) 获取。要安装扩展,请遵循 [Ghidra 文档](https://ghidra-sre.org/InstallationGuide.html#Extensions) 中的说明。
## 构建
如果您想自行构建扩展,请安装 `gradle` 并运行:
```
gradle -PGHIDRA_INSTALL_DIR=/path/to/ghidra buildExtension
```
## 常见问题
### 7-Zip 返回了不支持的方法
现代版本的 PCSX2 默认使用 zstd 压缩保存存档状态,而 Ghidra 的 zip 实现不支持该格式。要解决此问题,如果您使用的是 PCSX2 v2.1.178 或更高版本,请确保选中 `工具 -> 显示高级设置`,然后导航至 `文件 -> 设置 -> 高级 -> 存档状态设置`,并将 `压缩方法` 选项改为 `Deflate64`。如果您使用的是较旧版本,则需要在 `PCSX2.ini` 文件的 `EmuCore` 部分将 `SavestateZstdCompression` 设置为 `false`。
### 某些函数的反编译失败
请尝试禁用 `Decompiler Parameter ID` 分析器。
### 符号未被解修饰
请启用 `Demangler GNU` 分析器设置中的 `使用已弃用的解修饰器` 选项。
标签:Amass, EE反汇编, ELF文件, Ghidra插件, JS文件枚举, MIPS-R5900, PCSX2, PlayStation 2, PS2逆向, STABS分析, URL提取, VU0, 二进制分析, 云安全运维, 保存状态导入, 全局变量修复, 反编译, 域名枚举, 情感引擎, 数据结构恢复, 游戏机模拟, 游戏机逆向