Initial XEX support (#77)

* Initial XEX support

* Fix build

* Fix reader

* Fix reader, again

* Rename field to CertificateOffset

* Update reader

* Update Printer

* Update Printer

* Parse Certificate

* More info

* Fix build
This commit is contained in:
Deterous
2026-04-06 23:43:32 +09:00
committed by GitHub
parent 9993e574a0
commit 388567c9c6
15 changed files with 1028 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
namespace SabreTools.Data.Models.XenonExecutable
{
/// <summary>
/// Xenon (Xbox 360) Executable format (XEX2)
/// It is based on PE format and is PPC architecutre (therefore Big-Endian)
/// During alpha stage, Xenon was a slightly modified Apple Power Mac G5
/// Early (Before March 2005) builds used pure PE-formatted executables, June 2005 XDK began requiring XEX-format
/// Early (August 2005 and earlier) XEX-format images (XEX0, XEX?, XEX-, XEX1) are not supported.
/// </summary>
/// <see href="http://oskarsapps.mine.nu/xexdump"/>
/// <see href="https://free60.org/System-Software/Formats/XEX/"/>
public class Executable
{
/// <summary>
/// XEX header
/// </summary>
public Header Header { get; set; } = new();
/// <summary>
/// XEX certificate structure
/// </summary>
public Certificate Certificate { get; set; } = new();
/// <summary>
/// PE data, too large to be read into memory
/// Encrypted and/or compressed blob on most XEX files
/// Occassionally padded with zeroes at the end
/// </summary>
public byte[]? CompressedData { get; set; }
}
}