ReXGlue SDK
Loading...
Searching...
No Matches
xex.h
Go to the documentation of this file.
1
15
16#pragma once
17
18#include <rex/assert.h>
19#include <rex/platform.h>
20#include <rex/types.h>
21
22namespace rex::kernel {
23
25// NOLINTNEXTLINE(performance-enum-size): XEX file format field width
31
59
60enum XEXMediaFlags : u32 {
63 kXEXMediaHardDisk = 0x00000001,
64 kXEXMediaDVDX2 = 0x00000002,
65 kXEXMediaDVDCD = 0x00000004,
66 kXEXMediaDVD5 = 0x00000008,
67 kXEXMediaDVD9 = 0x00000010,
68 kXEXMediaSystemFlash = 0x00000020,
69 kXEXMediaMemoryUnit = 0x00000080,
70 kXEXMediaUSBMassStorageDevice = 0x00000100,
71 kXEXMediaNetwork = 0x00000200,
72 kXEXMediaDirectFromMemory = 0x00000400,
73 kXEXMediaRAMDrive = 0x00000800,
74 kXEXMediaSVOD = 0x00001000,
75 kXEXMediaInsecurePackage = 0x01000000,
76 kXEXMediaSaveGamePackage = 0x02000000,
77 kXEXMediaLocallySignedPackage = 0x04000000,
78 kXEXMediaLiveSignedPackage = 0x08000000,
79 kXEXMediaXboxPackage = 0x10000000,
81};
82
83enum XEXRegionFlags : u32 {
85 kXEXRegionNTSCU = 0x000000FF,
87 kXEXRegionNTSCJ = 0x0000FF00,
88 kXEXRegionNTSCJJapan = 0x00000100,
89 kXEXRegionNTSCJChina = 0x00000200,
90 kXEXRegionPAL = 0x00FF0000,
92 kXEXRegionPALAUNZ = 0x00010000,
93 kXEXRegionOther = 0xFF000000,
94 kXEXRegionAll = 0xFFFFFFFF,
95};
96
97// NOLINTNEXTLINE(performance-enum-size): XEX file format field width
98enum XEXModuleFlags : u32 {
99 kXEXModuleTitle = 0x00000001,
100 kXEXModuleExportsToTitle = 0x00000002,
101 kXEXModuleSystemDebugger = 0x00000004,
102 kXEXModuleDLLModule = 0x00000008,
103 kXEXModuleModulePatch = 0x00000010,
104 kXEXModulePatchFull = 0x00000020,
105 kXEXModulePatchDelta = 0x00000040,
106 kXEXModuleUserMode = 0x00000080,
107};
108
109enum XEXSystemFlags : u32 {
112 kXEXSystemNoForcedReboot = 0x00000001,
113 kXEXSystemForegroundTasks = 0x00000002,
114 kXEXSystemNoODDMapping = 0x00000004,
115 kXEXSystemHandleMCEInput = 0x00000008,
116 kXEXSystemRestrictedHUDFeatures = 0x00000010,
117 kXEXSystemHandleGamepadDisconnect = 0x00000020,
118 kXEXSystemInsecureSockets = 0x00000040,
119 kXEXSystemXbox1Interoperability = 0x00000080,
120 kXEXSystemDashContext = 0x00000100,
121 kXEXSystemUsesGameVoiceChannel = 0x00000200,
122 kXEXSystemPAL50Incompatible = 0x00000400,
123 kXEXSystemInsecureUtilityDrive = 0x00000800,
124 kXEXSystemXAMHooks = 0x00001000,
125 kXEXSystemAccessPII = 0x00002000,
126 kXEXSystemCrossPlatformSystemLink = 0x00004000,
127 kXEXSystemMultiDiscSwap = 0x00008000,
128 kXEXSystemMultiDiscInsecureMedia = 0x00010000,
129 kXEXSystemAP25Media = 0x00020000,
130 kXEXSystemNoConfirmExit = 0x00040000,
131 kXEXSystemAllowBackgroundDownload = 0x00080000,
132 kXEXSystemCreatePersistableRAMDrive = 0x00100000,
133 kXEXSystemInheritPersistentRAMDrive = 0x00200000,
134 kXEXSystemAllowHUDVibration = 0x00400000,
135 kXEXSystemAccessUtilityPartitions = 0x00800000,
136 kXEXSystemIPTVInputSupported = 0x01000000,
137 kXEXSystemPreferBigButtonInput = 0x02000000,
138 kXEXSystemAllowExtendedSystemReservation = 0x04000000,
139 kXEXSystemMultiDiscCrossTitle = 0x08000000,
140 kXEXSystemInstallIncompatible = 0x10000000,
141 kXEXSystemAllowAvatarGetMetadataByXUID = 0x20000000,
142 kXEXSystemAllowControllerSwapping = 0x40000000,
143 kXEXSystemDashExtensibilityModule = 0x80000000,
145};
146
148// NOLINTNEXTLINE(performance-enum-size): XEX file format field width
150 kXEXRatingESRBEC = 0x00,
151 kXEXRatingESRBE = 0x02,
152 kXEXRatingESRBE10 = 0x04,
153 kXEXRatingESRBT = 0x06,
154 kXEXRatingESRBM = 0x08,
155 kXEXRatingESRBAO = 0x0E,
156 kXEXRatingESRBUnrated = 0xFF,
157};
158
159// NOLINTNEXTLINE(performance-enum-size): XEX file format field width
161 kXEXRatingPEGI3Plus = 0,
162 kXEXRatingPEGI7Plus = 4,
163 kXEXRatingPEGI12Plus = 9,
164 kXEXRatingPEGI16Plus = 13,
165 kXEXRatingPEGI18Plus = 14,
166 kXEXRatingPEGIUnrated = 0xFF,
167};
168
169// NOLINTNEXTLINE(performance-enum-size): XEX file format field width
171 kXEXRatingPEGIFI3Plus = 0,
172 kXEXRatingPEGIFI7Plus = 4,
173 kXEXRatingPEGIFI11Plus = 8,
174 kXEXRatingPEGIFI15Plus = 12,
175 kXEXRatingPEGIFI18Plus = 14,
176 kXEXRatingPEGIFIUnrated = 0xFF,
177};
178
179// NOLINTNEXTLINE(performance-enum-size): XEX file format field width
181 kXEXRatingPEGIPT4Plus = 1,
182 kXEXRatingPEGIPT6Plus = 3,
183 kXEXRatingPEGIPT12Plus = 9,
184 kXEXRatingPEGIPT16Plus = 13,
185 kXEXRatingPEGIPT18Plus = 14,
186 kXEXRatingPEGIPTUnrated = 0xFF,
187};
188
189// NOLINTNEXTLINE(performance-enum-size): XEX file format field width
191 kXEXRatingBBFCUniversal = 1,
192 kXEXRatingBBFCPG = 5,
193 kXEXRatingBBFC3Plus = 0,
194 kXEXRatingBBFC7Plus = 4,
195 kXEXRatingBBFC12Plus = 9,
196 kXEXRatingBBFC15Plus = 12,
197 kXEXRatingBBFC16Plus = 13,
198 kXEXRatingBBFC18Plus = 14,
199 kXEXRatingBBFCUnrated = 0xFF,
200};
201
202// NOLINTNEXTLINE(performance-enum-size): XEX file format field width
204 kXEXRatingCEROA = 0,
205 kXEXRatingCEROB = 2,
206 kXEXRatingCEROC = 4,
207 kXEXRatingCEROD = 6,
208 kXEXRatingCEROZ = 8,
209 kXEXRatingCEROUnrated = 0xFF,
210};
211
212// NOLINTNEXTLINE(performance-enum-size): XEX file format field width
214 kXEXRatingUSKAll = 0,
215 kXEXRatingUSK6Plus = 2,
216 kXEXRatingUSK12Plus = 4,
217 kXEXRatingUSK16Plus = 6,
218 kXEXRatingUSK18Plus = 8,
219 kXEXRatingUSKUnrated = 0xFF,
220};
221
222// NOLINTNEXTLINE(performance-enum-size): XEX file format field width
224 kXEXRatingOFLCAUG = 0,
225 kXEXRatingOFLCAUPG = 2,
226 kXEXRatingOFLCAUM = 4,
227 kXEXRatingOFLCAUMA15Plus = 6,
228 kXEXRatingOFLCAUUnrated = 0xFF,
229};
230
231// NOLINTNEXTLINE(performance-enum-size): XEX file format field width
233 kXEXRatingOFLCNZG = 0,
234 kXEXRatingOFLCNZPG = 2,
235 kXEXRatingOFLCNZM = 4,
236 kXEXRatingOFLCNZMA15Plus = 6,
237 kXEXRatingOFLCNZUnrated = 0xFF,
238};
239
240// NOLINTNEXTLINE(performance-enum-size): XEX file format field width
242 kXEXRatingKMRBAll = 0,
243 kXEXRatingKMRB12Plus = 2,
244 kXEXRatingKMRB15Plus = 4,
245 kXEXRatingKMRB18Plus = 6,
246 kXEXRatingKMRBUnrated = 0xFF,
247};
248
249// NOLINTNEXTLINE(performance-enum-size): XEX file format field width
251 kXEXRatingBrazilAll = 0,
252 kXEXRatingBrazil12Plus = 2,
253 kXEXRatingBrazil14Plus = 4,
254 kXEXRatingBrazil16Plus = 5,
255 kXEXRatingBrazil18Plus = 8,
256 kXEXRatingBrazilUnrated = 0xFF,
257};
258
259// NOLINTNEXTLINE(performance-enum-size): XEX file format field width
261 kXEXRatingFPBAll = 0,
262 kXEXRatingFPBPG = 6,
263 kXEXRatingFPB10Plus = 7,
264 kXEXRatingFPB13Plus = 10,
265 kXEXRatingFPB16Plus = 13,
266 kXEXRatingFPB18Plus = 14,
267 kXEXRatingFPBUnrated = 0xFF,
268};
269
270enum XEXHeaderKey : u32 {
271 kXEXHeaderResourceInfo = 0x000002FF,
272 kXEXHeaderFileFormatInfo = 0x000003FF,
273 kXEXHeaderDeltaPatchDescriptor = 0x000005FF,
274 kXEXHeaderBaseReference = 0x00000405,
275 kXEXHeaderBoundPath = 0x000080FF,
276 kXEXHeaderDeviceId = 0x00008105,
277 kXEXHeaderOriginalBaseAddress = 0x00010001,
282 kXEXHeaderImportLibraries = 0x000103FF,
283 kXEXHeaderChecksumTimestamp = 0x00018002,
284 kXEXHeaderEnabledForCallCap = 0x00018102,
285 kXEXHeaderEnabledForFastCap = 0x00018200,
286 kXEXHeaderOriginalPEName = 0x000183FF,
287 kXEXHeaderStaticLibraries = 0x000200FF,
288 kXEXHeaderTLSInfo = 0x00020104,
295 kXEXHeaderPageHeapSizeAndFlags = 0x00028002,
296 kXEXHeaderSystemFlags = 0x00030000,
297 kXEXHeaderExecutionInfo = 0x00040006,
300 kXEXHeaderGameRatings = 0x00040310,
301 kXEXHeaderLANKey = 0x00040404,
302 kXEXHeaderXbox360Logo = 0x000405FF,
303 kXEXHeaderMultiDiscMediaIDs = 0x000406FF,
306 kXEXHeaderAdditionalTitleMemory = 0x00040801,
309};
310
311// NOLINTNEXTLINE(performance-enum-size): XEX file format field width
312enum XEXEncryptionType : u16 {
313 kXEXEncryptionNone = 0,
314 kXEXEncryptionNormal = 1,
315};
316
317// NOLINTNEXTLINE(performance-enum-size): XEX file format field width
319 kXEXCompressionNone = 0,
325};
326
327enum XEXApprovalType : u8 {
330 kXEXApprovalUnapproved = 0,
331 kXEXApprovalPossible = 1,
332 kXEXApprovalApproved = 2,
333 kXEXApprovalExpired = 3,
335};
336
339 BE<XEXRatingESRBValue> esrb;
340 BE<XEXRatingPEGIValue> pegi;
341 BE<XEXRatingPEGIFIValue> pegifi;
342 BE<XEXRatingPEGIPTValue> pegipt;
343 BE<XEXRatingBBFCValue> bbfc;
344 BE<XEXRatingCEROValue> cero;
345 BE<XEXRatingUSKValue> usk;
346 BE<XEXRatingOFLCAUValue> oflcau;
347 BE<XEXRatingOFLCNZValue> oflcnz;
348 BE<XEXRatingKMRBValue> kmrb;
349 BE<XEXRatingBrazilValue> brazil;
350 BE<XEXRatingFPBValue> fpb;
351};
352
358REX_STATIC_ASSERT_SIZE(XEXFileBasicCompressionBlock, 0x8);
359
364REX_STATIC_ASSERT_SIZE(XEXFileBasicCompressionInfo, 0x8);
365
367 be_u32 block_size;
368 u8 block_hash[20];
369};
370REX_STATIC_ASSERT_SIZE(XEXCompressedBlockInfo, 0x18);
371
376REX_STATIC_ASSERT_SIZE(XEXFileNormalCompressionInfo, 0x1C);
377
380 be_u32 info_size;
381 BE<XEXEncryptionType> encryption_type;
382 BE<XEXCompressionType> compression_type;
387};
388REX_STATIC_ASSERT_SIZE(XEXOptFileFormatInfo, 0x24);
389
392 u32 value;
393 struct {
394 u32 qfe : 8;
395 u32 build : 16;
396 u32 minor : 4;
397 u32 major : 4;
398 };
399};
400
402 u8 key[0x10];
403};
404
406 be_u32 size;
407 char path[1];
408};
409static_assert(offsetof(XEXOptBoundPath, path) == 0x4);
410REX_STATIC_ASSERT_SIZE(XEXOptBoundPath, 0x8);
411
413 char name[8];
414 be_u16 version_major;
415 be_u16 version_minor;
416 be_u16 version_build;
417 u8 approval_type;
418 u8 version_qfe;
419};
420REX_STATIC_ASSERT_SIZE(XEXOptStaticLibrary, 0x10);
421
426
428 be_u32 size;
429 char name[1];
430};
431static_assert(offsetof(XEXOptOriginalPEName, name) == 0x4);
432REX_STATIC_ASSERT_SIZE(XEXOptOriginalPEName, 0x8);
433
436 be_u32 offset;
437 be_u32 size;
438};
439REX_STATIC_ASSERT_SIZE(XEXOptDataDirectory, 0x8);
440
442 be_u32 slot_count;
443 be_u32 raw_data_address;
444 be_u32 data_size;
446};
447REX_STATIC_ASSERT_SIZE(XEXOptTLSInfo, 0x10);
448
450 char name[8];
451 be_u32 address;
452 be_u32 size;
453};
454REX_STATIC_ASSERT_SIZE(XEXResource, 0x10);
455
460static_assert(offsetof(XEXOptResourceInfo, resources) == 0x4);
461REX_STATIC_ASSERT_SIZE(XEXOptResourceInfo, 0x14);
462
464 be_u32 old_addr;
465 be_u32 new_addr;
467 be_u16 compressed_len;
468 char patch_data[1];
469};
470static_assert(offsetof(XEXDeltaPatch, patch_data) == 0xC);
471REX_STATIC_ASSERT_SIZE(XEXDeltaPatch, 0x10);
472
474 be_u32 size;
477 u8 digest_source[0x14];
490 XEXDeltaPatch info;
491
492 XEXVersion GetTargetVersion() const { return XEXVersion{target_version_value}; }
493
494 void SetTargetVersion(XEXVersion version) { target_version_value = version.value; }
495
496 XEXVersion GetSourceVersion() const { return XEXVersion{source_version_value}; }
497
498 void SetSourceVersion(XEXVersion version) { source_version_value = version.value; }
499};
500static_assert(offsetof(XEXOptDeltaPatchDescriptor, info) == 0x4C);
501REX_STATIC_ASSERT_SIZE(XEXOptDeltaPatchDescriptor, 0x5C);
502
504 be_u32 media_id;
507 be_u32 title_id;
508 u8 platform;
509 u8 executable_table;
511 u8 disc_count;
512 be_u32 savegame_id;
513
514 XEXVersion GetVersion() const { return XEXVersion{version_value}; }
515
516 void SetVersion(XEXVersion version) { version_value = version.value; }
517
518 XEXVersion GetBaseVersion() const { return XEXVersion{base_version_value}; }
519
520 void SetBaseVersion(XEXVersion version) { base_version_value = version.value; }
521};
522REX_STATIC_ASSERT_SIZE(XEXOptExecutionInfo, 0x18);
523
525 be_u32 size;
526 struct {
527 be_u32 size;
528 be_u32 count;
529 char data[1];
530 } string_table;
531};
532static_assert(offsetof(XEXOptImportLibraries, string_table.data) == 0xC);
533REX_STATIC_ASSERT_SIZE(XEXOptImportLibraries, 0x10);
534
537 be_u32 size;
538 char next_import_digest[0x14];
539 be_u32 id;
543 be_u16 name_index;
544 be_u16 count;
545 be_u32 import_table[1];
546
547 XEXVersion GetVersion() const { return XEXVersion{version_value}; }
548
549 void SetVersion(XEXVersion version) { version_value = version.value; }
550
551 XEXVersion GetVersionMin() const { return XEXVersion{version_min_value}; }
552
553 void SetVersionMin(XEXVersion version) { version_min_value = version.value; }
554};
555static_assert(offsetof(XEXImportLibraryHeader, import_table) == 0x28);
556REX_STATIC_ASSERT_SIZE(XEXImportLibraryHeader, 0x2C);
557
560 be_u32 size;
561 be_u32 values[1];
562
563 u32 GetCount() const { return (size - 4) / 4; }
564};
565
574 be_u32 key;
575
576 union {
577 be_u32 value;
578 be_u32 offset;
579 };
580};
581
583struct XEXHeader {
584 be_u32 magic;
585 BE<XEXModuleFlags> module_flags;
586 be_u32 header_size;
587 be_u32 reserved;
589 be_u32 header_count;
590
592};
593static_assert(offsetof(XEXHeader, headers) == 0x18);
594REX_STATIC_ASSERT_SIZE(XEXHeader, 0x20);
595
598 union {
599 be_u32 value;
600 struct {
601 XEXSectionType type : 4;
602 u32 page_count : 28;
603 };
604 };
605 char data_digest[0x14];
606};
607REX_STATIC_ASSERT_SIZE(XEXPageDescriptor, 0x18);
608
611 be_u32 header_size;
612 be_u32 image_size;
613 char rsa_signature[0x100];
614 be_u32 info_size;
615 be_u32 image_flags;
616 be_u32 load_address;
617 char section_digest[0x14];
618 be_u32 import_table_count;
619 char import_table_digest[0x14];
620 char xgd2_media_id[0x10];
621 char aes_key[0x10];
622 be_u32 export_table;
623 char header_digest[0x14];
624 be_u32 region;
626 be_u32 page_descriptor_count;
628};
629static_assert(offsetof(XEXSecurityInfoHeader, page_descriptors) == 0x184);
630REX_STATIC_ASSERT_SIZE(XEXSecurityInfoHeader, 0x19C);
631
634 be_u32 header_size;
635 be_u32 image_size;
636 char rsa_signature[0x100];
637 char image_digest[0x14];
638 char import_table_digest[0x14];
639 be_u32 load_address;
640 char aes_key[0x10];
641 char xgd2_media_id[0x10];
642 be_u32 region;
643 be_u32 image_flags;
644 be_u32 export_table;
646 be_u32 page_descriptor_count;
648};
649static_assert(offsetof(XEX1SecurityInfo, page_descriptors) == 0x168);
650REX_STATIC_ASSERT_SIZE(XEX1SecurityInfo, 0x180);
651
654 be_u32 magic[3];
655 be_u32 module_number[2];
656 be_u32 version[3];
658 be_u32 count;
659 be_u32 base;
661 be_u32 ordinal_offset[1];
662};
663static_assert(offsetof(XEXExportTable, ordinal_offset) == 0x2C);
664REX_STATIC_ASSERT_SIZE(XEXExportTable, 0x30);
665
680
681} // namespace rex::kernel
Definition export.h:24
XEXRatingOFLCAUValue
Definition xex.h:223
XEXImageFlags
Definition xex.h:33
@ kXEXImageRegionFree
Definition xex.h:54
@ kXEXImageXeikaKey
Definition xex.h:40
@ kXEXImageOrange0
Definition xex.h:43
@ kXEXImagePageSize4KB
Definition xex.h:51
@ kXEXImageManufacturingUtility
Definition xex.h:36
@ kXEXImageOnlineActivationRequired
Definition xex.h:49
@ kXEXImageUserModeTitle
Definition xex.h:41
@ kXEXImageRevocationCheckRequired
Definition xex.h:56
@ kXEXImageKeyVaultPrivilegesRequired
Definition xex.h:48
@ kXEXImageOrange2
Definition xex.h:45
@ kXEXImageManufacturingSupportTools
Definition xex.h:37
@ kXEXImageCardeaKey
Definition xex.h:39
@ kXEXImageRevocationCheckOptional
Definition xex.h:55
@ kXEXImageIPTVSignupApplication
Definition xex.h:46
@ kXEXImageIPTVTitleApplication
Definition xex.h:47
@ kXEXImageOrange1
Definition xex.h:44
@ kXEXImageUserModeSystem
Definition xex.h:42
@ kXEXImageXGD2MediaOnly
Definition xex.h:38
XEXRatingPEGIValue
Definition xex.h:160
XEXRatingUSKValue
Definition xex.h:213
XEXRatingPEGIPTValue
Definition xex.h:180
XEXRatingCEROValue
Definition xex.h:203
XEXRatingBrazilValue
Definition xex.h:250
XEXSectionType
Definition xex.h:26
@ kXEXSectionCode
Definition xex.h:27
@ kXEXSectionData
Definition xex.h:28
@ kXEXSectionReadOnlyData
Definition xex.h:29
XEXRatingESRBValue
Definition xex.h:149
XEXCompressionType
Definition xex.h:318
@ kXEXCompressionDelta
Definition xex.h:324
@ kXEXCompressionBasic
Definition xex.h:321
@ kXEXCompressionNormal
Definition xex.h:323
XEXRatingFPBValue
Definition xex.h:260
XEXRegionFlags
Definition xex.h:83
@ kXEXRegionPALAUNZ
Definition xex.h:92
@ kXEXRegionOther
Definition xex.h:93
@ kXEXRegionNTSCJ
Definition xex.h:87
@ kXEXRegionPAL
Definition xex.h:90
@ kXEXRegionNTSCU
Definition xex.h:85
@ kXEXRegionNTSCJJapan
Definition xex.h:88
@ kXEXRegionNTSCJChina
Definition xex.h:89
XEXHeaderKey
Definition xex.h:270
@ kXEXHeaderAlternateTitleIDs
Definition xex.h:305
@ kXEXHeaderTitleWorkspaceSize
Definition xex.h:299
@ kXEXHeaderExportsByName
Definition xex.h:308
@ kXEXHeaderDefaultStackSize
Definition xex.h:290
@ kXEXHeaderEntryPoint
Definition xex.h:279
@ kXEXHeaderDefaultHeapSize
Definition xex.h:294
@ kXEXHeaderDefaultFilesystemCacheSize
Definition xex.h:292
@ kXEXHeaderImageBaseAddress
Definition xex.h:281
XEXRatingKMRBValue
Definition xex.h:241
XEXRatingBBFCValue
Definition xex.h:190
XEXRatingOFLCNZValue
Definition xex.h:232
XEXRatingPEGIFIValue
Definition xex.h:170
Platform flags, packing macros and export markers.
T value
Definition types.h:181
Definition xex.h:633
char aes_key[0x10]
Definition xex.h:640
be_u32 region
Definition xex.h:642
be_u32 allowed_media_types
Definition xex.h:645
XEXPageDescriptor page_descriptors[1]
Definition xex.h:647
be_u32 image_flags
Definition xex.h:643
be_u32 block_size
Definition xex.h:367
Definition xex.h:463
char patch_data[1]
Definition xex.h:468
be_u16 uncompressed_len
Definition xex.h:466
Definition xex.h:653
be_u32 module_number[2]
Definition xex.h:655
be_u32 base
Definition xex.h:659
be_u32 count
Definition xex.h:658
be_u32 image_base_address
Definition xex.h:657
be_u32 ordinal_offset[1]
Definition xex.h:661
be_u32 zero_size
Definition xex.h:356
be_u32 data_size
Definition xex.h:355
XEXFileBasicCompressionBlock blocks[1]
Definition xex.h:362
be_u32 window_size
Definition xex.h:373
Definition xex.h:338
Definition xex.h:583
be_u32 security_offset
Definition xex.h:588
XEXOptHeader headers[1]
Definition xex.h:591
be_u32 magic
Definition xex.h:584
be_u32 header_size
Definition xex.h:586
be_u32 import_table[1]
Definition xex.h:545
be_u16 name_index
Definition xex.h:543
be_u32 version_value
Definition xex.h:540
be_u32 size
Definition xex.h:537
be_u32 version_min_value
Definition xex.h:542
Definition xex.h:405
be_u32 size
Definition xex.h:406
char path[1]
Definition xex.h:407
be_u32 offset
Definition xex.h:436
be_u32 delta_image_source_size
Definition xex.h:487
be_u32 delta_headers_source_size
Definition xex.h:482
be_u32 delta_headers_source_offset
Definition xex.h:481
be_u32 target_version_value
Definition xex.h:475
be_u32 delta_image_source_offset
Definition xex.h:486
be_u32 size_of_target_headers
Definition xex.h:479
be_u32 source_version_value
Definition xex.h:476
u8 digest_source[0x14]
Definition xex.h:477
be_u32 delta_image_target_offset
Definition xex.h:489
be_u32 delta_headers_target_offset
Definition xex.h:484
u8 image_key_source[0x10]
Definition xex.h:478
u8 disc_number
Definition xex.h:510
be_u32 base_version_value
Definition xex.h:506
be_u32 version_value
Definition xex.h:505
be_u32 info_size
Definition xex.h:380
union rex::kernel::XEXOptFileFormatInfo::@010231234041266041043347343121106027172073041227 compression_info
Definition xex.h:573
be_u32 key
Definition xex.h:574
be_u32 size
Definition xex.h:525
Definition xex.h:401
char name[1]
Definition xex.h:429
be_u32 size
Definition xex.h:428
be_u32 size
Definition xex.h:457
XEXResource resources[1]
Definition xex.h:458
be_u32 size
Definition xex.h:423
XEXOptStaticLibrary libraries[1]
Definition xex.h:424
Definition xex.h:441
be_u32 raw_data_size
Definition xex.h:445
be_u32 data_size
Definition xex.h:444
Definition xex.h:559
be_u32 size
Definition xex.h:560
be_u32 values[1]
Definition xex.h:561
Definition xex.h:597
Definition xex.h:449
be_u32 image_flags
Definition xex.h:615
char section_digest[0x14]
Definition xex.h:617
be_u32 region
Definition xex.h:624
XEXPageDescriptor page_descriptors[1]
Definition xex.h:627
be_u32 allowed_media_types
Definition xex.h:625
char aes_key[0x10]
Definition xex.h:621
u32 NumberOfNames
Definition xex.h:675
u32 AddressOfNames
Definition xex.h:677
u32 Characteristics
Definition xex.h:668
u32 AddressOfFunctions
Definition xex.h:676
u32 NumberOfFunctions
Definition xex.h:674
u32 TimeDateStamp
Definition xex.h:669
u32 AddressOfNameOrdinals
Definition xex.h:678
Integer types, byte order wrappers and size literals.
Definition xex.h:391