Module pecoff

Source
Expand description

Portable Executable / Common Object File Format

The Portable Executable format (PE, PE/COFF, PE32, PE32+) encodes executable and library code on platforms like Microsoft Windows, UEFI, and others. The COFF format originates in UNIX but was later adopted and extended into PE by Microsoft. Apart from the latter, the format has been widely abandonded and replaced by the Executable and Linker Format (ELF).

The COFF format is still used for object files and linker input. The PE format extends COFF slightly to allow MS-DOS stubs to be linked in front of the COFF executable. The name Portable Executable refers to the fact that the format is meant to be architecture independent.

The format was further extended to support offsets larger than 32bit, paving the way for adoption on 64 bit machines. Files encoded in the extended format are called PE32+.

XXX: This module is still incomplete.

Modules§

format
Format Parameter Customization

Structs§

DataDirectory
Header
OptionalHeader
OptionalHeaderExt
SectionHeader

Constants§

CHARACTERISTIC_32BIT_MACHINE
CHARACTERISTIC_AGGRESSIVE_WS_TRIM
CHARACTERISTIC_BYTES_REVERSED_HI
CHARACTERISTIC_BYTES_REVERSED_LO
CHARACTERISTIC_DEBUG_STRIPPED
CHARACTERISTIC_DLL
CHARACTERISTIC_EXECUTABLE_IMAGE
CHARACTERISTIC_LARGE_ADDRESS_AWARE
CHARACTERISTIC_LINE_NUMS_STRIPPED
CHARACTERISTIC_LOCAL_SYMS_STRIPPED
CHARACTERISTIC_NET_RUN_FROM_SWAP
CHARACTERISTIC_RELOCS_STRIPPED
CHARACTERISTIC_REMOVABLE_RUN_FROM_SWAP
CHARACTERISTIC_SYSTEM
CHARACTERISTIC_UP_SYSTEM_ONLY
DATA_DIRECTORY_ARCHITECTURE
DATA_DIRECTORY_BASE_RELOCATION_TABLE
DATA_DIRECTORY_BOUND_IMPORT
DATA_DIRECTORY_CERTIFICATE_TABLE
DATA_DIRECTORY_CLR_RUNTIME_HEADER
DATA_DIRECTORY_DEBUG
DATA_DIRECTORY_DELAY_IMPORT_DESCRIPTOR
DATA_DIRECTORY_EXCEPTION_TABLE
DATA_DIRECTORY_EXPORT_TABLE
DATA_DIRECTORY_GLOBAL_PTR
DATA_DIRECTORY_IAT
DATA_DIRECTORY_IMPORT_TABLE
DATA_DIRECTORY_LOAD_CONFIG_TABLE
DATA_DIRECTORY_RESOURCE_TABLE
DATA_DIRECTORY_TLS_TABLE
DLL_CHARACTERISTIC_APPCONTAINER
DLL_CHARACTERISTIC_DYNAMIC_BASE
DLL_CHARACTERISTIC_FORCE_INTEGRITY
DLL_CHARACTERISTIC_GUARD_CF
DLL_CHARACTERISTIC_HIGH_ENTROPY_VA
DLL_CHARACTERISTIC_NO_BIND
DLL_CHARACTERISTIC_NO_ISOLATION
DLL_CHARACTERISTIC_NO_SEH
DLL_CHARACTERISTIC_NX_COMPAT
DLL_CHARACTERISTIC_TERMINAL_SERVER_AWARE
DLL_CHARACTERISTIC_WDM_DRIVER
INVALID_TIMESTAMPS
MACHINE_AM33
MACHINE_AMD64
MACHINE_ARM
MACHINE_ARM64
MACHINE_ARMNT
MACHINE_EBC
MACHINE_I386
MACHINE_IA64
MACHINE_LOONGARCH32
MACHINE_LOONGARCH64
MACHINE_M32R
MACHINE_MIPS16
MACHINE_MIPSFPU
MACHINE_MIPSFPU16
MACHINE_POWERPC
MACHINE_POWERPCFP
MACHINE_R4000
MACHINE_RISCV32
MACHINE_RISCV64
MACHINE_RISCV128
MACHINE_SH3
MACHINE_SH4
MACHINE_SH5
MACHINE_SH3DSP
MACHINE_THUMB
MACHINE_UNKNOWN
MACHINE_WCEMIPSV2
PE_MAGIC
PE_MAGIC_OH32
PE_MAGIC_OH32P
PE_OFFSET
SECTION_CHARACTERISTIC_ALIGN_1BYTES
SECTION_CHARACTERISTIC_ALIGN_2BYTES
SECTION_CHARACTERISTIC_ALIGN_4BYTES
SECTION_CHARACTERISTIC_ALIGN_8BYTES
SECTION_CHARACTERISTIC_ALIGN_16BYTES
SECTION_CHARACTERISTIC_ALIGN_32BYTES
SECTION_CHARACTERISTIC_ALIGN_64BYTES
SECTION_CHARACTERISTIC_ALIGN_128BYTES
SECTION_CHARACTERISTIC_ALIGN_256BYTES
SECTION_CHARACTERISTIC_ALIGN_512BYTES
SECTION_CHARACTERISTIC_ALIGN_1024BYTES
SECTION_CHARACTERISTIC_ALIGN_2048BYTES
SECTION_CHARACTERISTIC_ALIGN_4096BYTES
SECTION_CHARACTERISTIC_ALIGN_8192BYTES
SECTION_CHARACTERISTIC_CNT_CODE
SECTION_CHARACTERISTIC_CNT_INITIALIZED_DATA
SECTION_CHARACTERISTIC_CNT_UNINITIALIZED_DATA
SECTION_CHARACTERISTIC_GPREL
SECTION_CHARACTERISTIC_LNK_COMDAT
SECTION_CHARACTERISTIC_LNK_INFO
SECTION_CHARACTERISTIC_LNK_NRELOC_OVFL
SECTION_CHARACTERISTIC_LNK_OTHER
SECTION_CHARACTERISTIC_LNK_REMOVE
SECTION_CHARACTERISTIC_MEM_16BIT
SECTION_CHARACTERISTIC_MEM_DISCARDABLE
SECTION_CHARACTERISTIC_MEM_EXECUTE
SECTION_CHARACTERISTIC_MEM_LOCKED
SECTION_CHARACTERISTIC_MEM_NOT_CACHED
SECTION_CHARACTERISTIC_MEM_NOT_PAGED
SECTION_CHARACTERISTIC_MEM_PRELOAD
SECTION_CHARACTERISTIC_MEM_PURGEABLE
SECTION_CHARACTERISTIC_MEM_READ
SECTION_CHARACTERISTIC_MEM_SHARED
SECTION_CHARACTERISTIC_MEM_WRITE
SECTION_CHARACTERISTIC_TYPE_NO_PAD
SUBSYSTEM_EFI_APPLICATION
SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER
SUBSYSTEM_EFI_ROM
SUBSYSTEM_EFI_RUNTIME_DRIVER
SUBSYSTEM_NATIVE
SUBSYSTEM_NATIVE_WINDOWS
SUBSYSTEM_OS2_CUI
SUBSYSTEM_POSIX_CUI
SUBSYSTEM_UNKNOWN
SUBSYSTEM_WINDOWS_BOOT_APPLICATION
SUBSYSTEM_WINDOWS_CE_GUI
SUBSYSTEM_WINDOWS_CUI
SUBSYSTEM_WINDOWS_GUI
SUBSYSTEM_XBOX

Type Aliases§

OptionalHeader32P
OptionalHeaderExt32P