idaxex + xex1tool 0.29.3
idaxex: XEX loader for IDA 7+, supporting most known Xbox360/Xenon executable formats.
xex1tool: manipulator for XEX2/XEX1/XEX0... files, can print detailed info & extract things like basefile/resources.
Built for 32/64-bit IDA Pro 7.2, 7.3, 7.5 & 7.6
To install idaxex just extract the contents of the folder for your IDA version (eg. ida76_win) into IDA's install folder (eg. C:\Program Files\IDA 7.6)
xex1tool is also included, which supports printing headers/imports & extracting basefile/resources from all the XEX revisions supported by idaxex, usage is mostly the same as XexTool.
Changelog
(0.29.3) add IDA 7.6 build
(0.29.3) xex: fix callcap imports dbgmsg
(0.29.2) idaloader: delete useless .pdata -> fn xrefs
(0.29.1) xex1tool: print XEXP 32-bit media ID (from the 128-bit security_info.media_id in header)
(0.29.1) xex/xex1tool: allow parsing/printing XEXP delta patch headers
(0.29) xex1tool: add -i/imports option to print import libraries/functions
(0.29) xex: warning fixups, update ExCrypt to fix broken ShaFinal
(0.28.2) xex: don't include zero-blocks when converting VA -> file offset, warn if VA is part of a zero-block
(0.28.1) xex1tool: add param to convert between file & virtual (memory) addresses
(0.28) include the x360.til file (thanks to xorloser for releasing it!)
(0.28) read & map functions from .pdata section (allows a lot more functions to be identified)
(0.28) use ppc:vmx128 processor, improve compiler definition, load x360.til
(0.27) include ida32 builds for IDA 7.2/7.3
(0.27) don't exclude .idata segment from being created (fixes some issues with halo 3 delta build's imports)
(0.26a) added 32-bit build for ida75 loader (for using with PPC hexrays, etc)
(0.26) add builds for IDA 7.3 & 7.5
(0.26) xex: add support for loading XEX0 files
Recommendations
PPC2C can come in useful for making sense of some of the bit-fiddling opcodes (rldicr etc), updated code for IDA 7 can be found on gibbed's repo here: https://github.com/gibbed/ppc2c
You can also integrate Ghidra's decompiler into IDA by using cseagle's blc plugin, which works pretty well with X360 executable formats: https://github.com/cseagle/blc
The HexRays PPC decompiler should also work with this loader too, though in my experience that has some issues with handling X360-style prologs/epilogs (register save/loads etc), hopefully later versions might improve this.
Symbols
If you want to load any .PDB symbols in they should hopefully work fine with this loader - IDA should be able to load .PDBs fine by itself (though not .XDBs, which aren't that interesting anyway since they only include symbols for XDK libraries).
(If you run into an error when loading the PDB maybe try editing the pdb.cfg
file, and swap the value of PDB_PROVIDER
- MSDIA seems to have the best support for X360 files)
When loading the PDB IDA will ask for the address to load it to, make sure to give it the correct base address of the XEX (eg. 0x82000000 is common, but others might be used too - check with xex1tool first), and uncheck the "Types only" option - you'll probably get an alert about the input file not matching as the PDB was made for the EXE before it was converted to XEX, you can usually ignore that, and as long as you have the correct PDB it should then load in fine.
For .MAP symbols I've updated the ida-pro-loadmap
plugin to support loaders like idaxex, and also allow it to mark even more functions than it previously could, along with marking functions linked in from known SDK libraries: https://github.com/emoose/ida-pro-loadmap/releases/tag/1.43a
Usage
idaxex has no user-configurable options - just extract the loader, reload IDA and you should now be able to load XEX files!
If you have any problems please let me know about them on the Issues page!