NeKernel dev
Loading...
Searching...
No Matches
PE.h
Go to the documentation of this file.
1/* ========================================
2
3 Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license.
4
5 File: PE.h
6 Purpose: Portable Executable for Kernel.
7
8 Revision History:
9
10 30/01/24: Added file (amlel)
11
12======================================== */
13
14#ifndef __KERNELKIT_INC_PE_H__
15#define __KERNELKIT_INC_PE_H__
16
17#include <NeKit/Config.h>
18
19#define kPeSignature (0x00004550)
20
21#define kPeMagic32 (0x010b)
22#define kPeMagic64 (0x020b)
23
24#define kPeMachineAMD64 (0x8664)
25#define kPeMachineARM64 (0xaa64)
26
37
69
82
89
103
114
119
124
125enum {
126 kUserSection = 0x00000020,
127 kPEResourceId = 0xFFaadd00,
128};
129
130#endif /* ifndef __KERNELKIT_INC_PE_H__ */
struct LDR_EXPORT_DIRECTORY * LDR_EXPORT_DIRECTORY_PTR
struct LDR_EXEC_HEADER * LDR_EXEC_HEADER_PTR
struct LDR_IMPORT_DIRECTORY * LDR_IMPORT_DIRECTORY_PTR
struct LDR_OPTIONAL_HEADER * LDR_OPTIONAL_HEADER_PTR
kExecDataDirParams
Definition PE.h:83
@ kExecExport
Definition PE.h:84
@ kExecCount
Definition PE.h:87
@ kExecInvalid
Definition PE.h:86
@ kExecImport
Definition PE.h:85
struct LDR_DATA_DIRECTORY * LDR_DATA_DIRECTORY_PTR
@ kPEResourceId
Definition PE.h:127
@ kUserSection
Definition PE.h:126
struct LDR_SECTION_HEADER * LDR_SECTION_HEADER_PTR
struct LDR_IMAGE_HEADER * LDR_IMAGE_HEADER_PTR
char Char
Definition Config.h:51
__UINT16_TYPE__ UInt16
Definition Config.h:40
__UINT8_TYPE__ UInt8
Definition Config.h:55
__UINT32_TYPE__ UInt32
Definition Config.h:44
__UINT64_TYPE__ UInt64
Definition Config.h:48
Definition PE.h:115
Kernel::UInt32 Size
Definition PE.h:117
Kernel::UInt32 VirtualAddress
Definition PE.h:116
Definition PE.h:27
Kernel::UInt32 TimeDateStamp
Definition PE.h:31
Kernel::UInt32 Signature
Definition PE.h:28
Kernel::UInt16 Characteristics
Definition PE.h:35
Kernel::UInt16 SizeOfOptionalHeader
Definition PE.h:34
Kernel::UInt32 PointerToSymbolTable
Definition PE.h:32
Kernel::UInt32 NumberOfSymbols
Definition PE.h:33
Kernel::UInt16 Machine
Definition PE.h:29
Kernel::UInt16 NumberOfSections
Definition PE.h:30
Definition PE.h:90
Kernel::UInt32 Characteristics
Definition PE.h:91
Kernel::UInt32 AddressOfFunctions
Definition PE.h:99
Kernel::UInt32 Base
Definition PE.h:96
Kernel::UInt32 AddressOfNameOrdinal
Definition PE.h:101
Kernel::UInt16 MinorVersion
Definition PE.h:94
Kernel::UInt16 MajorVersion
Definition PE.h:93
Kernel::UInt32 TimeDateStamp
Definition PE.h:92
Kernel::UInt32 NumberOfNames
Definition PE.h:98
Kernel::UInt32 AddressOfNames
Definition PE.h:100
Kernel::UInt32 Name
Definition PE.h:95
Kernel::UInt32 NumberOfFunctions
Definition PE.h:97
Definition PE.h:120
LDR_EXEC_HEADER Header
Definition PE.h:121
LDR_OPTIONAL_HEADER OptHdr
Definition PE.h:122
Definition PE.h:104
Kernel::UInt32 OriginalFirstThunk
Definition PE.h:107
Kernel::UInt32 ForwarderChain
Definition PE.h:110
Kernel::UInt32 Characteristics
Definition PE.h:106
Kernel::UInt32 ThunkTableRva
Definition PE.h:112
Kernel::UInt32 NameRva
Definition PE.h:111
Kernel::UInt32 TimeDateStamp
Definition PE.h:109
Definition PE.h:38
Kernel::UInt32 AddressOfEntryPoint
Definition PE.h:45
Kernel::UInt16 MinorOperatingSystemVersion
Definition PE.h:51
Kernel::UInt16 MajorImageVersion
Definition PE.h:52
Kernel::UInt16 Magic
Definition PE.h:39
Kernel::UInt16 Subsystem
Definition PE.h:60
Kernel::UInt32 SizeOfStackReserve
Definition PE.h:62
Kernel::UInt32 SizeOfImage
Definition PE.h:57
Kernel::UInt32 LoaderFlags
Definition PE.h:66
Kernel::UInt32 SizeOfStackCommit
Definition PE.h:63
Kernel::UInt8 MajorLinkerVersion
Definition PE.h:40
Kernel::UInt16 MajorSubsystemVersion
Definition PE.h:54
Kernel::UInt32 SizeOfUninitializedData
Definition PE.h:44
Kernel::UInt32 CheckSum
Definition PE.h:59
Kernel::UInt32 NumberOfRvaAndSizes
Definition PE.h:67
Kernel::UInt32 SizeOfHeaders
Definition PE.h:58
Kernel::UInt32 SizeOfInitializedData
Definition PE.h:43
Kernel::UInt32 SectionAlignment
Definition PE.h:48
Kernel::UInt16 MinorImageVersion
Definition PE.h:53
Kernel::UInt32 FileAlignment
Definition PE.h:49
Kernel::UInt16 MinorSubsystemVersion
Definition PE.h:55
Kernel::UInt32 SizeOfCode
Definition PE.h:42
Kernel::UInt8 MinorLinkerVersion
Definition PE.h:41
Kernel::UInt16 DllCharacteristics
Definition PE.h:61
Kernel::UInt32 SizeOfHeapReserve
Definition PE.h:64
Kernel::UInt16 MajorOperatingSystemVersion
Definition PE.h:50
Kernel::UInt32 BaseOfCode
Definition PE.h:46
Kernel::UInt32 Win32VersionValue
Definition PE.h:56
Kernel::UInt32 SizeOfHeapCommit
Definition PE.h:65
Kernel::UInt64 ImageBase
Definition PE.h:47
Definition PE.h:70
Kernel::UInt32 PointerToRawData
Definition PE.h:75
Kernel::Char Name[8]
Definition PE.h:71
Kernel::UInt32 VirtualAddress
Definition PE.h:73
Kernel::UInt16 NumberOfLinenumbers
Definition PE.h:79
Kernel::UInt32 VirtualSize
Definition PE.h:72
Kernel::UInt32 Characteristics
Definition PE.h:80
Kernel::UInt32 PointerToLineNumbers
Definition PE.h:77
Kernel::UInt16 NumberOfRelocations
Definition PE.h:78
Kernel::UInt32 SizeOfRawData
Definition PE.h:74
Kernel::UInt32 PointerToRelocations
Definition PE.h:76