forked from xt-sys/exectos
Initial PE/COFF support for loading image files
This commit is contained in:
@@ -96,8 +96,8 @@
|
||||
#define PECOFF_IMAGE_NUMBEROF_DIRECTORY_ENTRIES 16
|
||||
|
||||
/* PE/COFF image HDR magic */
|
||||
#define PECOFF_IMAGE_NT_OPTIONAL_HDR32_MAGIC 0x10B
|
||||
#define PECOFF_IMAGE_NT_OPTIONAL_HDR64_MAGIC 0x20B
|
||||
#define PECOFF_IMAGE_PE_OPTIONAL_HDR32_MAGIC 0x10B
|
||||
#define PECOFF_IMAGE_PE_OPTIONAL_HDR64_MAGIC 0x20B
|
||||
#define PECOFF_IMAGE_ROM_OPTIONAL_HDR_MAGIC 0x107
|
||||
|
||||
/* PE/COFF directory entries */
|
||||
@@ -137,8 +137,8 @@
|
||||
#define PECOFF_IMAGE_SIZEOF_SECTION_HEADER 40
|
||||
#define PECOFF_IMAGE_SIZEOF_ROM_OPTIONAL_HEADER 56
|
||||
#define PECOFF_IMAGE_SIZEOF_STD_OPTIONAL_HEADER 28
|
||||
#define PECOFF_IMAGE_SIZEOF_NT_OPTIONAL32_HEADER 224
|
||||
#define PECOFF_IMAGE_SIZEOF_NT_OPTIONAL64_HEADER 240
|
||||
#define PECOFF_IMAGE_SIZEOF_PE_OPTIONAL32_HEADER 224
|
||||
#define PECOFF_IMAGE_SIZEOF_PE_OPTIONAL64_HEADER 240
|
||||
|
||||
/* PE/COFF image section characteristics */
|
||||
#define PECOFF_IMAGE_SCN_TYPE_REG 0x00000000
|
||||
@@ -190,11 +190,10 @@
|
||||
typedef struct _PECOFF_IMAGE_CONTEXT
|
||||
{
|
||||
PVOID Data;
|
||||
PVOID BaseAddress;
|
||||
ULONG NtSignature;
|
||||
UINT64 FileSize;
|
||||
UINT ImagePages;
|
||||
UINT ImageSize;
|
||||
UINT Pages;
|
||||
PVOID VirtualAddress;
|
||||
} PECOFF_IMAGE_CONTEXT, *PPECOFF_IMAGE_CONTEXT;
|
||||
|
||||
/* PE/COFF directory format */
|
||||
@@ -411,13 +410,13 @@ typedef struct _PECOFF_IMAGE_ROM_OPTIONAL_HEADER
|
||||
ULONG GpValue;
|
||||
} PECOFF_IMAGE_ROM_OPTIONAL_HEADER, *PPECOFF_IMAGE_ROM_OPTIONAL_HEADER;
|
||||
|
||||
/* PE/COFF NT image header */
|
||||
typedef struct _PECOFF_IMAGE_NT_HEADER
|
||||
/* PE/COFF PE image header */
|
||||
typedef struct _PECOFF_IMAGE_PE_HEADER
|
||||
{
|
||||
ULONG Signature;
|
||||
PECOFF_IMAGE_FILE_HEADER FileHeader;
|
||||
PECOFF_IMAGE_OPTIONAL_HEADER OptionalHeader;
|
||||
} PECOFF_IMAGE_NT_HEADER, *PPECOFF_IMAGE_NT_HEADER;
|
||||
} PECOFF_IMAGE_PE_HEADER, *PPECOFF_IMAGE_PE_HEADER;
|
||||
|
||||
/* PE/COFF ROM image header */
|
||||
typedef struct _PECOFF_IMAGE_ROM_HEADER {
|
||||
|
@@ -156,9 +156,9 @@ typedef struct _PECOFF_IMAGE_IMPORT_DESCRIPTOR PECOFF_IMAGE_IMPORT_DESCRIPTOR, *
|
||||
typedef struct _PECOFF_IMAGE_LOAD_CONFIG_CODE_INTEGRITY PECOFF_IMAGE_LOAD_CONFIG_CODE_INTEGRITY, *PPECOFF_IMAGE_LOAD_CONFIG_CODE_INTEGRITY;
|
||||
typedef struct _PECOFF_IMAGE_LOAD_CONFIG_DIRECTORY32 PECOFF_IMAGE_LOAD_CONFIG_DIRECTORY32, *PPECOFF_IMAGE_LOAD_CONFIG_DIRECTORY32;
|
||||
typedef struct _PECOFF_IMAGE_LOAD_CONFIG_DIRECTORY64 PECOFF_IMAGE_LOAD_CONFIG_DIRECTORY64, *PPECOFF_IMAGE_LOAD_CONFIG_DIRECTORY64;
|
||||
typedef struct _PECOFF_IMAGE_NT_HEADER PECOFF_IMAGE_NT_HEADER, *PPECOFF_IMAGE_NT_HEADER;
|
||||
typedef struct _PECOFF_IMAGE_OPTIONAL_HEADER PECOFF_IMAGE_OPTIONAL_HEADER, *PPECOFF_IMAGE_OPTIONAL_HEADER;
|
||||
typedef struct _PECOFF_IMAGE_OS2_HEADER PECOFF_IMAGE_OS2_HEADER, *PPECOFF_IMAGE_OS2_HEADER;
|
||||
typedef struct _PECOFF_IMAGE_PE_HEADER PECOFF_IMAGE_PE_HEADER, *PPECOFF_IMAGE_PE_HEADER;
|
||||
typedef struct _PECOFF_IMAGE_RESOURCE_DATA_ENTRY PECOFF_IMAGE_RESOURCE_DATA_ENTRY, *PPECOFF_IMAGE_RESOURCE_DATA_ENTRY;
|
||||
typedef struct _PECOFF_IMAGE_RESOURCE_DIRECTORY PECOFF_IMAGE_RESOURCE_DIRECTORY, *PPECOFF_IMAGE_RESOURCE_DIRECTORY;
|
||||
typedef struct _PECOFF_IMAGE_RESOURCE_DIRECTORY_ENTRY PECOFF_IMAGE_RESOURCE_DIRECTORY_ENTRY, *PPECOFF_IMAGE_RESOURCE_DIRECTORY_ENTRY;
|
||||
|
Reference in New Issue
Block a user