30#ifndef __PE_FORMAT_H__
31#define __PE_FORMAT_H__
94#define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 16
176#define IMAGE_SCN_CNT_CODE 0x00000020
177#define IMAGE_SCN_CNT_INITIALIZED_DATA 0x00000040
178#define IMAGE_SCN_CNT_UNINITIALIZED_DATA 0x00000080
179#define IMAGE_SCN_MEM_DISCARDABLE 0x02000000
180#define IMAGE_SCN_MEM_NOT_CACHED 0x04000000
181#define IMAGE_SCN_MEM_NOT_PAGED 0x08000000
182#define IMAGE_SCN_MEM_SHARED 0x10000000
183#define IMAGE_SCN_MEM_EXECUTE 0x20000000
184#define IMAGE_SCN_MEM_READ 0x40000000
185#define IMAGE_SCN_MEM_WRITE 0x80000000
200#define IMAGE_DATA_DIRECTORY_EXPORT 0
201#define IMAGE_DATA_DIRECTORY_IMPORT 1
202#define IMAGE_DATA_DIRECTORY_RELOC 5
275#define IMAGE_IMPORT_LOOKUP_TABLE_FLAG_PE32 0x80000000
278#define IMAGE_IMPORT_LOOKUP_TABLE_FLAG_PE32P 0x8000000000000000
288#define IMAGE_IMPORT_LOOKUP_TABLE_FLAG IMAGE_IMPORT_LOOKUP_TABLE_FLAG_PE32
PeMachineType
Definition pe.h:63
PeOptionalMagic
Definition pe.h:83
struct _IMAGE_NT_HEADERS_PE32PLUS_ IMAGE_NT_HEADERS_PE32PLYS
Definition pe.h:61
unsigned long long IMAGE_IMPORT_LOOKUP_TABLE_PE32P
Definition pe.h:252
struct _IMAGE_NT_HEADERS_PE32_ IMAGE_NT_HEADERS_PE32
Definition pe.h:60
uint32_t IMAGE_IMPORT_LOOKUP_TABLE_PE32
Definition pe.h:249
unsigned int uint32_t
Definition acefiex.h:163
unsigned char uint8_t
Definition acefiex.h:161
COMPILER_DEPENDENT_UINT64 uint64_t
Definition acefiex.h:165
unsigned short int uint16_t
Definition acefiex.h:162
struct _IMAGE_RELOCATION_ENTRY_ IMAGE_RELOCATION_ENTRY
void XELdrRelocatePE(void *image, PIMAGE_NT_HEADERS nt, uint64_t diff)
Definition pe_.cpp:79
struct _IMAGE_FILE_HEADER_ * PIMAGE_FILE_HEADER
@ IMAGE_FILE_MACHINE_THUMB
Definition pe_.h:69
@ IMAGE_FILE_MACHINE_ARM
Definition pe_.h:66
@ IMAGE_FILE_MACHINE_EBC
Definition pe_.h:67
@ IMAGE_FILE_MACHINE_AMD64
Definition pe_.h:65
@ IMAGE_FILE_MACHINE_I386
Definition pe_.h:68
@ IMAGE_FILE_MACHINE_ARM64
Definition pe_.h:70
@ IMAGE_FILE_MACHINE_ARMNT
Definition pe_.h:71
struct _IMAGE_IMPORT_HINT_TABLE * PIMAGE_IMPORT_HINT_TABLE
struct _IMAGE_RESOURCE_DIRECTORY_ IMAGE_RESOURCE_DIRECTORY
struct _IMAGE_RESOURCE_DIRECTORY_ENTRY_ IMAGE_RESOURCE_DIRECTORY_ENTRY
struct _IMAGE_RESOURCE_DIRECTORY_ENTRY_ * PIMAGE_RESOURCE_DIRECTORY_ENTRY
unsigned long long * PIMAGE_IMPORT_LOOKUP_TABLE_PE32P
Definition pe_.h:279
struct _IMAGE_DOS_HEADER_ IMAGE_DOS_HEADER
struct _IMAGE_OPTIONAL_HEADER_PE32PLUS IMAGE_OPTIONAL_HEADER_PE32PLUS
struct _IMAGE_IMPORT_DIRECTORY * PIMAGE_IMPORT_DIRECTORY
struct _IMAGE_RELOCATION_BLOCK_ * PIMAGE_RELOCATION_BLOCK
void XELdrLinkPE(void *exec)
Definition pe_.cpp:169
#define IMAGE_NUMBEROF_DIRECTORY_ENTRIES
Definition pe_.h:94
IMAGE_IMPORT_LOOKUP_TABLE_PE32 * PIMAGE_IMPORT_LOOKUP_TABLE
Definition pe_.h:284
struct _IMAGE_DATA_DIRECTORY_ IMAGE_DATA_DIRECTORY
struct _IMAGE_OPTIONAL_HEADER_PE32PLUS * PIMAGE_OPTIONAL_HEADER_PE32PLUS
uint32_t * PIMAGE_IMPORT_LOOKUP_TABLE_PE32
Definition pe_.h:276
struct _IMAGE_NT_HEADERS_PE32PLUS * PIMAGE_NT_HEADERS
Definition pe_.h:283
struct _IMAGE_NT_HEADERS_PE32_ * PIMAGE_NT_HEADERS_PE32
Definition pe_.h:61
struct _IMAGE_OPTIONAL_HEADER_PE32_ * PIMAGE_OPTIONAL_HEADER_PE32
struct _IMAGE_SECTION_HEADER SECTION_HEADER
struct _IMAGE_EXPORT_DIRECTORY * PIMAGE_EXPORT_DIRECTORY
void XELdrLoadResourceDirectory(void *image)
Definition pe_.cpp:287
struct _IMAGE_RELOCATION_BLOCK_ IMAGE_RELOCATION_BLOCK
struct _IMAGE_SECTION_HEADER * PSECTION_HEADER
struct _IMAGE_OPTIONAL_HEADER_PE32_ IMAGE_OPTIONAL_HEADER_PE32
@ MAGIC_PE32P
Definition pe_.h:86
@ MAGIC_PE32
Definition pe_.h:85
struct _IMAGE_IMPORT_DIRECTORY IMAGE_IMPORT_DIRECTORY
void XELdrLinkDependencyPE(XELoaderObject *obj)
Definition pe_.cpp:249
struct _IMAGE_DOS_HEADER_ * PIMAGE_DOS_HEADER
void XELdrCreatePEObjects(void *exec)
Definition pe_.cpp:204
struct _IMAGE_EXPORT_DIRECTORY IMAGE_EXPORT_DIRECTORY
IMAGE_IMPORT_LOOKUP_TABLE_PE32 IMAGE_IMPORT_LOOKUP_TABLE
Definition pe_.h:284
struct _IMAGE_RELOCATION_ENTRY_ * PIMAGE_RELOCATION_ENTRY
struct _IMAGE_NT_HEADERS_PE32PLUS_ * PIMAGE_NT_HEADERS_PE32PLUS
Definition pe_.h:62
struct _IMAGE_RESOURCE_DIRECTORY_ * PIMAGE_RESOURCE_DIRECTORY
unsigned long long IMAGE_IMPORT_LOOKUP_TABLE_PE32P
Definition pe_.h:279
struct _IMAGE_IMPORT_HINT_TABLE IMAGE_IMPORT_HINT_TABLE
struct _IMAGE_DATA_DIRECTORY_ * PIMAGE_DATA_DIRECTORY
struct _IMAGE_FILE_HEADER_ IMAGE_FILE_HEADER
uint32_t IMAGE_IMPORT_LOOKUP_TABLE_PE32
Definition pe_.h:276
uint32_t VirtualAddress
Definition pe.h:89
uint32_t Size
Definition pe.h:90
uint32_t TimeDateStamp
Definition pe.h:208
uint32_t AddressOfNames
Definition pe.h:216
uint32_t NumberOfFunctions
Definition pe.h:213
uint32_t Base
Definition pe.h:212
uint32_t NumberOfNames
Definition pe.h:214
uint16_t MajorVersion
Definition pe.h:209
uint32_t Characteristics
Definition pe.h:207
uint32_t AddressOfFunctions
Definition pe.h:215
uint32_t AddressOfNameOrdinal
Definition pe.h:217
uint16_t MinorVersion
Definition pe.h:210
uint32_t Name
Definition pe.h:211
uint32_t Characteristics
Definition pe.h:222
uint32_t OriginalFirstThunk
Definition pe.h:223
uint32_t ThunkTableRva
Definition pe.h:228
uint32_t ForwarderChain
Definition pe.h:226
uint32_t TimeDateStamp
Definition pe.h:225
uint32_t NameRva
Definition pe.h:227
char name[2]
Definition pe.h:244
uint16_t Hint
Definition pe.h:243
IMAGE_RELOCATION_ENTRY entries[0]
Definition pe.h:239
uint32_t BlockSize
Definition pe.h:238
uint32_t PageRVA
Definition pe.h:237
uint16_t offset
Definition pe.h:232
uint16_t type
Definition pe.h:233
uint16_t Id
Definition pe_.h:237
uint32_t DataIsDirectory
Definition pe_.h:243
uint32_t OffsetToData
Definition pe_.h:240
uint32_t Name
Definition pe_.h:236
uint32_t NameIsString
Definition pe_.h:234
uint32_t NameOffset
Definition pe_.h:233
uint32_t OffsetToDirectory
Definition pe_.h:242
uint16_t MajorVersion
Definition pe_.h:251
IMAGE_RESOURCE_DIRECTORY_ENTRY DirectoryEntries[1]
Definition pe_.h:255
uint16_t NumberOfIdEntries
Definition pe_.h:254
uint16_t NumberOfNamedEntries
Definition pe_.h:253
uint32_t Characteristics
Definition pe_.h:249
uint32_t TimeDateStamp
Definition pe_.h:250
uint16_t MinorVersion
Definition pe_.h:252
Definition XELdrObject.h:36