XenevaOS
Loading...
Searching...
No Matches
Classes | Macros | Typedefs | Enumerations | Functions
pe.h File Reference
#include <stdint.h>
#include "xnldr.h"
Include dependency graph for pe.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _IMAGE_DOS_HEADER_
 
struct  _IMAGE_FILE_HEADER_
 
struct  _IMAGE_DATA_DIRECTORY_
 
struct  _IMAGE_OPTIONAL_HEADER_PE32_
 
struct  _IMAGE_OPTIONAL_HEADER_PE32PLUS
 
struct  _IMAGE_NT_HEADERS_PE32
 
struct  _IMAGE_NT_HEADERS_PE32PLUS
 
struct  _IMAGE_SECTION_HEADER
 
struct  _IMAGE_EXPORT_DIRECTORY
 
struct  _IMAGE_IMPORT_DIRECTORY
 
struct  _IMAGE_RELOCATION_ENTRY_
 
struct  _IMAGE_RELOCATION_BLOCK_
 
struct  _IMAGE_IMPORT_HINT_TABLE
 

Macros

#define IMAGE_NUMBEROF_DIRECTORY_ENTRIES   16
 
#define IMAGE_NUMBEROF_DIRECTORY_ENTRIES   16
 
#define IMAGE_SCN_CNT_CODE   0x00000020
 
#define IMAGE_SCN_CNT_INITIALIZED_DATA   0x00000040
 
#define IMAGE_SCN_CNT_UNINITIALIZED_DATA   0x00000080
 
#define IMAGE_SCN_MEM_DISCARDABLE   0x02000000
 
#define IMAGE_SCN_MEM_NOT_CACHED   0x04000000
 
#define IMAGE_SCN_MEM_NOT_PAGED   0x08000000
 
#define IMAGE_SCN_MEM_SHARED   0x10000000
 
#define IMAGE_SCN_MEM_EXECUTE   0x20000000
 
#define IMAGE_SCN_MEM_READ   0x40000000
 
#define IMAGE_SCN_MEM_WRITE   0x80000000
 
#define IMAGE_DATA_DIRECTORY_EXPORT   0
 
#define IMAGE_DATA_DIRECTORY_IMPORT   1
 
#define IMAGE_IMPORT_LOOKUP_TABLE_FLAG_PE32   0x80000000
 
#define IMAGE_IMPORT_LOOKUP_TABLE_FLAG_PE32P   0x8000000000000000
 
#define IMAGE_IMPORT_LOOKUP_TABLE_FLAG   IMAGE_IMPORT_LOOKUP_TABLE_FLAG_PE32
 

Typedefs

typedef struct _IMAGE_DOS_HEADER_ IMAGE_DOS_HEADER
 
typedef struct _IMAGE_DOS_HEADER_PIMAGE_DOS_HEADER
 
typedef struct _IMAGE_NT_HEADERS_PE32_ IMAGE_NT_HEADERS_PE32
 
typedef struct _IMAGE_NT_HEADERS_PE32_ * PIMAGE_NT_HEADERS_PE32
 
typedef struct _IMAGE_NT_HEADERS_PE32PLUS_ IMAGE_NT_HEADERS_PE32PLYS
 
typedef struct _IMAGE_NT_HEADERS_PE32PLUS_ * PIMAGE_NT_HEADERS_PE32PLUS
 
typedef struct _IMAGE_FILE_HEADER_ IMAGE_FILE_HEADER
 
typedef struct _IMAGE_FILE_HEADER_PIMAGE_FILE_HEADER
 
typedef struct _IMAGE_DATA_DIRECTORY_ IMAGE_DATA_DIRECTORY
 
typedef struct _IMAGE_DATA_DIRECTORY_PIMAGE_DATA_DIRECTORY
 
typedef struct _IMAGE_OPTIONAL_HEADER_PE32_ IMAGE_OPTIONAL_HEADER_PE32
 
typedef struct _IMAGE_OPTIONAL_HEADER_PE32_PIMAGE_OPTIONAL_HEADER_PE32
 
typedef struct _IMAGE_OPTIONAL_HEADER_PE32PLUS IMAGE_OPTIONAL_HEADER_PE32PLUS
 
typedef struct _IMAGE_OPTIONAL_HEADER_PE32PLUSPIMAGE_OPTIONAL_HEADER_PE32PLUS
 
typedef struct _IMAGE_SECTION_HEADER SECTION_HEADER
 
typedef struct _IMAGE_SECTION_HEADERPSECTION_HEADER
 
typedef struct _IMAGE_EXPORT_DIRECTORY IMAGE_EXPORT_DIRECTORY
 
typedef struct _IMAGE_EXPORT_DIRECTORYPIMAGE_EXPORT_DIRECTORY
 
typedef struct _IMAGE_IMPORT_DIRECTORY IMAGE_IMPORT_DIRECTORY
 
typedef struct _IMAGE_IMPORT_DIRECTORYPIMAGE_IMPORT_DIRECTORY
 
typedef struct _IMAGE_RELOCATION_ENTRY_ IMAGE_RELOCATION_ENTRY
 
typedef struct _IMAGE_RELOCATION_ENTRY_PIMAGE_RELOCATION_ENTRY
 
typedef struct _IMAGE_RELOCATION_BLOCK_ IMAGE_RELOCATION_BLOCK
 
typedef struct _IMAGE_RELOCATION_BLOCK_PIMAGE_RELOCATION_BLOCK
 
typedef struct _IMAGE_IMPORT_HINT_TABLE IMAGE_IMPORT_HINT_TABLE
 
typedef struct _IMAGE_IMPORT_HINT_TABLEPIMAGE_IMPORT_HINT_TABLE
 
typedef uint32_t IMAGE_IMPORT_LOOKUP_TABLE_PE32
 
typedef uint32_tPIMAGE_IMPORT_LOOKUP_TABLE_PE32
 
typedef unsigned long long IMAGE_IMPORT_LOOKUP_TABLE_PE32P
 
typedef unsigned long long * PIMAGE_IMPORT_LOOKUP_TABLE_PE32P
 
typedef struct _IMAGE_NT_HEADERS_PE32PLUS IMAGE_NT_HEADERS
 
typedef struct _IMAGE_NT_HEADERS_PE32PLUSPIMAGE_NT_HEADERS
 
typedef IMAGE_IMPORT_LOOKUP_TABLE_PE32 IMAGE_IMPORT_LOOKUP_TABLE
 
typedef IMAGE_IMPORT_LOOKUP_TABLE_PE32PIMAGE_IMPORT_LOOKUP_TABLE
 

Enumerations

enum  PeMachineType {
  IMAGE_FILE_MACHINE_AMD64 = 0x8664 , IMAGE_FILE_MACHINE_ARM = 0x1C0 , IMAGE_FILE_MACHINE_EBC = 0xEBC , IMAGE_FILE_MACHINE_I386 = 0x14c ,
  IMAGE_FILE_MACHINE_THUMB = 0x1c2 , IMAGE_FILE_MACHINE_ARM64 = 0xaa64 , IMAGE_FILE_MACHINE_ARMNT = 0x1c4
}
 
enum  PeOptionalMagic { MAGIC_PE32 = 0x10b , MAGIC_PE32P = 0x20b }
 

Functions

void XEPELoadImage (void *filebuff)
 

Macro Definition Documentation

◆ IMAGE_DATA_DIRECTORY_EXPORT

#define IMAGE_DATA_DIRECTORY_EXPORT   0

◆ IMAGE_DATA_DIRECTORY_IMPORT

#define IMAGE_DATA_DIRECTORY_IMPORT   1

◆ IMAGE_IMPORT_LOOKUP_TABLE_FLAG

#define IMAGE_IMPORT_LOOKUP_TABLE_FLAG   IMAGE_IMPORT_LOOKUP_TABLE_FLAG_PE32

◆ IMAGE_IMPORT_LOOKUP_TABLE_FLAG_PE32

#define IMAGE_IMPORT_LOOKUP_TABLE_FLAG_PE32   0x80000000

◆ IMAGE_IMPORT_LOOKUP_TABLE_FLAG_PE32P

#define IMAGE_IMPORT_LOOKUP_TABLE_FLAG_PE32P   0x8000000000000000

◆ IMAGE_NUMBEROF_DIRECTORY_ENTRIES [1/2]

#define IMAGE_NUMBEROF_DIRECTORY_ENTRIES   16

◆ IMAGE_NUMBEROF_DIRECTORY_ENTRIES [2/2]

#define IMAGE_NUMBEROF_DIRECTORY_ENTRIES   16

◆ IMAGE_SCN_CNT_CODE

#define IMAGE_SCN_CNT_CODE   0x00000020

◆ IMAGE_SCN_CNT_INITIALIZED_DATA

#define IMAGE_SCN_CNT_INITIALIZED_DATA   0x00000040

◆ IMAGE_SCN_CNT_UNINITIALIZED_DATA

#define IMAGE_SCN_CNT_UNINITIALIZED_DATA   0x00000080

◆ IMAGE_SCN_MEM_DISCARDABLE

#define IMAGE_SCN_MEM_DISCARDABLE   0x02000000

◆ IMAGE_SCN_MEM_EXECUTE

#define IMAGE_SCN_MEM_EXECUTE   0x20000000

◆ IMAGE_SCN_MEM_NOT_CACHED

#define IMAGE_SCN_MEM_NOT_CACHED   0x04000000

◆ IMAGE_SCN_MEM_NOT_PAGED

#define IMAGE_SCN_MEM_NOT_PAGED   0x08000000

◆ IMAGE_SCN_MEM_READ

#define IMAGE_SCN_MEM_READ   0x40000000

◆ IMAGE_SCN_MEM_SHARED

#define IMAGE_SCN_MEM_SHARED   0x10000000

◆ IMAGE_SCN_MEM_WRITE

#define IMAGE_SCN_MEM_WRITE   0x80000000

Typedef Documentation

◆ IMAGE_DATA_DIRECTORY

◆ IMAGE_DOS_HEADER

BSD 2-Clause License

Copyright (c) 2022-2025, Manas Kamal Choudhury All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

◆ IMAGE_EXPORT_DIRECTORY

◆ IMAGE_FILE_HEADER

◆ IMAGE_IMPORT_DIRECTORY

◆ IMAGE_IMPORT_HINT_TABLE

◆ IMAGE_IMPORT_LOOKUP_TABLE

◆ IMAGE_IMPORT_LOOKUP_TABLE_PE32

◆ IMAGE_IMPORT_LOOKUP_TABLE_PE32P

◆ IMAGE_NT_HEADERS

◆ IMAGE_NT_HEADERS_PE32

typedef struct _IMAGE_NT_HEADERS_PE32_ IMAGE_NT_HEADERS_PE32

◆ IMAGE_NT_HEADERS_PE32PLYS

typedef struct _IMAGE_NT_HEADERS_PE32PLUS_ IMAGE_NT_HEADERS_PE32PLYS

◆ IMAGE_OPTIONAL_HEADER_PE32

◆ IMAGE_OPTIONAL_HEADER_PE32PLUS

◆ IMAGE_RELOCATION_BLOCK

◆ IMAGE_RELOCATION_ENTRY

◆ PIMAGE_DATA_DIRECTORY

◆ PIMAGE_DOS_HEADER

◆ PIMAGE_EXPORT_DIRECTORY

◆ PIMAGE_FILE_HEADER

◆ PIMAGE_IMPORT_DIRECTORY

◆ PIMAGE_IMPORT_HINT_TABLE

◆ PIMAGE_IMPORT_LOOKUP_TABLE

◆ PIMAGE_IMPORT_LOOKUP_TABLE_PE32

◆ PIMAGE_IMPORT_LOOKUP_TABLE_PE32P

◆ PIMAGE_NT_HEADERS

◆ PIMAGE_NT_HEADERS_PE32

typedef struct _IMAGE_NT_HEADERS_PE32_ * PIMAGE_NT_HEADERS_PE32

◆ PIMAGE_NT_HEADERS_PE32PLUS

typedef struct _IMAGE_NT_HEADERS_PE32PLUS_ * PIMAGE_NT_HEADERS_PE32PLUS

◆ PIMAGE_OPTIONAL_HEADER_PE32

◆ PIMAGE_OPTIONAL_HEADER_PE32PLUS

◆ PIMAGE_RELOCATION_BLOCK

◆ PIMAGE_RELOCATION_ENTRY

◆ PSECTION_HEADER

◆ SECTION_HEADER

Enumeration Type Documentation

◆ PeMachineType

Enumerator
IMAGE_FILE_MACHINE_AMD64 
IMAGE_FILE_MACHINE_ARM 
IMAGE_FILE_MACHINE_EBC 
IMAGE_FILE_MACHINE_I386 
IMAGE_FILE_MACHINE_THUMB 
IMAGE_FILE_MACHINE_ARM64 
IMAGE_FILE_MACHINE_ARMNT 

◆ PeOptionalMagic

Enumerator
MAGIC_PE32 
MAGIC_PE32P 

Function Documentation

◆ XEPELoadImage()

void XEPELoadImage ( void *  filebuff)
extern