chaoticgd/ghidra-emotionengine-reloaded

GitHub: chaoticgd/ghidra-emotionengine-reloaded

为Ghidra添加PlayStation 2 Emotion Engine指令集支持的反向工程扩展。

Stars: 220 | Forks: 12

# Ghidra Emotion Engine: 重载版 [![运行测试](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/927743f529171701.svg)](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, 二进制分析, 云安全运维, 保存状态导入, 全局变量修复, 反编译, 域名枚举, 情感引擎, 数据结构恢复, 游戏机模拟, 游戏机逆向