# xex2tractor A tool for extracting and inspecting Xbox 360 XEX2 executable files, written in Rust. ## Usage ```sh xex2tractor ``` ### Example Output ``` === XEX2 Header === Magic: XEX2 (0x58455832) Module Flags: 0x00000001 [TITLE] Header Size: 0x00003000 (12288 bytes) Reserved: 0x00000000 Security Offset: 0x00000090 Header Count: 15 === Optional Headers (15 entries) === [ENTRY_POINT] 0x824AB748 [IMAGE_BASE_ADDRESS] 0x82000000 [DEFAULT_STACK_SIZE] 0x00080000 (524288 bytes) [SYSTEM_FLAGS] 0x00000400 [PAL50_INCOMPATIBLE] [EXECUTION_INFO] Media ID: 0x2D2E2EEB Title ID: 0x535107D4 Version: 0.0.0.2 ... [FILE_FORMAT_INFO] Encryption: Normal (AES-128-CBC) Compression: Normal (LZX) [STATIC_LIBRARIES] (12 libraries) XAPILIB 2.0.3215.0 (Unknown(64)) D3D9 2.0.3215.1 (Unknown(64)) ... [IMPORT_LIBRARIES] (2 libraries) xam.xex v2.0.4552.0 (min v2.0.4552.0) - 104 imports xboxkrnl.exe v2.0.4552.0 (min v2.0.4552.0) - 294 imports ``` ## Building ```sh cargo build --release ``` ## Testing Place a sample XEX2 file at `tests/data/default.xex`, then run: ```sh cargo test ``` ## Documentation See [doc/xex2_format.md](doc/xex2_format.md) for the XEX2 file format specification. ## License This project is licensed under the MIT License. See [LICENSE](LICENSE) for details.