1 /* radare - LGPL - Copyright 2008-2013 nibble, xvilka */ 2 3 #undef TE_ 4 #undef TE_Word 5 #undef TE_DWord 6 #undef TE_VWord 7 8 #define TE_Word ut16 9 #define TE_DWord ut64 10 #define TE_VWord ut32 11 12 #ifndef _INCLUDE_R_BIN_TE_SPECS_H_ 13 #define _INCLUDE_R_BIN_TE_SPECS_H_ 14 15 #define TE_NAME_LENGTH 256 16 #define TE_STRING_LENGTH 256 17 18 #define TE_IMAGE_FILE_MACHINE_UNKNOWN 0x0000 19 #define TE_IMAGE_FILE_MACHINE_ALPHA 0x0184 20 #define TE_IMAGE_FILE_MACHINE_ALPHA64 0x0284 21 #define TE_IMAGE_FILE_MACHINE_AM33 0x01d3 22 #define TE_IMAGE_FILE_MACHINE_AMD64 0x8664 23 #define TE_IMAGE_FILE_MACHINE_ARM 0x01c0 24 #define TE_IMAGE_FILE_MACHINE_AXP64 TE_IMAGE_FILE_MACHINE_ALPHA64 25 #define TE_IMAGE_FILE_MACHINE_CEE 0xc0ee 26 #define TE_IMAGE_FILE_MACHINE_CEF 0x0cef 27 #define TE_IMAGE_FILE_MACHINE_EBC 0x0ebc 28 #define TE_IMAGE_FILE_MACHINE_I386 0x014c 29 #define TE_IMAGE_FILE_MACHINE_IA64 0x0200 30 #define TE_IMAGE_FILE_MACHINE_M32R 0x9041 31 #define TE_IMAGE_FILE_MACHINE_M68K 0x0268 32 #define TE_IMAGE_FILE_MACHINE_MIPS16 0x0266 33 #define TE_IMAGE_FILE_MACHINE_MIPSFPU 0x0366 34 #define TE_IMAGE_FILE_MACHINE_MIPSFPU16 0x0466 35 #define TE_IMAGE_FILE_MACHINE_POWERPC 0x01f0 36 #define TE_IMAGE_FILE_MACHINE_POWERPCFP 0x01f1 37 #define TE_IMAGE_FILE_MACHINE_R10000 0x0168 38 #define TE_IMAGE_FILE_MACHINE_R3000 0x0162 39 #define TE_IMAGE_FILE_MACHINE_R4000 0x0166 40 #define TE_IMAGE_FILE_MACHINE_SH3 0x01a2 41 #define TE_IMAGE_FILE_MACHINE_SH3DSP 0x01a3 42 #define TE_IMAGE_FILE_MACHINE_SH3E 0x01a4 43 #define TE_IMAGE_FILE_MACHINE_SH4 0x01a6 44 #define TE_IMAGE_FILE_MACHINE_SH5 0x01a8 45 #define TE_IMAGE_FILE_MACHINE_THUMB 0x01c2 46 #define TE_IMAGE_FILE_MACHINE_TRICORE 0x0520 47 #define TE_IMAGE_FILE_MACHINE_WCEMIPSV2 0x0169 48 49 #define TE_IMAGE_DIRECTORY_ENTRIES 2 50 51 #define TE_IMAGE_DIRECTORY_ENTRY_BASERELOC 0 52 #define TE_IMAGE_DIRECTORY_ENTRY_DEBUG 1 53 54 #define TE_IMAGE_SUBSYSTEM_UNKNOWN 0 55 #define TE_IMAGE_SUBSYSTEM_NATIVE 1 56 #define TE_IMAGE_SUBSYSTEM_WINDOWS_GUI 2 57 #define TE_IMAGE_SUBSYSTEM_WINDOWS_CUI 3 58 #define TE_IMAGE_SUBSYSTEM_POSIX_CUI 7 59 #define TE_IMAGE_SUBSYSTEM_WINDOWS_CE_GUI 9 60 #define TE_IMAGE_SUBSYSTEM_EFI_APPLICATION 10 61 #define TE_IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER 11 62 #define TE_IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER 12 63 #define TE_IMAGE_SUBSYSTEM_EFI_ROM 13 64 #define TE_IMAGE_SUBSYSTEM_XBOX 14 65 66 67 typedef struct { 68 ut32 VirtualAddress; 69 ut32 Size; 70 } efi_image_data_directory; 71 72 typedef struct { 73 ut16 Signature; 74 ut16 Machine; 75 ut8 NumberOfSections; 76 ut8 Subsystem; 77 ut16 StrippedSize; 78 ut32 AddressOfEntryPoint; 79 ut32 BaseOfCode; 80 ut64 ImageBase; 81 efi_image_data_directory DataDirectory[2]; 82 } TE_image_file_header; 83 84 #define TE_IMAGE_SIZEOF_NAME 8 85 86 #define TE_IMAGE_SCN_MEM_SHARED 0x10000000 87 #define TE_IMAGE_SCN_MEM_EXECUTE 0x20000000 88 #define TE_IMAGE_SCN_MEM_READ 0x40000000 89 #define TE_IMAGE_SCN_MEM_WRITE 0x80000000 90 91 typedef struct { 92 ut8 Name[TE_IMAGE_SIZEOF_NAME]; 93 ut32 VirtualSize; 94 ut32 VirtualAddress; 95 ut32 SizeOfRawData; 96 ut32 PointerToRawData; 97 ut32 PointerToRelocations; 98 ut32 PointerToLineNumbers; 99 ut16 NumberOfRelocations; 100 ut16 NumberOfLinenumbers; 101 ut32 Characteristics; 102 } TE_image_section_header; 103 104 #endif 105