This is an extension for the Ghidra SRE framework to support loading Xbox Executable Format (XBE) files, the format used for the original Xbox game console. Library symbol recovery is supported through integrated pattern matching against the XbSymbolDatabase.
The latest release of this extension can be found on the releases page. Download the latest ghidra_X.X.X_PUBLIC_XXXXXXXX_ghidra-xbe.zip
package. See below for how to install.
To build this extension from source on Ubuntu, clone the repository and run the build.sh
script. The script will download the JDK, Gradle, and Ghidra release package, then build the extension and output a release package to the dist
directory.
Copy the extension package ghidra_X.X.X_PUBLIC_XXXXXXXX_ghidra-xbe.zip
to your Ghidra installation directory <path to Ghidra root>/Extensions/Ghidra
. When starting Ghidra, in the main window navigate to File→Install Extensions..., and select XboxExecutableLoader. You can now import and analyze XBE files!
There is a set of GPL-sourced Xbox headers available in this repository. This can help improve your decompilation in Ghidra by providing type and function signature hints. You can parse this header in Ghidra after creating a project and importing your XBE. Following analysis, go to File → Parse C Source. Click the green + button, select the xbox.h
file, then click Parse to Program. In the Data Type Manager
window, right click on your default.xbe
and select Apply Function Datatypes.