emoose/idaxex
GitHub: emoose/idaxex
IDA Pro 9 的原生加载器插件,为 Xbox/Xbox 360 的 XEX 及 XBE 可执行文件提供完整的逆向分析支持。
Stars: 198 | Forks: 7
# idaxex
idaxex 是一个用于 IDA Pro 9.3 的原生加载器插件,增加了对加载 Xbox 360 XEX 和 Xbox XBE 可执行文件的支持。
最初是作为一个 [IDAPython 加载器](https://github.com/emoose/reversing/blob/master/xbox360.py)开始的,后来为了解决其局限性,继续作为原生 DLL 进行开发。
它应该具有与 xorloser 出色的 Xex Loader(适用于 IDA 6 及更早版本)相同的功能,并额外支持一些早期的非 XEX2 格式,例如 beta-kits 上使用的 XEX1。
此外还支持 XBE 文件,与 IDA 附带的加载器相比增加了一些额外功能。
## 支持的格式
包括对以下 Xbox 可执行文件的支持:
- XEX2 (>= 内核 1861)
- XEX1 (>= 1838)
- XEX% (>= 1746)
- XEX- (>= 1640)
- XEX? (>= 1529)
- XEX0 (>= 1332)
- XBE (>= XboxOG ~3729)
## 功能
- 可以处理压缩/未压缩的映像,以及加密/解密的映像(支持 retail、devkit 和 pre-release 加密密钥)
- 将导入和导出读取到相应的 IDA 导入/导出视图中。
- 自动为知名的导入命名,例如来自内核和 XAM 的导入,就像 xorloser 的加载器一样。
- 创建 PE 节,并使用 PE 头给定的适当权限进行标记。
- 支持 AES-NI 以帮助缩短较大 XEX 文件的加载时间。
- 标记来自 .pdata 异常目录的函数,并允许 IDA 的 eh_parse 插件读取异常信息。
- 将 codeview 信息传递给 IDA,允许其提示并加载 PDB 而不会出现警告/错误。
- 修改过的字节可以通过 IDA 的 `Apply patches to input` 选项写回输入文件(适用于所有 XBE,对于 XEX 必须首先使用 `xextool -eu -cu input.xex` 进行解压和解密)
- XBE:将内核导入添加到 IDA 导入视图
- XBE:尝试使用 [XbSymbolDatabase](https://github.com/Cxbx-Reloaded/XbSymbolDatabase) 和来自 XTLID 节的数据为 SDK 库函数命名
## 安装
受支持的 IDA Pro 9.x 版本提供预构建的发布版。
将加载器文件复制到相应 IDA 安装目录的 loader/plugin 文件夹中,或按照下面的构建步骤进行操作,并将生成的二进制文件安装到您的 IDA SDK 输出文件夹中。
要进行 PPC Altivec 分析,PPCAltivec 插件仍然是一个有用的伴侣:https://github.com/hayleyxyz/PPC-Altivec-IDA
## 构建
确保递归克隆仓库,以便拉取 excrypt 子模块。
**Windows**
- 将 `IDASDK` 环境变量指向您的 IDA SDK 9.3 根目录。
- 运行 CMake 生成 VS 解决方案:`cmake -B build -G "Visual Studio 18 2026"`
- 使用 `cmake --build build` 进行构建,或使用 `idaxex.slnx` 文件。
- idaxex.dll 将构建在 `$IDASDK\src\bin\loaders\idaxex.dll`
**Linux**
- 如果您的 SDK 目录树包含 IDA SDK 9.3 CMake bootstrap,请使用 `src/cmake/bootstrap.cmake`;如果您将该包单独存放,请使用独立的 [ida-cmake](https://github.com/allthingsida/ida-cmake) bootstrap。
- 确保 `IDASDK` 指向 SDK 根目录。
- 在仓库根目录中运行 `cmake -S . -B build`。
- 运行 `cmake --build build`。
- 要构建 `xex1tool`,请运行 `cmake -S xex1tool -B xex1tool/build` 和 `cmake --build xex1tool/build`。
在较新的 IDA SDK 上,`libida.so` 可能是正确的库名称,以替代 `libida64.so`。
# xex1tool
其中还包含了尝试重建 xorloser 的 XexTool 的成果,用于处理早期的 pre-XEX2 可执行文件。
(这个名字只是为了将其与原始的 XexTool 区分开来——它仍然可以完美支持 XEX2 文件)
目前它可以通过 `-l` 打印有关各种 XEX 头的信息,并从 XEX 内部提取基础文件(PE/XUIZ)。
对于已解密和解压的 XEX 文件,xex1tool 还可以为您将 VA 地址转换为文件偏移量,使文件修补变得更加容易。
标签:AES-NI, Bash脚本, C++, DAST, IDAPython, IDA插件, PDB符号, PE文件, Wayback Machine, XBE, XBE加载器, Xbox, Xbox 360, XEX2, XEX加载器, 二进制分析, 云安全运维, 云资产清单, 加密解密, 加载器开发, 动态链接库, 反汇编, 固件分析, 恶意软件分析, 情报收集, 数据擦除, 文件格式解析, 游戏主机破解, 游戏安全, 漏洞研究, 逆向工程