xbe#

Python 3 Library to work with .xbe files, the executable file format for the original Xbox game console.

class xbe.XbeKernelImage[source]#

Bases: object

xboxkrnl.exe model

exports = {1: 'AvGetSavedDataAddress', 2: 'AvSendTVEncoderOption', 3: 'AvSetDisplayMode', 4: 'AvSetSavedDataAddress', 5: 'DbgBreakPoint', 6: 'DbgBreakPointWithStatus', 7: 'DbgLoadImageSymbols', 8: 'DbgPrint', 9: 'HalReadSMCTrayState', 10: 'DbgPrompt', 11: 'DbgUnLoadImageSymbols', 12: 'ExAcquireReadWriteLockExclusive', 13: 'ExAcquireReadWriteLockShared', 14: 'ExAllocatePool', 15: 'ExAllocatePoolWithTag', 16: 'ExEventObjectType', 17: 'ExFreePool', 18: 'ExInitializeReadWriteLock', 19: 'ExInterlockedAddLargeInteger', 20: 'ExInterlockedAddLargeStatistic', 21: 'ExInterlockedCompareExchange64', 22: 'ExMutantObjectType', 23: 'ExQueryPoolBlockSize', 24: 'ExQueryNonVolatileSetting', 25: 'ExReadWriteRefurbInfo', 26: 'ExRaiseException', 27: 'ExRaiseStatus', 28: 'ExReleaseReadWriteLock', 29: 'ExSaveNonVolatileSetting', 30: 'ExSemaphoreObjectType', 31: 'ExTimerObjectType', 32: 'ExfInterlockedInsertHeadList', 33: 'ExfInterlockedInsertTailList', 34: 'ExfInterlockedRemoveHeadList', 35: 'FscGetCacheSize', 36: 'FscInvalidateIdleBlocks', 37: 'FscSetCacheSize', 38: 'HalClearSoftwareInterrupt', 39: 'HalDisableSystemInterrupt', 40: 'HalDiskCachePartitionCount', 41: 'HalDiskModelNumber', 42: 'HalDiskSerialNumber', 43: 'HalEnableSystemInterrupt', 44: 'HalGetInterruptVector', 45: 'HalReadSMBusValue', 46: 'HalReadWritePCISpace', 47: 'HalRegisterShutdownNotification', 48: 'HalRequestSoftwareInterrupt', 49: 'HalReturnToFirmware', 50: 'HalWriteSMBusValue', 51: 'InterlockedCompareExchange', 52: 'InterlockedDecrement', 53: 'InterlockedIncrement', 54: 'InterlockedExchange', 55: 'InterlockedExchangeAdd', 56: 'InterlockedFlushSList', 57: 'InterlockedPopEntrySList', 58: 'InterlockedPushEntrySList', 59: 'IoAllocateIrp', 60: 'IoBuildAsynchronousFsdRequest', 61: 'IoBuildDeviceIoControlRequest', 62: 'IoBuildSynchronousFsdRequest', 63: 'IoCheckShareAccess', 64: 'IoCompletionObjectType', 65: 'IoCreateDevice', 66: 'IoCreateFile', 67: 'IoCreateSymbolicLink', 68: 'IoDeleteDevice', 69: 'IoDeleteSymbolicLink', 70: 'IoDeviceObjectType', 71: 'IoFileObjectType', 72: 'IoFreeIrp', 73: 'IoInitializeIrp', 74: 'IoInvalidDeviceRequest', 75: 'IoQueryFileInformation', 76: 'IoQueryVolumeInformation', 77: 'IoQueueThreadIrp', 78: 'IoRemoveShareAccess', 79: 'IoSetIoCompletion', 80: 'IoSetShareAccess', 81: 'IoStartNextPacket', 82: 'IoStartNextPacketByKey', 83: 'IoStartPacket', 84: 'IoSynchronousDeviceIoControlRequest', 85: 'IoSynchronousFsdRequest', 86: 'IofCallDriver', 87: 'IofCompleteRequest', 88: 'KdDebuggerEnabled', 89: 'KdDebuggerNotPresent', 90: 'IoDismountVolume', 91: 'IoDismountVolumeByName', 92: 'KeAlertResumeThread', 93: 'KeAlertThread', 94: 'KeBoostPriorityThread', 95: 'KeBugCheck', 96: 'KeBugCheckEx', 97: 'KeCancelTimer', 98: 'KeConnectInterrupt', 99: 'KeDelayExecutionThread', 100: 'KeDisconnectInterrupt', 101: 'KeEnterCriticalRegion', 102: 'MmGlobalData', 103: 'KeGetCurrentIrql', 104: 'KeGetCurrentThread', 105: 'KeInitializeApc', 106: 'KeInitializeDeviceQueue', 107: 'KeInitializeDpc', 108: 'KeInitializeEvent', 109: 'KeInitializeInterrupt', 110: 'KeInitializeMutant', 111: 'KeInitializeQueue', 112: 'KeInitializeSemaphore', 113: 'KeInitializeTimerEx', 114: 'KeInsertByKeyDeviceQueue', 115: 'KeInsertDeviceQueue', 116: 'KeInsertHeadQueue', 117: 'KeInsertQueue', 118: 'KeInsertQueueApc', 119: 'KeInsertQueueDpc', 120: 'KeInterruptTime', 121: 'KeIsExecutingDpc', 122: 'KeLeaveCriticalRegion', 123: 'KePulseEvent', 124: 'KeQueryBasePriorityThread', 125: 'KeQueryInterruptTime', 126: 'KeQueryPerformanceCounter', 127: 'KeQueryPerformanceFrequency', 128: 'KeQuerySystemTime', 129: 'KeRaiseIrqlToDpcLevel', 130: 'KeRaiseIrqlToSynchLevel', 131: 'KeReleaseMutant', 132: 'KeReleaseSemaphore', 133: 'KeRemoveByKeyDeviceQueue', 134: 'KeRemoveDeviceQueue', 135: 'KeRemoveEntryDeviceQueue', 136: 'KeRemoveQueue', 137: 'KeRemoveQueueDpc', 138: 'KeResetEvent', 139: 'KeRestoreFloatingPointState', 140: 'KeResumeThread', 141: 'KeRundownQueue', 142: 'KeSaveFloatingPointState', 143: 'KeSetBasePriorityThread', 144: 'KeSetDisableBoostThread', 145: 'KeSetEvent', 146: 'KeSetEventBoostPriority', 147: 'KeSetPriorityProcess', 148: 'KeSetPriorityThread', 149: 'KeSetTimer', 150: 'KeSetTimerEx', 151: 'KeStallExecutionProcessor', 152: 'KeSuspendThread', 153: 'KeSynchronizeExecution', 154: 'KeSystemTime', 155: 'KeTestAlertThread', 156: 'KeTickCount', 157: 'KeTimeIncrement', 158: 'KeWaitForMultipleObjects', 159: 'KeWaitForSingleObject', 160: 'KfRaiseIrql', 161: 'KfLowerIrql', 162: 'KiBugCheckData', 163: 'KiUnlockDispatcherDatabase', 164: 'LaunchDataPage', 165: 'MmAllocateContiguousMemory', 166: 'MmAllocateContiguousMemoryEx', 167: 'MmAllocateSystemMemory', 168: 'MmClaimGpuInstanceMemory', 169: 'MmCreateKernelStack', 170: 'MmDeleteKernelStack', 171: 'MmFreeContiguousMemory', 172: 'MmFreeSystemMemory', 173: 'MmGetPhysicalAddress', 174: 'MmIsAddressValid', 175: 'MmLockUnlockBufferPages', 176: 'MmLockUnlockPhysicalPage', 177: 'MmMapIoSpace', 178: 'MmPersistContiguousMemory', 179: 'MmQueryAddressProtect', 180: 'MmQueryAllocationSize', 181: 'MmQueryStatistics', 182: 'MmSetAddressProtect', 183: 'MmUnmapIoSpace', 184: 'NtAllocateVirtualMemory', 185: 'NtCancelTimer', 186: 'NtClearEvent', 187: 'NtClose', 188: 'NtCreateDirectoryObject', 189: 'NtCreateEvent', 190: 'NtCreateFile', 191: 'NtCreateIoCompletion', 192: 'NtCreateMutant', 193: 'NtCreateSemaphore', 194: 'NtCreateTimer', 195: 'NtDeleteFile', 196: 'NtDeviceIoControlFile', 197: 'NtDuplicateObject', 198: 'NtFlushBuffersFile', 199: 'NtFreeVirtualMemory', 200: 'NtFsControlFile', 201: 'NtOpenDirectoryObject', 202: 'NtOpenFile', 203: 'NtOpenSymbolicLinkObject', 204: 'NtProtectVirtualMemory', 205: 'NtPulseEvent', 206: 'NtQueueApcThread', 207: 'NtQueryDirectoryFile', 208: 'NtQueryDirectoryObject', 209: 'NtQueryEvent', 210: 'NtQueryFullAttributesFile', 211: 'NtQueryInformationFile', 212: 'NtQueryIoCompletion', 213: 'NtQueryMutant', 214: 'NtQuerySemaphore', 215: 'NtQuerySymbolicLinkObject', 216: 'NtQueryTimer', 217: 'NtQueryVirtualMemory', 218: 'NtQueryVolumeInformationFile', 219: 'NtReadFile', 220: 'NtReadFileScatter', 221: 'NtReleaseMutant', 222: 'NtReleaseSemaphore', 223: 'NtRemoveIoCompletion', 224: 'NtResumeThread', 225: 'NtSetEvent', 226: 'NtSetInformationFile', 227: 'NtSetIoCompletion', 228: 'NtSetSystemTime', 229: 'NtSetTimerEx', 230: 'NtSignalAndWaitForSingleObjectEx', 231: 'NtSuspendThread', 232: 'NtUserIoApcDispatcher', 233: 'NtWaitForSingleObject', 234: 'NtWaitForSingleObjectEx', 235: 'NtWaitForMultipleObjectsEx', 236: 'NtWriteFile', 237: 'NtWriteFileGather', 238: 'NtYieldExecution', 239: 'ObCreateObject', 240: 'ObDirectoryObjectType', 241: 'ObInsertObject', 242: 'ObMakeTemporaryObject', 243: 'ObOpenObjectByName', 244: 'ObOpenObjectByPointer', 245: 'ObpObjectHandleTable', 246: 'ObReferenceObjectByHandle', 247: 'ObReferenceObjectByName', 248: 'ObReferenceObjectByPointer', 249: 'ObSymbolicLinkObjectType', 250: 'ObfDereferenceObject', 251: 'ObfReferenceObject', 252: 'PhyGetLinkState', 253: 'PhyInitialize', 254: 'PsCreateSystemThread', 255: 'PsCreateSystemThreadEx', 256: 'PsQueryStatistics', 257: 'PsSetCreateThreadNotifyRoutine', 258: 'PsTerminateSystemThread', 259: 'PsThreadObjectType', 260: 'RtlAnsiStringToUnicodeString', 261: 'RtlAppendStringToString', 262: 'RtlAppendUnicodeStringToString', 263: 'RtlAppendUnicodeToString', 264: 'RtlAssert', 265: 'RtlCaptureContext', 266: 'RtlCaptureStackBackTrace', 267: 'RtlCharToInteger', 268: 'RtlCompareMemory', 269: 'RtlCompareMemoryUlong', 270: 'RtlCompareString', 271: 'RtlCompareUnicodeString', 272: 'RtlCopyString', 273: 'RtlCopyUnicodeString', 274: 'RtlCreateUnicodeString', 275: 'RtlDowncaseUnicodeChar', 276: 'RtlDowncaseUnicodeString', 277: 'RtlEnterCriticalSection', 278: 'RtlEnterCriticalSectionAndRegion', 279: 'RtlEqualString', 280: 'RtlEqualUnicodeString', 281: 'RtlExtendedIntegerMultiply', 282: 'RtlExtendedLargeIntegerDivide', 283: 'RtlExtendedMagicDivide', 284: 'RtlFillMemory', 285: 'RtlFillMemoryUlong', 286: 'RtlFreeAnsiString', 287: 'RtlFreeUnicodeString', 288: 'RtlGetCallersAddress', 289: 'RtlInitAnsiString', 290: 'RtlInitUnicodeString', 291: 'RtlInitializeCriticalSection', 292: 'RtlIntegerToChar', 293: 'RtlIntegerToUnicodeString', 294: 'RtlLeaveCriticalSection', 295: 'RtlLeaveCriticalSectionAndRegion', 296: 'RtlLowerChar', 297: 'RtlMapGenericMask', 298: 'RtlMoveMemory', 299: 'RtlMultiByteToUnicodeN', 300: 'RtlMultiByteToUnicodeSize', 301: 'RtlNtStatusToDosError', 302: 'RtlRaiseException', 303: 'RtlRaiseStatus', 304: 'RtlTimeFieldsToTime', 305: 'RtlTimeToTimeFields', 306: 'RtlTryEnterCriticalSection', 307: 'RtlUlongByteSwap', 308: 'RtlUnicodeStringToAnsiString', 309: 'RtlUnicodeStringToInteger', 310: 'RtlUnicodeToMultiByteN', 311: 'RtlUnicodeToMultiByteSize', 312: 'RtlUnwind', 313: 'RtlUpcaseUnicodeChar', 314: 'RtlUpcaseUnicodeString', 315: 'RtlUpcaseUnicodeToMultiByteN', 316: 'RtlUpperChar', 317: 'RtlUpperString', 318: 'RtlUshortByteSwap', 319: 'RtlWalkFrameChain', 320: 'RtlZeroMemory', 321: 'XboxEEPROMKey', 322: 'XboxHardwareInfo', 323: 'XboxHDKey', 324: 'XboxKrnlVersion', 325: 'XboxSignatureKey', 326: 'XeImageFileName', 327: 'XeLoadSection', 328: 'XeUnloadSection', 329: 'READ_PORT_BUFFER_UCHAR', 330: 'READ_PORT_BUFFER_USHORT', 331: 'READ_PORT_BUFFER_ULONG', 332: 'WRITE_PORT_BUFFER_UCHAR', 333: 'WRITE_PORT_BUFFER_USHORT', 334: 'WRITE_PORT_BUFFER_ULONG', 335: 'XcSHAInit', 336: 'XcSHAUpdate', 337: 'XcSHAFinal', 338: 'XcRC4Key', 339: 'XcRC4Crypt', 340: 'XcHMAC', 341: 'XcPKEncPublic', 342: 'XcPKDecPrivate', 343: 'XcPKGetKeyLen', 344: 'XcVerifyPKCS1Signature', 345: 'XcModExp', 346: 'XcDESKeyParity', 347: 'XcKeyTable', 348: 'XcBlockCrypt', 349: 'XcBlockCryptCBC', 350: 'XcCryptService', 351: 'XcUpdateCrypto', 352: 'RtlRip', 353: 'XboxLANKey', 354: 'XboxAlternateSignatureKeys', 355: 'XePublicKeyData', 356: 'HalBootSMCVideoMode', 357: 'IdexChannelObject', 358: 'HalIsResetOrShutdownPending', 359: 'IoMarkIrpMustComplete', 360: 'HalInitiateShutdown', 361: 'RtlSnprintf', 362: 'RtlSprintf', 363: 'RtlVsnprintf', 364: 'RtlVsprintf', 365: 'HalEnableSecureTrayEject', 366: 'HalWriteSMCScratchRegister', 374: 'MmDbgAllocateMemory', 375: 'MmDbgFreeMemory', 376: 'MmDbgQueryAvailablePages', 377: 'MmDbgReleaseAddress', 378: 'MmDbgWriteCheck'}#
class xbe.EnumMapperMixin[source]#

Bases: object

Mixin to convert integers into enumeration types.

class xbe.StructurePrintMixin[source]#

Bases: object

A simple mixin to __repr__ ctypes structures

dumps(indent=0)[source]#

Pretty-print all fields and values of the structure, return a string

Return type:

str

Parameters:

indent (int) –

class xbe.XbeImageHeader[source]#

Bases: EnumMapperMixin, Structure, StructurePrintMixin

XBE Image Header structure

class InitFlags(value)[source]#

Bases: IntFlag

XBE init flags

MOUNT_UTILITY_DRIVE = 1#
FORMAT_UTILITY_DRIVE = 2#
LIMIT64MB = 4#
DONT_SETUP_HARD_DISK = 8#
base_addr#

Structure/Union member

certificate_addr#

Structure/Union member

debug_filename_addr#

Structure/Union member

debug_pathname_addr#

Structure/Union member

debug_unicode_filename_addr#

Structure/Union member

dumps(indent=0)#

Pretty-print all fields and values of the structure, return a string

Return type:

str

Parameters:

indent (int) –

entry_addr#

Structure/Union member

headers_size#

Structure/Union member

image_header_size#

Structure/Union member

image_size#

Structure/Union member

import_dir_addr#

Structure/Union member

init_flags#

Structure/Union member

kern_lib_version_addr#

Structure/Union member

kern_thunk_addr#

Structure/Union member

lib_versions_addr#

Structure/Union member

lib_versions_count#

Structure/Union member

logo_addr#

Structure/Union member

logo_size#

Structure/Union member

magic#

Structure/Union member

pe_base_addr#

Structure/Union member

pe_checksum#

Structure/Union member

pe_heap_commit#

Structure/Union member

pe_heap_reserve#

Structure/Union member

pe_image_size#

Structure/Union member

pe_stack_commit#

Structure/Union member

pe_timestamp#

Structure/Union member

section_count#

Structure/Union member

section_headers_addr#

Structure/Union member

signature#

Structure/Union member

timestamp#

Structure/Union member

tls_addr#

Structure/Union member

xapi_lib_version_addr#

Structure/Union member

class xbe.XbeImageHeaderExtendedType1[source]#

Bases: XbeImageHeader

XBE Extended Image Header structure (Type 1)

class InitFlags(value)#

Bases: IntFlag

XBE init flags

MOUNT_UTILITY_DRIVE = 1#
FORMAT_UTILITY_DRIVE = 2#
LIMIT64MB = 4#
DONT_SETUP_HARD_DISK = 8#
base_addr#

Structure/Union member

certificate_addr#

Structure/Union member

debug_filename_addr#

Structure/Union member

debug_pathname_addr#

Structure/Union member

debug_unicode_filename_addr#

Structure/Union member

dumps(indent=0)#

Pretty-print all fields and values of the structure, return a string

Return type:

str

Parameters:

indent (int) –

entry_addr#

Structure/Union member

headers_size#

Structure/Union member

image_header_size#

Structure/Union member

image_size#

Structure/Union member

import_dir_addr#

Structure/Union member

init_flags#

Structure/Union member

kern_lib_version_addr#

Structure/Union member

kern_thunk_addr#

Structure/Union member

lib_features_addr#

Structure/Union member

lib_features_count#

Structure/Union member

lib_versions_addr#

Structure/Union member

lib_versions_count#

Structure/Union member

logo_addr#

Structure/Union member

logo_size#

Structure/Union member

magic#

Structure/Union member

pe_base_addr#

Structure/Union member

pe_checksum#

Structure/Union member

pe_heap_commit#

Structure/Union member

pe_heap_reserve#

Structure/Union member

pe_image_size#

Structure/Union member

pe_stack_commit#

Structure/Union member

pe_timestamp#

Structure/Union member

section_count#

Structure/Union member

section_headers_addr#

Structure/Union member

signature#

Structure/Union member

timestamp#

Structure/Union member

tls_addr#

Structure/Union member

xapi_lib_version_addr#

Structure/Union member

class xbe.XbeImageHeaderExtendedType2[source]#

Bases: XbeImageHeaderExtendedType1

XBE Extended Image Header structure (Type 2)

class InitFlags(value)#

Bases: IntFlag

XBE init flags

MOUNT_UTILITY_DRIVE = 1#
FORMAT_UTILITY_DRIVE = 2#
LIMIT64MB = 4#
DONT_SETUP_HARD_DISK = 8#
base_addr#

Structure/Union member

certificate_addr#

Structure/Union member

debug_filename_addr#

Structure/Union member

debug_info#

Structure/Union member

debug_pathname_addr#

Structure/Union member

debug_unicode_filename_addr#

Structure/Union member

dumps(indent=0)#

Pretty-print all fields and values of the structure, return a string

Return type:

str

Parameters:

indent (int) –

entry_addr#

Structure/Union member

headers_size#

Structure/Union member

image_header_size#

Structure/Union member

image_size#

Structure/Union member

import_dir_addr#

Structure/Union member

init_flags#

Structure/Union member

kern_lib_version_addr#

Structure/Union member

kern_thunk_addr#

Structure/Union member

lib_features_addr#

Structure/Union member

lib_features_count#

Structure/Union member

lib_versions_addr#

Structure/Union member

lib_versions_count#

Structure/Union member

logo_addr#

Structure/Union member

logo_size#

Structure/Union member

magic#

Structure/Union member

pe_base_addr#

Structure/Union member

pe_checksum#

Structure/Union member

pe_heap_commit#

Structure/Union member

pe_heap_reserve#

Structure/Union member

pe_image_size#

Structure/Union member

pe_stack_commit#

Structure/Union member

pe_timestamp#

Structure/Union member

section_count#

Structure/Union member

section_headers_addr#

Structure/Union member

signature#

Structure/Union member

timestamp#

Structure/Union member

tls_addr#

Structure/Union member

xapi_lib_version_addr#

Structure/Union member

class xbe.XbeImageCertificate[source]#

Bases: EnumMapperMixin, Structure, StructurePrintMixin

XBE Image Certificate structure

class AllowedMediaTypes(value)[source]#

Bases: IntFlag

Allowed media type flags

HARD_DISK = 1#
DVD_X2 = 2#
DVD_CD = 4#
CD = 8#
DVD_5_RO = 16#
DVD_9_RO = 32#
DVD_5_RW = 64#
DVD_9_RW = 128#
DONGLE = 256#
MEDIA_BOARD = 512#
NONSECURE_HARD_DISK = 1073741824#
NONSECURE_MODE = 2147483648#
class GameRegions(value)[source]#

Bases: IntFlag

Allowed game region flags

NA = 1#
JAPAN = 2#
RESTOFWORLD = 4#
MANUFACTURING = 2147483648#
allowed_media#

Structure/Union member

alt_signature_keys#

Structure/Union member

disc_num#

Structure/Union member

dumps(indent=0)#

Pretty-print all fields and values of the structure, return a string

Return type:

str

Parameters:

indent (int) –

game_region#

Structure/Union member

lan_key#

Structure/Union member

ratings#

Structure/Union member

signature_key#

Structure/Union member

size#

Structure/Union member

timestamp#

Structure/Union member

title_alt_ids#

Structure/Union member

title_id#

Structure/Union member

title_name#

Structure/Union member

version#

Structure/Union member

class xbe.XbeImageCertificateExtended[source]#

Bases: XbeImageCertificate

XBE Extended Image Certificate structure

class AllowedMediaTypes(value)#

Bases: IntFlag

Allowed media type flags

HARD_DISK = 1#
DVD_X2 = 2#
DVD_CD = 4#
CD = 8#
DVD_5_RO = 16#
DVD_9_RO = 32#
DVD_5_RW = 64#
DVD_9_RW = 128#
DONGLE = 256#
MEDIA_BOARD = 512#
NONSECURE_HARD_DISK = 1073741824#
NONSECURE_MODE = 2147483648#
class GameRegions(value)#

Bases: IntFlag

Allowed game region flags

NA = 1#
JAPAN = 2#
RESTOFWORLD = 4#
MANUFACTURING = 2147483648#
allowed_media#

Structure/Union member

alt_signature_keys#

Structure/Union member

code_enc_key#

Structure/Union member

disc_num#

Structure/Union member

dumps(indent=0)#

Pretty-print all fields and values of the structure, return a string

Return type:

str

Parameters:

indent (int) –

game_region#

Structure/Union member

lan_key#

Structure/Union member

online_service_id#

Structure/Union member

original_certificate_size#

Structure/Union member

ratings#

Structure/Union member

security_flags#

Structure/Union member

signature_key#

Structure/Union member

size#

Structure/Union member

timestamp#

Structure/Union member

title_alt_ids#

Structure/Union member

title_id#

Structure/Union member

title_name#

Structure/Union member

version#

Structure/Union member

class xbe.XbeSectionHeader[source]#

Bases: EnumMapperMixin, Structure, StructurePrintMixin

XBE Section Header structure

class Flags(value)[source]#

Bases: IntFlag

XBE section flags

WRITABLE = 1#
PRELOAD = 2#
EXECUTABLE = 4#
INSERTED_FILE = 8#
HEAD_PAGE_READ_ONLY = 16#
TAIL_PAGE_READ_ONLY = 32#
digest#

Structure/Union member

dumps(indent=0)#

Pretty-print all fields and values of the structure, return a string

Return type:

str

Parameters:

indent (int) –

flags#

Structure/Union member

head_shared_page_ref_count_addr#

Structure/Union member

raw_addr#

Structure/Union member

raw_size#

Structure/Union member

section_name_addr#

Structure/Union member

section_name_ref_count#

Structure/Union member

tail_shared_page_ref_count_addr#

Structure/Union member

virtual_addr#

Structure/Union member

virtual_size#

Structure/Union member

class xbe.XbeLibraryVersion[source]#

Bases: Structure, StructurePrintMixin

XBE Library Version structure

approved#

Structure/Union member

debug_build#

Structure/Union member

dumps(indent=0)#

Pretty-print all fields and values of the structure, return a string

Return type:

str

Parameters:

indent (int) –

name#

Structure/Union member

qfeversion#

Structure/Union member

ver_build#

Structure/Union member

ver_major#

Structure/Union member

ver_minor#

Structure/Union member

class xbe.XbeLibraryFeatureDescriptor[source]#

Bases: Structure, StructurePrintMixin

XBE Library Feature structure

dumps(indent=0)#

Pretty-print all fields and values of the structure, return a string

Return type:

str

Parameters:

indent (int) –

flags#

Structure/Union member

name#

Structure/Union member

ver_build#

Structure/Union member

ver_major#

Structure/Union member

ver_minor#

Structure/Union member

class xbe.XbeTlsHeader[source]#

Bases: Structure, StructurePrintMixin

XBE TLS Header Structure

characteristics#

Structure/Union member

data_end_addr#

Structure/Union member

data_start_addr#

Structure/Union member

dumps(indent=0)#

Pretty-print all fields and values of the structure, return a string

Return type:

str

Parameters:

indent (int) –

tls_callback_addr#

Structure/Union member

tls_index_addr#

Structure/Union member

zero_fill_size#

Structure/Union member

class xbe.XbeImportDescriptor[source]#

Bases: Structure, StructurePrintMixin

XBE Import Descriptor structure

dumps(indent=0)#

Pretty-print all fields and values of the structure, return a string

Return type:

str

Parameters:

indent (int) –

image_name_addr#

Structure/Union member

thunk_array_addr#

Structure/Union member

class xbe.Xbe(data=None)[source]#

Bases: object

Parses and creates original Xbox Executables

Parameters:

data (bytes | None) –

ENTRY_DEBUG = 2491784523#
ENTRY_RETAIL = 2835109803#
KTHUNK_DEBUG = 4021416274#
KTHUNK_RETAIL = 1533886646#
static get_cstring_from_offset(data, offset)[source]#

Read null-terminated string from offset in data

Return type:

bytes

Parameters:
  • data (bytes) –

  • offset (int) –

static get_wcstring_from_offset(data, offset)[source]#

Read null-terminated string from offset in data

Return type:

str

Parameters:
  • data (bytes) –

  • offset (int) –

vaddr_to_file_offset(addr)[source]#

Get XBE file offset from virtual address

Return type:

int

Parameters:

addr (int) –

pack()[source]#

Pack an XBE bottom-up

Return type:

bytes

classmethod from_file(path)[source]#

Create Xbe object from file path

Return type:

Xbe

Parameters:

path (str) –

class xbe.XbeSection(name, header, data)[source]#

Bases: object

XBE Section

Parameters:
class xbe.XbeLibrary(header)[source]#

Bases: object

XBE Library

Parameters:

header (XbeLibraryVersion) –

class xbe.XbeLibraryFeature(header)[source]#

Bases: object

XBE Library Feature

Parameters:

header (XbeLibraryFeatureDescriptor) –

class xbe.XprImageHeader[source]#

Bases: Structure, StructurePrintMixin

XPR Image Header structure

common#

Structure/Union member

data#

Structure/Union member

dumps(indent=0)#

Pretty-print all fields and values of the structure, return a string

Return type:

str

Parameters:

indent (int) –

eoh#

Structure/Union member

format#

Structure/Union member

header_size#

Structure/Union member

lock#

Structure/Union member

magic#

Structure/Union member

size#

Structure/Union member

total_size#

Structure/Union member

xbe.mix(x, y, a)[source]#

Linearly interpolate between x and y, returning x*(1-a) + y*a for all elements

Return type:

Tuple[float, float, float, float]

Parameters:
  • x (Tuple[float, float, float, float]) –

  • y (Tuple[float, float, float, float]) –

  • a (float) –

xbe.get_bits(value, hi, lo)[source]#

Extract a bitrange from an integer

Return type:

int

Parameters:
  • value (int) –

  • hi (int) –

  • lo (int) –

xbe.unpack_r5g6b5(value)[source]#

Unpack a 16-bit (565) RGB as a real-value color tuple in the range of [0,1]

Return type:

Tuple[float, float, float, float]

Parameters:

value (int) –

xbe.decode_bc1(w, h, data)[source]#

Decode a BC1 (aka DXT1) compressed image to a list of pixel real-value color tuples

More information about BC1 can be found at: https://docs.microsoft.com/en-us/windows/win32/direct3d10/d3d10-graphics-programming-guide-resources-block-compression#bc1

Return type:

List[Tuple[float, float, float, float]]

Parameters:
  • w (int) –

  • h (int) –

  • data (bytes) –

xbe.decode_xpr_image(data)[source]#

Decode an XPR (Xbox Packed Resource) image

Return type:

Tuple[int, int, List[Tuple[float, float, float, float]]]

Parameters:

data (bytes) –

Encode pixel data into the RLE-compressed logo format

Return type:

bytes

Parameters:

pixels (Sequence[Tuple[float, float, float, float]]) –

Decode an XBE logo (RLE-compressed)

Return type:

Tuple[int, int, List[Tuple[float, float, float, float]]]

Parameters:

data (bytes) –

xbe.encode_bmp(w, h, pixels)[source]#

Encode a standard Windows BMP Image File

https://en.wikipedia.org/wiki/BMP_file_format

Return type:

bytes

Parameters:
  • w (int) –

  • h (int) –

  • pixels (List[Tuple[float, float, float, float]]) –