XenevaOS
Loading...
Searching...
No Matches
pe.h
Go to the documentation of this file.
56
57typedef struct _IMAGE_FILE_HEADER_ {
66
68 MAGIC_PE32 = 0x10b,
69 MAGIC_PE32P = 0x20b
70};
71
72typedef struct _IMAGE_DATA_DIRECTORY_ {
76
77#define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 16
78
79typedef struct _IMAGE_OPTIONAL_HEADER_PE32_ {
112
113typedef struct _IMAGE_OPTIONAL_HEADER_PE32PLUS {
114
115 uint16_t Magic; // not-so-magical number
116 uint8_t MajorLinkerVersion; // linker version
118 uint32_t SizeOfCode; // size of .text in bytes
119 uint32_t SizeOfInitializedData; // size of .bss (and others) in bytes
120 uint32_t SizeOfUninitializedData; // size of .data,.sdata etc in bytes
121 uint32_t AddressOfEntryPoint; // RVA of entry point
122 uint32_t BaseOfCode; // base of .text
123 uint64_t ImageBase; // image base VA
124 uint32_t SectionAlignment; // file section alignment
125 uint32_t FileAlignment; // file alignment
126 uint16_t MajorOperatingSystemVersion; // Windows specific. OS version required to run image
128 uint16_t MajorImageVersion; // version of program
130 uint16_t MajorSubsystemVersion; // Windows specific. Version of SubSystem
133 uint32_t SizeOfImage; // size of image in bytes
134 uint32_t SizeOfHeaders; // size of headers (and stub program) in bytes
135 uint32_t CheckSum; // checksum
136 uint16_t Subsystem; // Windows specific. subsystem type
137 uint16_t DllCharacteristics; // DLL properties
138 uint64_t SizeOfStackReserve; // size of stack, in bytes
139 uint64_t SizeOfStackCommit; // size of stack to commit
140 uint64_t SizeOfHeapReserve; // size of heap, in bytes
141 uint64_t SizeOfHeapCommit; // size of heap to commit
142 uint32_t LoaderFlags; // no longer used
143 uint32_t NumberOfRvaAndSizes; // number of DataDirectory entries
146
147typedef struct _IMAGE_NT_HEADERS_PE32PLUS {
152
153#define IMAGE_SCN_CNT_CODE 0x00000020
154#define IMAGE_SCN_CNT_INITIALIZED_DATA 0x00000040
155#define IMAGE_SCN_CNT_UNINITIALIZED_DATA 0x00000080
156#define IMAGE_SCN_MEM_DISCARDABLE 0x02000000
157#define IMAGE_SCN_MEM_NOT_CACHED 0x04000000
158#define IMAGE_SCN_MEM_NOT_PAGED 0x08000000
159#define IMAGE_SCN_MEM_SHARED 0x10000000
160#define IMAGE_SCN_MEM_EXECUTE 0x20000000
161#define IMAGE_SCN_MEM_READ 0x40000000
162#define IMAGE_SCN_MEM_WRITE 0x80000000
163
164typedef struct _IMAGE_SECTION_HEADER {
165 char Name[8];
175}__attribute__((packed)) IMAGE_SECTION_HEADER, * PSECTION_HEADER;
176
177#endif
struct _IMAGE_FILE_HEADER_ * PIMAGE_FILE_HEADER
struct _IMAGE_DOS_HEADER_ IMAGE_DOS_HEADER
struct _IMAGE_OPTIONAL_HEADER_PE32PLUS IMAGE_OPTIONAL_HEADER_PE32PLUS
struct _IMAGE_DATA_DIRECTORY_ IMAGE_DATA_DIRECTORY
struct _IMAGE_OPTIONAL_HEADER_PE32PLUS * PIMAGE_OPTIONAL_HEADER_PE32PLUS
struct _IMAGE_OPTIONAL_HEADER_PE32_ * PIMAGE_OPTIONAL_HEADER_PE32
struct _IMAGE_NT_HEADERS_PE32PLUS IMAGE_NT_HEADERS
Definition pe.h:256
struct _IMAGE_SECTION_HEADER * PSECTION_HEADER
struct _IMAGE_OPTIONAL_HEADER_PE32_ IMAGE_OPTIONAL_HEADER_PE32
PeOptionalMagic
Definition pe.h:83
@ MAGIC_PE32P
Definition pe.h:85
@ MAGIC_PE32
Definition pe.h:84
struct _IMAGE_DATA_DIRECTORY_ * PIMAGE_DATA_DIRECTORY
struct _IMAGE_FILE_HEADER_ IMAGE_FILE_HEADER
enum PeOptionalMagic __attribute__
Definition ramdisk.c:121
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
#define IMAGE_NUMBEROF_DIRECTORY_ENTRIES
Definition pe_.h:94
Definition pe.h:88
uint32_t VirtualAddress
Definition pe.h:89
uint32_t Size
Definition pe.h:90
Definition pe.h:38
uint16_t e_sp
Definition pe.h:47
uint16_t e_cparhdr
Definition pe.h:43
uint16_t e_cs
Definition pe.h:50
uint16_t e_res[4]
Definition pe.h:53
uint16_t e_ovno
Definition pe.h:52
uint16_t e_ss
Definition pe.h:46
uint16_t e_oeminfo
Definition pe.h:55
uint16_t e_lfarlc
Definition pe.h:51
uint16_t e_cp
Definition pe.h:41
uint16_t e_minalloc
Definition pe.h:44
uint16_t e_crlc
Definition pe.h:42
uint16_t e_ip
Definition pe.h:49
uint16_t e_csum
Definition pe.h:48
uint16_t e_res2[10]
Definition pe.h:56
uint16_t e_lfanew
Definition pe.h:57
uint16_t e_oemid
Definition pe.h:54
uint16_t e_magic
Definition pe.h:39
uint16_t e_cblp
Definition pe.h:40
uint16_t e_maxalloc
Definition pe.h:45
Definition pe.h:73
uint16_t Machine
Definition pe.h:74
uint32_t NumberOfSymbols
Definition pe.h:78
uint16_t Characteristics
Definition pe.h:80
uint32_t PointerToSymbolTable
Definition pe.h:77
uint16_t NumberOfSections
Definition pe.h:75
uint16_t SizeOfOptionaHeader
Definition pe.h:79
uint32_t TimeDateStamp
Definition pe.h:76
Definition pe.h:169
IMAGE_OPTIONAL_HEADER_PE32PLUS OptionalHeader
Definition pe.h:172
uint32_t Signature
Definition pe.h:170
IMAGE_FILE_HEADER FileHeader
Definition pe.h:171
uint16_t MinorOperatingSystemVersion
Definition pe.h:143
uint32_t SectionAlignment
Definition pe.h:140
uint64_t SizeOfStackReserve
Definition pe.h:154
uint16_t DllCharacteristics
Definition pe.h:153
uint16_t MajorSubsystemVersion
Definition pe.h:146
uint32_t SizeOfInitializedData
Definition pe.h:135
IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]
Definition pe.h:160
uint32_t SizeOfImage
Definition pe.h:149
uint32_t FileAlignment
Definition pe.h:141
uint16_t Subsystem
Definition pe.h:152
uint32_t Reserved1
Definition pe.h:148
uint32_t SizeOfUninitializedData
Definition pe.h:136
uint16_t MajorImageVersion
Definition pe.h:144
uint32_t NumberOfRvaAndSizes
Definition pe.h:159
uint64_t SizeOfStackCommit
Definition pe.h:155
uint16_t MajorOperatingSystemVersion
Definition pe.h:142
uint16_t MinorSubsystemVersion
Definition pe.h:147
uint64_t SizeOfHeapReserve
Definition pe.h:156
uint32_t LoaderFlags
Definition pe.h:158
uint64_t ImageBase
Definition pe.h:139
uint32_t BaseOfCode
Definition pe.h:138
uint16_t Magic
Definition pe.h:131
uint32_t SizeOfCode
Definition pe.h:134
uint64_t SizeOfHeapCommit
Definition pe.h:157
uint32_t AddressOfEntryPoint
Definition pe.h:137
uint16_t MinorImageVersion
Definition pe.h:145
uint8_t MinorLinkerVersion
Definition pe.h:133
uint8_t MajorLinkerVersion
Definition pe.h:132
uint32_t CheckSum
Definition pe.h:151
uint32_t SizeOfHeaders
Definition pe.h:150
uint8_t MinorLinkerVersion
Definition pe.h:98
uint16_t MajorOperatingSystemVersion
Definition pe.h:108
uint32_t SectionAlighnment
Definition pe.h:106
uint32_t Reserved1
Definition pe.h:114
uint32_t SizeOfUninitializedData
Definition pe.h:101
uint32_t SizeOfHeaders
Definition pe.h:116
uint16_t MajorImageVersion
Definition pe.h:110
uint16_t MinorOperatingSystemVersion
Definition pe.h:109
uint16_t DllCharacteristics
Definition pe.h:119
uint32_t SizeOfHeapReserve
Definition pe.h:122
uint32_t SizeOfImage
Definition pe.h:115
uint16_t MajorSubsystemVersion
Definition pe.h:112
uint32_t FileAlignment
Definition pe.h:107
uint32_t SizeOfStackCommit
Definition pe.h:121
uint32_t AddressOfEntryPoint
Definition pe.h:102
uint16_t MinorSubsystemVersion
Definition pe.h:113
uint16_t Magic
Definition pe.h:96
uint32_t BaseOfData
Definition pe.h:104
uint32_t SizeOfStackReserve
Definition pe.h:120
uint32_t SizeOfInitializedData
Definition pe.h:100
IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]
Definition pe.h:126
uint32_t BaseOfCode
Definition pe.h:103
uint32_t SizeOfHeapCommit
Definition pe.h:123
uint16_t Subsystem
Definition pe.h:118
uint32_t ImageBase
Definition pe.h:105
uint32_t NumberOfRvaAndSizes
Definition pe.h:125
uint32_t CheckSum
Definition pe.h:117
uint32_t LoaderFlags
Definition pe.h:124
uint8_t MajorLinkerVersion
Definition pe.h:97
uint16_t MinorImageVersion
Definition pe.h:111
uint32_t SizeOfCode
Definition pe.h:99
Definition pe.h:190
uint32_t SizeOfRawData
Definition pe.h:194
uint32_t PointerToLinenumbers
Definition pe.h:197
uint32_t PointerToRelocations
Definition pe.h:196
uint32_t PointerToRawData
Definition pe.h:195
uint32_t VirtualSize
Definition pe.h:192
uint32_t Characteristics
Definition pe.h:200
uint16_t NumberOfRelocations
Definition pe.h:198
uint32_t VirtualAddress
Definition pe.h:193
char Name[8]
Definition pe.h:191
uint16_t NumberOfLinenumbers
Definition pe.h:199