File: C:/Users/fred/anaconda3/Library/include/LIEF/PE/enums.inc
enum _LIEF_EN(PE_TYPES) {
_LIEF_EI(PE32) = 0x10b, /** 32bits */
_LIEF_EI(PE32_PLUS) = 0x20b /** 64 bits */
};
enum _LIEF_EN(MACHINE_TYPES) {
_LIEF_EI(MT_Invalid) = 0xffff,
_LIEF_EI(IMAGE_FILE_MACHINE_UNKNOWN) = 0x0,
_LIEF_EI(IMAGE_FILE_MACHINE_AM33) = 0x1D3, /**< Matsushita AM33 */
_LIEF_EI(IMAGE_FILE_MACHINE_AMD64) = 0x8664, /**< AMD x64 */
_LIEF_EI(IMAGE_FILE_MACHINE_ARM) = 0x1C0, /**< ARM little endian */
_LIEF_EI(IMAGE_FILE_MACHINE_ARMNT) = 0x1C4, /**< ARMv7 Thumb mode only */
_LIEF_EI(IMAGE_FILE_MACHINE_ARM64) = 0xAA64, /**< ARMv8 in 64-bits mode */
_LIEF_EI(IMAGE_FILE_MACHINE_EBC) = 0xEBC, /**< EFI byte code */
_LIEF_EI(IMAGE_FILE_MACHINE_I386) = 0x14C, /**< Intel 386 or later */
_LIEF_EI(IMAGE_FILE_MACHINE_IA64) = 0x200, /**< Intel Itanium processor family */
_LIEF_EI(IMAGE_FILE_MACHINE_M32R) = 0x9041, /**< Mitsubishi M32R little endian */
_LIEF_EI(IMAGE_FILE_MACHINE_MIPS16) = 0x266, /**< MIPS16 */
_LIEF_EI(IMAGE_FILE_MACHINE_MIPSFPU) = 0x366, /**< MIPS with FPU */
_LIEF_EI(IMAGE_FILE_MACHINE_MIPSFPU16) = 0x466, /**< MIPS16 with FPU */
_LIEF_EI(IMAGE_FILE_MACHINE_POWERPC) = 0x1F0, /**< Power PC little endian */
_LIEF_EI(IMAGE_FILE_MACHINE_POWERPCFP) = 0x1F1, /**< Power PC with floating point */
_LIEF_EI(IMAGE_FILE_MACHINE_R4000) = 0x166, /**< MIPS with little endian */
_LIEF_EI(IMAGE_FILE_MACHINE_RISCV32) = 0x5032, /**< RISC-V 32-bit address space */
_LIEF_EI(IMAGE_FILE_MACHINE_RISCV64) = 0x5064, /**< RISC-V 64-bit address space */
_LIEF_EI(IMAGE_FILE_MACHINE_RISCV128) = 0x5128, /**< RISC-V 128-bit address space */
_LIEF_EI(IMAGE_FILE_MACHINE_SH3) = 0x1A2, /**< Hitachi SH3 */
_LIEF_EI(IMAGE_FILE_MACHINE_SH3DSP) = 0x1A3, /**< Hitachi SH3 DSP */
_LIEF_EI(IMAGE_FILE_MACHINE_SH4) = 0x1A6, /**< Hitachi SH4 */
_LIEF_EI(IMAGE_FILE_MACHINE_SH5) = 0x1A8, /**< Hitachi SH5 */
_LIEF_EI(IMAGE_FILE_MACHINE_THUMB) = 0x1C2, /**< ARM or Thumb */
_LIEF_EI(IMAGE_FILE_MACHINE_WCEMIPSV2) = 0x169 /**< MIPS little-endian WCE v2 */
};
enum _LIEF_EN_2(SYMBOL_SECTION_NUMBER, int) {
_LIEF_EI(IMAGE_SYM_DEBUG) = -2,
_LIEF_EI(IMAGE_SYM_ABSOLUTE) = -1,
_LIEF_EI(IMAGE_SYM_UNDEFINED) = 0
};
enum _LIEF_EN(HEADER_CHARACTERISTICS) {
_LIEF_EI(IMAGE_FILE_INVALID) = 0x0000,
_LIEF_EI(IMAGE_FILE_RELOCS_STRIPPED) = 0x0001, /**< The file does not contain base relocations and must be loaded at its preferred base. If this cannot be done, the loader will error.*/
_LIEF_EI(IMAGE_FILE_EXECUTABLE_IMAGE) = 0x0002, /**< The file is valid and can be run.*/
_LIEF_EI(IMAGE_FILE_LINE_NUMS_STRIPPED) = 0x0004, /**< COFF line numbers have been stripped. This is deprecated and should be 0*/
_LIEF_EI(IMAGE_FILE_LOCAL_SYMS_STRIPPED) = 0x0008, /**< COFF symbol table entries for local symbols have been removed. This is deprecated and should be 0.*/
_LIEF_EI(IMAGE_FILE_AGGRESSIVE_WS_TRIM) = 0x0010, /**< Aggressively trim working set. This is deprecated and must be 0.*/
_LIEF_EI(IMAGE_FILE_LARGE_ADDRESS_AWARE) = 0x0020, /**< Image can handle > 2GiB addresses. */
_LIEF_EI(IMAGE_FILE_BYTES_REVERSED_LO) = 0x0080, /**< Little endian: the LSB precedes the MSB in memory. This is deprecated and should be 0.*/
_LIEF_EI(IMAGE_FILE_32BIT_MACHINE) = 0x0100, /**< Machine is based on a 32bit word architecture. */
_LIEF_EI(IMAGE_FILE_DEBUG_STRIPPED) = 0x0200, /**< Debugging info has been removed. */
_LIEF_EI(IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP) = 0x0400, /**< If the image is on removable media, fully load it and copy it to swap. */
_LIEF_EI(IMAGE_FILE_NET_RUN_FROM_SWAP) = 0x0800, /**< If the image is on network media, fully load it and copy it to swap. */
_LIEF_EI(IMAGE_FILE_SYSTEM) = 0x1000, /**< The image file is a system file, not a user program.*/
_LIEF_EI(IMAGE_FILE_DLL) = 0x2000, /**< The image file is a DLL. */
_LIEF_EI(IMAGE_FILE_UP_SYSTEM_ONLY) = 0x4000, /**< This file should only be run on a uniprocessor machine. */
_LIEF_EI(IMAGE_FILE_BYTES_REVERSED_HI) = 0x8000 /**< Big endian: the MSB precedes the LSB in memory. This is deprecated */
};
/// Storage class tells where and what the symbol represents
enum _LIEF_EN_2(SYMBOL_STORAGE_CLASS, int) {
_LIEF_EI(IMAGE_SYM_CLASS_INVALID) = 0xFF,
_LIEF_EI(IMAGE_SYM_CLASS_END_OF_FUNCTION) = -1, ///< Physical end of function
_LIEF_EI(IMAGE_SYM_CLASS_NULL) = 0, ///< No symbol
_LIEF_EI(IMAGE_SYM_CLASS_AUTOMATIC) = 1, ///< Stack variable
_LIEF_EI(IMAGE_SYM_CLASS_EXTERNAL) = 2, ///< External symbol
_LIEF_EI(IMAGE_SYM_CLASS_STATIC) = 3, ///< Static
_LIEF_EI(IMAGE_SYM_CLASS_REGISTER) = 4, ///< Register variable
_LIEF_EI(IMAGE_SYM_CLASS_EXTERNAL_DEF) = 5, ///< External definition
_LIEF_EI(IMAGE_SYM_CLASS_LABEL) = 6, ///< Label
_LIEF_EI(IMAGE_SYM_CLASS_UNDEFINED_LABEL) = 7, ///< Undefined label
_LIEF_EI(IMAGE_SYM_CLASS_MEMBER_OF_STRUCT) = 8, ///< Member of structure
_LIEF_EI(IMAGE_SYM_CLASS_ARGUMENT) = 9, ///< Function argument
_LIEF_EI(IMAGE_SYM_CLASS_STRUCT_TAG) = 10, ///< Structure tag
_LIEF_EI(IMAGE_SYM_CLASS_MEMBER_OF_UNION) = 11, ///< Member of union
_LIEF_EI(IMAGE_SYM_CLASS_UNION_TAG) = 12, ///< Union tag
_LIEF_EI(IMAGE_SYM_CLASS_TYPE_DEFINITION) = 13, ///< Type definition
_LIEF_EI(IMAGE_SYM_CLASS_UNDEFINED_STATIC) = 14, ///< Undefined static
_LIEF_EI(IMAGE_SYM_CLASS_ENUM_TAG) = 15, ///< Enumeration tag
_LIEF_EI(IMAGE_SYM_CLASS_MEMBER_OF_ENUM) = 16, ///< Member of enumeration
_LIEF_EI(IMAGE_SYM_CLASS_REGISTER_PARAM) = 17, ///< Register parameter
_LIEF_EI(IMAGE_SYM_CLASS_BIT_FIELD) = 18, ///< Bit field ".bb" or ".eb" - beginning or end of block
_LIEF_EI(IMAGE_SYM_CLASS_BLOCK) = 100, ///< ".bf" or ".ef" - beginning or end of function
_LIEF_EI(IMAGE_SYM_CLASS_FUNCTION) = 101,
_LIEF_EI(IMAGE_SYM_CLASS_END_OF_STRUCT) = 102, ///< End of structure
_LIEF_EI(IMAGE_SYM_CLASS_FILE) = 103, ///< File name line number, reformatted as symbol
_LIEF_EI(IMAGE_SYM_CLASS_SECTION) = 104,
_LIEF_EI(IMAGE_SYM_CLASS_WEAK_EXTERNAL) = 105, ///< Duplicate tag external symbol in dmert public lib
_LIEF_EI(IMAGE_SYM_CLASS_CLR_TOKEN) = 107
};
enum _LIEF_EN(SYMBOL_BASE_TYPES) {
_LIEF_EI(IMAGE_SYM_TYPE_NULL) = 0, ///< No type information or unknown base type.
_LIEF_EI(IMAGE_SYM_TYPE_VOID) = 1, ///< Used with void pointers and functions.
_LIEF_EI(IMAGE_SYM_TYPE_CHAR) = 2, ///< A character (signed byte).
_LIEF_EI(IMAGE_SYM_TYPE_SHORT) = 3, ///< A 2-byte signed integer.
_LIEF_EI(IMAGE_SYM_TYPE_INT) = 4, ///< A natural integer type on the target.
_LIEF_EI(IMAGE_SYM_TYPE_LONG) = 5, ///< A 4-byte signed integer.
_LIEF_EI(IMAGE_SYM_TYPE_FLOAT) = 6, ///< A 4-byte floating-point number.
_LIEF_EI(IMAGE_SYM_TYPE_DOUBLE) = 7, ///< An 8-byte floating-point number.
_LIEF_EI(IMAGE_SYM_TYPE_STRUCT) = 8, ///< A structure.
_LIEF_EI(IMAGE_SYM_TYPE_UNION) = 9, ///< An union.
_LIEF_EI(IMAGE_SYM_TYPE_ENUM) = 10, ///< An enumerated type.
_LIEF_EI(IMAGE_SYM_TYPE_MOE) = 11, ///< A member of enumeration (a specific value).
_LIEF_EI(IMAGE_SYM_TYPE_BYTE) = 12, ///< A byte; unsigned 1-byte integer.
_LIEF_EI(IMAGE_SYM_TYPE_WORD) = 13, ///< A word; unsigned 2-byte integer.
_LIEF_EI(IMAGE_SYM_TYPE_UINT) = 14, ///< An unsigned integer of natural size.
_LIEF_EI(IMAGE_SYM_TYPE_DWORD) = 15 ///< An unsigned 4-byte integer.
};
enum _LIEF_EN(SYMBOL_COMPLEX_TYPES) {
_LIEF_EI(IMAGE_SYM_DTYPE_NULL) = 0, ///< No complex type; simple scalar variable.
_LIEF_EI(IMAGE_SYM_DTYPE_POINTER) = 1, ///< A pointer to base type.
_LIEF_EI(IMAGE_SYM_DTYPE_FUNCTION) = 2, ///< A function that returns a base type.
_LIEF_EI(IMAGE_SYM_DTYPE_ARRAY) = 3, ///< An array of base type.
_LIEF_EI(SCT_COMPLEX_TYPE_SHIFT) = 4 ///< Type is formed as (base + (derived << SCT_COMPLEX_TYPE_SHIFT))
};
enum _LIEF_EN(AuxSymbolType) {
_LIEF_EI(IMAGE_AUX_SYMBOL_TYPE_TOKEN_DEF) = 1
};
enum _LIEF_EN(RELOCATIONS_BASE_TYPES) {
_LIEF_EI(IMAGE_REL_BASED_ABSOLUTE) = 0,
_LIEF_EI(IMAGE_REL_BASED_HIGH) = 1,
_LIEF_EI(IMAGE_REL_BASED_LOW) = 2,
_LIEF_EI(IMAGE_REL_BASED_HIGHLOW) = 3,
_LIEF_EI(IMAGE_REL_BASED_HIGHADJ) = 4,
_LIEF_EI(IMAGE_REL_BASED_MIPS_JMPADDR) = 5,
_LIEF_EI(IMAGE_REL_BASED_ARM_MOV32A) = 5,
_LIEF_EI(IMAGE_REL_BASED_ARM_MOV32) = 5,
_LIEF_EI(IMAGE_REL_BASED_RISCV_HI20) = 5,
_LIEF_EI(IMAGE_REL_BASED_SECTION) = 6,
_LIEF_EI(IMAGE_REL_BASED_REL) = 7,
_LIEF_EI(IMAGE_REL_BASED_ARM_MOV32T) = 7,
_LIEF_EI(IMAGE_REL_BASED_THUMB_MOV32) = 7,
_LIEF_EI(IMAGE_REL_BASED_RISCV_LOW12I) = 7,
_LIEF_EI(IMAGE_REL_BASED_RISCV_LOW12S) = 8,
_LIEF_EI(IMAGE_REL_BASED_MIPS_JMPADDR16) = 9,
_LIEF_EI(IMAGE_REL_BASED_IA64_IMM64) = 9,
_LIEF_EI(IMAGE_REL_BASED_DIR64) = 10,
_LIEF_EI(IMAGE_REL_BASED_HIGH3ADJ) = 11,
};
enum _LIEF_EN(RELOCATIONS_I386) {
_LIEF_EI(IMAGE_REL_I386_ABSOLUTE) = 0x0000,
_LIEF_EI(IMAGE_REL_I386_DIR16) = 0x0001,
_LIEF_EI(IMAGE_REL_I386_REL16) = 0x0002,
_LIEF_EI(IMAGE_REL_I386_DIR32) = 0x0006,
_LIEF_EI(IMAGE_REL_I386_DIR32NB) = 0x0007,
_LIEF_EI(IMAGE_REL_I386_SEG12) = 0x0009,
_LIEF_EI(IMAGE_REL_I386_SECTION) = 0x000A,
_LIEF_EI(IMAGE_REL_I386_SECREL) = 0x000B,
_LIEF_EI(IMAGE_REL_I386_TOKEN) = 0x000C,
_LIEF_EI(IMAGE_REL_I386_SECREL7) = 0x000D,
_LIEF_EI(IMAGE_REL_I386_REL32) = 0x0014
};
enum _LIEF_EN(RELOCATIONS_AMD64) {
_LIEF_EI(IMAGE_REL_AMD64_ABSOLUTE) = 0x0000,
_LIEF_EI(IMAGE_REL_AMD64_ADDR64) = 0x0001,
_LIEF_EI(IMAGE_REL_AMD64_ADDR32) = 0x0002,
_LIEF_EI(IMAGE_REL_AMD64_ADDR32NB) = 0x0003,
_LIEF_EI(IMAGE_REL_AMD64_REL32) = 0x0004,
_LIEF_EI(IMAGE_REL_AMD64_REL32_1) = 0x0005,
_LIEF_EI(IMAGE_REL_AMD64_REL32_2) = 0x0006,
_LIEF_EI(IMAGE_REL_AMD64_REL32_3) = 0x0007,
_LIEF_EI(IMAGE_REL_AMD64_REL32_4) = 0x0008,
_LIEF_EI(IMAGE_REL_AMD64_REL32_5) = 0x0009,
_LIEF_EI(IMAGE_REL_AMD64_SECTION) = 0x000A,
_LIEF_EI(IMAGE_REL_AMD64_SECREL) = 0x000B,
_LIEF_EI(IMAGE_REL_AMD64_SECREL7) = 0x000C,
_LIEF_EI(IMAGE_REL_AMD64_TOKEN) = 0x000D,
_LIEF_EI(IMAGE_REL_AMD64_SREL32) = 0x000E,
_LIEF_EI(IMAGE_REL_AMD64_PAIR) = 0x000F,
_LIEF_EI(IMAGE_REL_AMD64_SSPAN32) = 0x0010
};
enum _LIEF_EN(RELOCATIONS_ARM) {
_LIEF_EI(IMAGE_REL_ARM_ABSOLUTE) = 0x0000,
_LIEF_EI(IMAGE_REL_ARM_ADDR32) = 0x0001,
_LIEF_EI(IMAGE_REL_ARM_ADDR32NB) = 0x0002,
_LIEF_EI(IMAGE_REL_ARM_BRANCH24) = 0x0003,
_LIEF_EI(IMAGE_REL_ARM_BRANCH11) = 0x0004,
_LIEF_EI(IMAGE_REL_ARM_TOKEN) = 0x0005,
_LIEF_EI(IMAGE_REL_ARM_BLX24) = 0x0008,
_LIEF_EI(IMAGE_REL_ARM_BLX11) = 0x0009,
_LIEF_EI(IMAGE_REL_ARM_SECTION) = 0x000E,
_LIEF_EI(IMAGE_REL_ARM_SECREL) = 0x000F,
_LIEF_EI(IMAGE_REL_ARM_MOV32A) = 0x0010,
_LIEF_EI(IMAGE_REL_ARM_MOV32T) = 0x0011,
_LIEF_EI(IMAGE_REL_ARM_BRANCH20T) = 0x0012,
_LIEF_EI(IMAGE_REL_ARM_BRANCH24T) = 0x0014,
_LIEF_EI(IMAGE_REL_ARM_BLX23T) = 0x0015
};
/// These are not documented in the spec, but are located in WinNT.h.
enum _LIEF_EN(WeakExternalCharacteristics) {
_LIEF_EI(IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY) = 1,
_LIEF_EI(IMAGE_WEAK_EXTERN_SEARCH_LIBRARY) = 2,
_LIEF_EI(IMAGE_WEAK_EXTERN_SEARCH_ALIAS) = 3
};
enum _LIEF_EN(DATA_DIRECTORY) {
_LIEF_EI(EXPORT_TABLE) = 0,
_LIEF_EI(IMPORT_TABLE) = 1,
_LIEF_EI(RESOURCE_TABLE) = 2,
_LIEF_EI(EXCEPTION_TABLE) = 3,
_LIEF_EI(CERTIFICATE_TABLE) = 4,
_LIEF_EI(BASE_RELOCATION_TABLE) = 5,
_LIEF_EI(DEBUG) = 6,
_LIEF_EI(ARCHITECTURE) = 7,
_LIEF_EI(GLOBAL_PTR) = 8,
_LIEF_EI(TLS_TABLE) = 9,
_LIEF_EI(LOAD_CONFIG_TABLE) = 10,
_LIEF_EI(BOUND_IMPORT) = 11,
_LIEF_EI(IAT) = 12,
_LIEF_EI(DELAY_IMPORT_DESCRIPTOR) = 13,
_LIEF_EI(CLR_RUNTIME_HEADER) = 14,
_LIEF_EI(RESERVED) = 15,
_LIEF_EI(NUM_DATA_DIRECTORIES) = 16
};
enum _LIEF_EN(SUBSYSTEM) {
_LIEF_EI(IMAGE_SUBSYSTEM_UNKNOWN) = 0, ///< An unknown subsystem.
_LIEF_EI(IMAGE_SUBSYSTEM_NATIVE) = 1, ///< Device drivers and native Windows processes
_LIEF_EI(IMAGE_SUBSYSTEM_WINDOWS_GUI) = 2, ///< The Windows GUI subsystem.
_LIEF_EI(IMAGE_SUBSYSTEM_WINDOWS_CUI) = 3, ///< The Windows character subsystem.
_LIEF_EI(IMAGE_SUBSYSTEM_OS2_CUI) = 5, ///< The OS/2 character subsytem.
_LIEF_EI(IMAGE_SUBSYSTEM_POSIX_CUI) = 7, ///< The POSIX character subsystem.
_LIEF_EI(IMAGE_SUBSYSTEM_NATIVE_WINDOWS) = 8, ///< Native Windows 9x driver.
_LIEF_EI(IMAGE_SUBSYSTEM_WINDOWS_CE_GUI) = 9, ///< Windows CE.
_LIEF_EI(IMAGE_SUBSYSTEM_EFI_APPLICATION) = 10, ///< An EFI application.
_LIEF_EI(IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER) = 11, ///< An EFI driver with boot services.
_LIEF_EI(IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER) = 12, ///< An EFI driver with run-time services.
_LIEF_EI(IMAGE_SUBSYSTEM_EFI_ROM) = 13, ///< An EFI ROM image.
_LIEF_EI(IMAGE_SUBSYSTEM_XBOX) = 14, ///< XBOX.
_LIEF_EI(IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION) = 16 ///< A BCD application.
};
enum _LIEF_EN(DLL_CHARACTERISTICS) {
_LIEF_EI(IMAGE_DLL_CHARACTERISTICS_HIGH_ENTROPY_VA) = 0x0020, ///< ASLR with 64 bit address space.
_LIEF_EI(IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE) = 0x0040, ///< DLL can be relocated at load time.
_LIEF_EI(IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY) = 0x0080, ///< Code integrity checks are enforced.
_LIEF_EI(IMAGE_DLL_CHARACTERISTICS_NX_COMPAT) = 0x0100, ///< Image is NX compatible.
_LIEF_EI(IMAGE_DLL_CHARACTERISTICS_NO_ISOLATION) = 0x0200, ///< Isolation aware, but do not isolate the image.
_LIEF_EI(IMAGE_DLL_CHARACTERISTICS_NO_SEH) = 0x0400, ///< Does not use structured exception handling (SEH). No SEH handler may be called in this image.
_LIEF_EI(IMAGE_DLL_CHARACTERISTICS_NO_BIND) = 0x0800, ///< Do not bind the image.
_LIEF_EI(IMAGE_DLL_CHARACTERISTICS_APPCONTAINER) = 0x1000, ///< Image should execute in an AppContainer.
_LIEF_EI(IMAGE_DLL_CHARACTERISTICS_WDM_DRIVER) = 0x2000, ///< A WDM driver.
_LIEF_EI(IMAGE_DLL_CHARACTERISTICS_GUARD_CF) = 0x4000, ///< Image supports Control Flow Guard.
_LIEF_EI(IMAGE_DLL_CHARACTERISTICS_TERMINAL_SERVER_AWARE) = 0x8000 ///< Terminal Server aware.
};
enum _LIEF_EN(DEBUG_TYPES) {
_LIEF_EI(IMAGE_DEBUG_TYPE_UNKNOWN) = 0,
_LIEF_EI(IMAGE_DEBUG_TYPE_COFF) = 1, ///< COFF debug information
_LIEF_EI(IMAGE_DEBUG_TYPE_CODEVIEW) = 2, ///< CodeView debug information (pdb & cie)
_LIEF_EI(IMAGE_DEBUG_TYPE_FPO) = 3, ///< Frame pointer omission information
_LIEF_EI(IMAGE_DEBUG_TYPE_MISC) = 4, ///< CodeView Debug Information
_LIEF_EI(IMAGE_DEBUG_TYPE_EXCEPTION) = 5, ///< A copy of .pdata section.
_LIEF_EI(IMAGE_DEBUG_TYPE_FIXUP) = 6, ///< Reserved.
_LIEF_EI(IMAGE_DEBUG_TYPE_OMAP_TO_SRC) = 7, ///< The mapping from an RVA in image to an RVA in source image.
_LIEF_EI(IMAGE_DEBUG_TYPE_OMAP_FROM_SRC) = 8, ///< The mapping from an RVA in source image to an RVA in image.
_LIEF_EI(IMAGE_DEBUG_TYPE_BORLAND) = 9, ///< Reserved for Borland.
_LIEF_EI(IMAGE_DEBUG_TYPE_RESERVED10) = 10, ///< Reserved for future use.
_LIEF_EI(IMAGE_DEBUG_TYPE_CLSID) = 11,
_LIEF_EI(IMAGE_DEBUG_TYPE_VC_FEATURE) = 12,
_LIEF_EI(IMAGE_DEBUG_TYPE_POGO) = 13,
_LIEF_EI(IMAGE_DEBUG_TYPE_ILTCG) = 14,
_LIEF_EI(IMAGE_DEBUG_TYPE_MPX) = 15,
_LIEF_EI(IMAGE_DEBUG_TYPE_REPRO) = 16,
_LIEF_EI(IMAGE_DEBUG_TYPE_EX_DLLCHARACTERISTICS) = 20,
};
//! Code view signatures
//! @see: http://llvm.org/doxygen/CVDebugRecord_8h_source.html
enum _LIEF_EN(CODE_VIEW_SIGNATURES) {
_LIEF_EI(CVS_UNKNOWN) = 0,
_LIEF_EI(CVS_PDB_70) = 0x53445352, // RSDS
_LIEF_EI(CVS_PDB_20) = 0x3031424e, // NB10
_LIEF_EI(CVS_CV_50) = 0x3131424e, // NB11
_LIEF_EI(CVS_CV_41) = 0x3930424e, // NB09
};
enum _LIEF_EN(POGO_SIGNATURES) {
_LIEF_EI(POGO_UNKNOWN) = 0,
_LIEF_EI(POGO_LCTG) = 0x4C544347, // LCTG
_LIEF_EI(POGO_PGI) = 0x50474900 , // PGI\0
};
enum _LIEF_EN(ImportType) {
_LIEF_EI(IMPORT_CODE) = 0,
_LIEF_EI(IMPORT_DATA) = 1,
_LIEF_EI(IMPORT_CONST) = 2
};
enum _LIEF_EN(ImportNameType) {
/// Import is by ordinal. This indicates that the value in the Ordinal/Hint
/// field of the import header is the import's ordinal. If this constant is
/// not specified, then the Ordinal/Hint field should always be interpreted
/// as the import's hint.
_LIEF_EI(IMPORT_ORDINAL) = 0,
/// The import name is identical to the public symbol name
_LIEF_EI(IMPORT_NAME) = 1,
/// The import name is the public symbol name, but skipping the leading ?,
/// @, or optionally _.
_LIEF_EI(IMPORT_NAME_NOPREFIX) = 2,
/// The import name is the public symbol name, but skipping the leading ?,
/// @, or optionally _, and truncating at the first @.
_LIEF_EI(IMPORT_NAME_UNDECORATE) = 3
};
enum _LIEF_EN(CodeViewIdentifiers) {
_LIEF_EI(DEBUG_LINE_TABLES_HAVE_COLUMN_RECORDS) = 0x1,
_LIEF_EI(DEBUG_SECTION_MAGIC) = 0x4,
_LIEF_EI(DEBUG_SYMBOL_SUBSECTION) = 0xF1,
_LIEF_EI(DEBUG_LINE_TABLE_SUBSECTION) = 0xF2,
_LIEF_EI(DEBUG_STRING_TABLE_SUBSECTION) = 0xF3,
_LIEF_EI(DEBUG_INDEX_SUBSECTION) = 0xF4,
// Symbol subsections are split into records of different types.
_LIEF_EI(DEBUG_SYMBOL_TYPE_PROC_START) = 0x1147,
_LIEF_EI(DEBUG_SYMBOL_TYPE_PROC_END) = 0x114F
};
//
// Resources
//
//! From https://docs.microsoft.com/en-us/windows/win32/menurc/resource-types
enum _LIEF_EN(RESOURCE_TYPES) {
_LIEF_EI(CURSOR) = 1,
_LIEF_EI(BITMAP) = 2,
_LIEF_EI(ICON) = 3,
_LIEF_EI(MENU) = 4,
_LIEF_EI(DIALOG) = 5,
_LIEF_EI(STRING) = 6,
_LIEF_EI(FONTDIR) = 7,
_LIEF_EI(FONT) = 8,
_LIEF_EI(ACCELERATOR) = 9,
_LIEF_EI(RCDATA) = 10,
_LIEF_EI(MESSAGETABLE) = 11,
_LIEF_EI(GROUP_CURSOR) = 12,
_LIEF_EI(GROUP_ICON) = 14,
_LIEF_EI(VERSION) = 16,
_LIEF_EI(DLGINCLUDE) = 17,
_LIEF_EI(PLUGPLAY) = 19,
_LIEF_EI(VXD) = 20,
_LIEF_EI(ANICURSOR) = 21,
_LIEF_EI(ANIICON) = 22,
_LIEF_EI(HTML) = 23,
_LIEF_EI(MANIFEST) = 24
};
enum _LIEF_EN(RESOURCE_LANGS) {
_LIEF_EI(LANG_NEUTRAL) = 0x00,
_LIEF_EI(LANG_INVARIANT) = 0x7f,
_LIEF_EI(LANG_AFRIKAANS) = 0x36,
_LIEF_EI(LANG_ALBANIAN) = 0x1c,
_LIEF_EI(LANG_ARABIC) = 0x01,
_LIEF_EI(LANG_ARMENIAN) = 0x2b,
_LIEF_EI(LANG_ASSAMESE) = 0x4d,
_LIEF_EI(LANG_AZERI) = 0x2c,
_LIEF_EI(LANG_BASQUE) = 0x2d,
_LIEF_EI(LANG_BELARUSIAN) = 0x23,
_LIEF_EI(LANG_BANGLA) = 0x45,
_LIEF_EI(LANG_BULGARIAN) = 0x02,
_LIEF_EI(LANG_CATALAN) = 0x03,
_LIEF_EI(LANG_CHINESE) = 0x04,
_LIEF_EI(LANG_CROATIAN) = 0x1a,
_LIEF_EI(LANG_BOSNIAN) = 0x1a,
_LIEF_EI(LANG_CZECH) = 0x05,
_LIEF_EI(LANG_DANISH) = 0x06,
_LIEF_EI(LANG_DIVEHI) = 0x65,
_LIEF_EI(LANG_DUTCH) = 0x13,
_LIEF_EI(LANG_ENGLISH) = 0x09,
_LIEF_EI(LANG_ESTONIAN) = 0x25,
_LIEF_EI(LANG_FAEROESE) = 0x38,
_LIEF_EI(LANG_FARSI) = 0x29,
_LIEF_EI(LANG_FINNISH) = 0x0b,
_LIEF_EI(LANG_FRENCH) = 0x0c,
_LIEF_EI(LANG_GALICIAN) = 0x56,
_LIEF_EI(LANG_GEORGIAN) = 0x37,
_LIEF_EI(LANG_GERMAN) = 0x07,
_LIEF_EI(LANG_GREEK) = 0x08,
_LIEF_EI(LANG_GUJARATI) = 0x47,
_LIEF_EI(LANG_HEBREW) = 0x0d,
_LIEF_EI(LANG_HINDI) = 0x39,
_LIEF_EI(LANG_HUNGARIAN) = 0x0e,
_LIEF_EI(LANG_ICELANDIC) = 0x0f,
_LIEF_EI(LANG_INDONESIAN) = 0x21,
_LIEF_EI(LANG_ITALIAN) = 0x10,
_LIEF_EI(LANG_JAPANESE) = 0x11,
_LIEF_EI(LANG_KANNADA) = 0x4b,
_LIEF_EI(LANG_KASHMIRI) = 0x60,
_LIEF_EI(LANG_KAZAK) = 0x3f,
_LIEF_EI(LANG_KONKANI) = 0x57,
_LIEF_EI(LANG_KOREAN) = 0x12,
_LIEF_EI(LANG_KYRGYZ) = 0x40,
_LIEF_EI(LANG_LATVIAN) = 0x26,
_LIEF_EI(LANG_LITHUANIAN) = 0x27,
_LIEF_EI(LANG_MACEDONIAN) = 0x2f,
_LIEF_EI(LANG_MALAY) = 0x3e,
_LIEF_EI(LANG_MALAYALAM) = 0x4c,
_LIEF_EI(LANG_MANIPURI) = 0x58,
_LIEF_EI(LANG_MARATHI) = 0x4e,
_LIEF_EI(LANG_MONGOLIAN) = 0x50,
_LIEF_EI(LANG_NEPALI) = 0x61,
_LIEF_EI(LANG_NORWEGIAN) = 0x14,
_LIEF_EI(LANG_ORIYA) = 0x48,
_LIEF_EI(LANG_POLISH) = 0x15,
_LIEF_EI(LANG_PORTUGUESE) = 0x16,
_LIEF_EI(LANG_PUNJABI) = 0x46,
_LIEF_EI(LANG_ROMANIAN) = 0x18,
_LIEF_EI(LANG_RUSSIAN) = 0x19,
_LIEF_EI(LANG_SANSKRIT) = 0x4f,
_LIEF_EI(LANG_SERBIAN) = 0x1a,
_LIEF_EI(LANG_SINDHI) = 0x59,
_LIEF_EI(LANG_SLOVAK) = 0x1b,
_LIEF_EI(LANG_SLOVENIAN) = 0x24,
_LIEF_EI(LANG_SPANISH) = 0x0a,
_LIEF_EI(LANG_SWAHILI) = 0x41,
_LIEF_EI(LANG_SWEDISH) = 0x1d,
_LIEF_EI(LANG_SYRIAC) = 0x5a,
_LIEF_EI(LANG_TAMIL) = 0x49,
_LIEF_EI(LANG_TATAR) = 0x44,
_LIEF_EI(LANG_TELUGU) = 0x4a,
_LIEF_EI(LANG_THAI) = 0x1e,
_LIEF_EI(LANG_TURKISH) = 0x1f,
_LIEF_EI(LANG_UKRAINIAN) = 0x22,
_LIEF_EI(LANG_URDU) = 0x20,
_LIEF_EI(LANG_UZBEK) = 0x43,
_LIEF_EI(LANG_VIETNAMESE) = 0x2a,
_LIEF_EI(LANG_GAELIC) = 0x3c,
_LIEF_EI(LANG_MALTESE) = 0x3a,
_LIEF_EI(LANG_MAORI) = 0x28,
_LIEF_EI(LANG_RHAETO_ROMANCE) = 0x17,
_LIEF_EI(LANG_SAMI) = 0x3b,
_LIEF_EI(LANG_SORBIAN) = 0x2e,
_LIEF_EI(LANG_SUTU) = 0x30,
_LIEF_EI(LANG_TSONGA) = 0x31,
_LIEF_EI(LANG_TSWANA) = 0x32,
_LIEF_EI(LANG_VENDA) = 0x33,
_LIEF_EI(LANG_XHOSA) = 0x34,
_LIEF_EI(LANG_ZULU) = 0x35,
_LIEF_EI(LANG_ESPERANTO) = 0x8f,
_LIEF_EI(LANG_WALON) = 0x90,
_LIEF_EI(LANG_CORNISH) = 0x91,
_LIEF_EI(LANG_WELSH) = 0x92,
_LIEF_EI(LANG_BRETON) = 0x93,
_LIEF_EI(LANG_INUKTITUT) = 0x5d,
_LIEF_EI(LANG_IRISH) = 0x3C,
_LIEF_EI(LANG_LOWER_SORBIAN) = 0x2E,
_LIEF_EI(LANG_PULAR) = 0x67,
_LIEF_EI(LANG_QUECHUA) = 0x6B,
_LIEF_EI(LANG_TAMAZIGHT) = 0x5F,
_LIEF_EI(LANG_TIGRINYA) = 0x73,
_LIEF_EI(LANG_VALENCIAN) = 0x03,
};
enum _LIEF_EN(RESOURCE_SUBLANGS) {
_LIEF_EI(SUBLANG_AFRIKAANS_SOUTH_AFRICA) = 0,
_LIEF_EI(SUBLANG_ALBANIAN_ALBANIA),
_LIEF_EI(SUBLANG_ALSATIAN_FRANCE),
_LIEF_EI(SUBLANG_AMHARIC_ETHIOPIA),
_LIEF_EI(SUBLANG_ARABIC_ALGERIA),
_LIEF_EI(SUBLANG_ARABIC_BAHRAIN),
_LIEF_EI(SUBLANG_ARABIC_EGYPT),
_LIEF_EI(SUBLANG_ARABIC_IRAQ),
_LIEF_EI(SUBLANG_ARABIC_JORDAN),
_LIEF_EI(SUBLANG_ARABIC_KUWAIT),
_LIEF_EI(SUBLANG_ARABIC_LEBANON),
_LIEF_EI(SUBLANG_ARABIC_LIBYA),
_LIEF_EI(SUBLANG_ARABIC_MOROCCO),
_LIEF_EI(SUBLANG_ARABIC_OMAN),
_LIEF_EI(SUBLANG_ARABIC_QATAR),
_LIEF_EI(SUBLANG_ARABIC_SAUDI_ARABIA),
_LIEF_EI(SUBLANG_ARABIC_SYRIA),
_LIEF_EI(SUBLANG_ARABIC_TUNISIA),
_LIEF_EI(SUBLANG_ARABIC_UAE),
_LIEF_EI(SUBLANG_ARABIC_YEMEN),
_LIEF_EI(SUBLANG_ARMENIAN_ARMENIA),
_LIEF_EI(SUBLANG_ASSAMESE_INDIA),
_LIEF_EI(SUBLANG_AZERI_CYRILLIC),
_LIEF_EI(SUBLANG_AZERI_LATIN),
_LIEF_EI(SUBLANG_BASHKIR_RUSSIA),
_LIEF_EI(SUBLANG_BASQUE_BASQUE),
_LIEF_EI(SUBLANG_BELARUSIAN_BELARUS),
_LIEF_EI(SUBLANG_BANGLA_BANGLADESH),
_LIEF_EI(SUBLANG_BANGLA_INDIA),
_LIEF_EI(SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC),
_LIEF_EI(SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN),
_LIEF_EI(SUBLANG_BRETON_FRANCE),
_LIEF_EI(SUBLANG_BULGARIAN_BULGARIA),
_LIEF_EI(SUBLANG_CATALAN_CATALAN),
_LIEF_EI(SUBLANG_CHINESE_HONGKONG),
_LIEF_EI(SUBLANG_CHINESE_MACAU),
_LIEF_EI(SUBLANG_CHINESE_SIMPLIFIED),
_LIEF_EI(SUBLANG_CHINESE_SINGAPORE),
_LIEF_EI(SUBLANG_CHINESE_TRADITIONAL),
_LIEF_EI(SUBLANG_CORSICAN_FRANCE),
_LIEF_EI(SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN),
_LIEF_EI(SUBLANG_CROATIAN_CROATIA),
_LIEF_EI(SUBLANG_CUSTOM_DEFAULT),
_LIEF_EI(SUBLANG_CUSTOM_UNSPECIFIED),
_LIEF_EI(SUBLANG_CZECH_CZECH_REPUBLIC),
_LIEF_EI(SUBLANG_DANISH_DENMARK),
_LIEF_EI(SUBLANG_DARI_AFGHANISTAN),
_LIEF_EI(SUBLANG_DEFAULT),
_LIEF_EI(SUBLANG_DIVEHI_MALDIVES),
_LIEF_EI(SUBLANG_DUTCH_BELGIAN),
_LIEF_EI(SUBLANG_DUTCH),
_LIEF_EI(SUBLANG_ENGLISH_AUS),
_LIEF_EI(SUBLANG_ENGLISH_BELIZE),
_LIEF_EI(SUBLANG_ENGLISH_CAN),
_LIEF_EI(SUBLANG_ENGLISH_CARIBBEAN),
_LIEF_EI(SUBLANG_ENGLISH_EIRE),
_LIEF_EI(SUBLANG_ENGLISH_INDIA),
_LIEF_EI(SUBLANG_ENGLISH_JAMAICA),
_LIEF_EI(SUBLANG_ENGLISH_MALAYSIA),
_LIEF_EI(SUBLANG_ENGLISH_NZ),
_LIEF_EI(SUBLANG_ENGLISH_PHILIPPINES),
_LIEF_EI(SUBLANG_ENGLISH_SINGAPORE),
_LIEF_EI(SUBLANG_ENGLISH_SOUTH_AFRICA),
_LIEF_EI(SUBLANG_ENGLISH_TRINIDAD),
_LIEF_EI(SUBLANG_ENGLISH_UK),
_LIEF_EI(SUBLANG_ENGLISH_US),
_LIEF_EI(SUBLANG_ENGLISH_ZIMBABWE),
_LIEF_EI(SUBLANG_ENGLISH_IRELAND),
_LIEF_EI(SUBLANG_ESTONIAN_ESTONIA),
_LIEF_EI(SUBLANG_FAEROESE_FAROE_ISLANDS),
_LIEF_EI(SUBLANG_FILIPINO_PHILIPPINES),
_LIEF_EI(SUBLANG_FINNISH_FINLAND),
_LIEF_EI(SUBLANG_FRENCH_BELGIAN),
_LIEF_EI(SUBLANG_FRENCH_CANADIAN),
_LIEF_EI(SUBLANG_FRENCH_LUXEMBOURG),
_LIEF_EI(SUBLANG_FRENCH_MONACO),
_LIEF_EI(SUBLANG_FRENCH_SWISS),
_LIEF_EI(SUBLANG_FRENCH),
_LIEF_EI(SUBLANG_FRISIAN_NETHERLANDS),
_LIEF_EI(SUBLANG_GALICIAN_GALICIAN),
_LIEF_EI(SUBLANG_GEORGIAN_GEORGIA),
_LIEF_EI(SUBLANG_GERMAN_AUSTRIAN),
_LIEF_EI(SUBLANG_GERMAN_LIECHTENSTEIN),
_LIEF_EI(SUBLANG_GERMAN_LUXEMBOURG),
_LIEF_EI(SUBLANG_GERMAN_SWISS),
_LIEF_EI(SUBLANG_GERMAN),
_LIEF_EI(SUBLANG_GREEK_GREECE),
_LIEF_EI(SUBLANG_GREENLANDIC_GREENLAND),
_LIEF_EI(SUBLANG_GUJARATI_INDIA),
_LIEF_EI(SUBLANG_HAUSA_NIGERIA_LATIN),
_LIEF_EI(SUBLANG_HEBREW_ISRAEL),
_LIEF_EI(SUBLANG_HINDI_INDIA),
_LIEF_EI(SUBLANG_HUNGARIAN_HUNGARY),
_LIEF_EI(SUBLANG_ICELANDIC_ICELAND),
_LIEF_EI(SUBLANG_IGBO_NIGERIA),
_LIEF_EI(SUBLANG_INDONESIAN_INDONESIA),
_LIEF_EI(SUBLANG_INUKTITUT_CANADA_LATIN),
_LIEF_EI(SUBLANG_INUKTITUT_CANADA),
_LIEF_EI(SUBLANG_IRISH_IRELAND),
_LIEF_EI(SUBLANG_ITALIAN_SWISS),
_LIEF_EI(SUBLANG_ITALIAN),
_LIEF_EI(SUBLANG_JAPANESE_JAPAN),
_LIEF_EI(SUBLANG_KANNADA_INDIA),
_LIEF_EI(SUBLANG_KASHMIRI_INDIA),
_LIEF_EI(SUBLANG_KASHMIRI_SASIA),
_LIEF_EI(SUBLANG_KAZAK_KAZAKHSTAN),
_LIEF_EI(SUBLANG_KHMER_CAMBODIA),
_LIEF_EI(SUBLANG_KICHE_GUATEMALA),
_LIEF_EI(SUBLANG_KINYARWANDA_RWANDA),
_LIEF_EI(SUBLANG_KONKANI_INDIA),
_LIEF_EI(SUBLANG_KOREAN),
_LIEF_EI(SUBLANG_KYRGYZ_KYRGYZSTAN),
_LIEF_EI(SUBLANG_LAO_LAO),
_LIEF_EI(SUBLANG_LATVIAN_LATVIA),
_LIEF_EI(SUBLANG_LITHUANIAN_CLASSIC),
_LIEF_EI(SUBLANG_LITHUANIAN),
_LIEF_EI(SUBLANG_LOWER_SORBIAN_GERMANY),
_LIEF_EI(SUBLANG_LUXEMBOURGISH_LUXEMBOURG),
_LIEF_EI(SUBLANG_MACEDONIAN_MACEDONIA),
_LIEF_EI(SUBLANG_MALAY_BRUNEI_DARUSSALAM),
_LIEF_EI(SUBLANG_MALAY_MALAYSIA),
_LIEF_EI(SUBLANG_MALAYALAM_INDIA),
_LIEF_EI(SUBLANG_MALTESE_MALTA),
_LIEF_EI(SUBLANG_MAORI_NEW_ZEALAND),
_LIEF_EI(SUBLANG_MAPUDUNGUN_CHILE),
_LIEF_EI(SUBLANG_MARATHI_INDIA),
_LIEF_EI(SUBLANG_MOHAWK_MOHAWK),
_LIEF_EI(SUBLANG_MONGOLIAN_CYRILLIC_MONGOLIA),
_LIEF_EI(SUBLANG_MONGOLIAN_PRC),
_LIEF_EI(SUBLANG_NEPALI_INDIA),
_LIEF_EI(SUBLANG_NEPALI_NEPAL),
_LIEF_EI(SUBLANG_NEUTRAL),
_LIEF_EI(SUBLANG_NORWEGIAN_BOKMAL),
_LIEF_EI(SUBLANG_NORWEGIAN_NYNORSK),
_LIEF_EI(SUBLANG_OCCITAN_FRANCE),
_LIEF_EI(SUBLANG_ORIYA_INDIA),
_LIEF_EI(SUBLANG_PASHTO_AFGHANISTAN),
_LIEF_EI(SUBLANG_PERSIAN_IRAN),
_LIEF_EI(SUBLANG_POLISH_POLAND),
_LIEF_EI(SUBLANG_PORTUGUESE_BRAZILIAN),
_LIEF_EI(SUBLANG_PORTUGUESE),
_LIEF_EI(SUBLANG_PUNJABI_INDIA),
_LIEF_EI(SUBLANG_QUECHUA_BOLIVIA),
_LIEF_EI(SUBLANG_QUECHUA_ECUADOR),
_LIEF_EI(SUBLANG_QUECHUA_PERU),
_LIEF_EI(SUBLANG_ROMANIAN_ROMANIA),
_LIEF_EI(SUBLANG_ROMANSH_SWITZERLAND),
_LIEF_EI(SUBLANG_RUSSIAN_RUSSIA),
_LIEF_EI(SUBLANG_SAMI_INARI_FINLAND),
_LIEF_EI(SUBLANG_SAMI_LULE_NORWAY),
_LIEF_EI(SUBLANG_SAMI_LULE_SWEDEN),
_LIEF_EI(SUBLANG_SAMI_NORTHERN_FINLAND),
_LIEF_EI(SUBLANG_SAMI_NORTHERN_NORWAY),
_LIEF_EI(SUBLANG_SAMI_NORTHERN_SWEDEN),
_LIEF_EI(SUBLANG_SAMI_SKOLT_FINLAND),
_LIEF_EI(SUBLANG_SAMI_SOUTHERN_NORWAY),
_LIEF_EI(SUBLANG_SAMI_SOUTHERN_SWEDEN),
_LIEF_EI(SUBLANG_SANSKRIT_INDIA),
_LIEF_EI(SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_CYRILLIC),
_LIEF_EI(SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_LATIN),
_LIEF_EI(SUBLANG_SERBIAN_CROATIA),
_LIEF_EI(SUBLANG_SERBIAN_CYRILLIC),
_LIEF_EI(SUBLANG_SERBIAN_LATIN),
_LIEF_EI(SUBLANG_SINDHI_AFGHANISTAN),
_LIEF_EI(SUBLANG_SINDHI_INDIA),
_LIEF_EI(SUBLANG_SINDHI_PAKISTAN),
_LIEF_EI(SUBLANG_SINHALESE_SRI_LANKA),
_LIEF_EI(SUBLANG_SLOVAK_SLOVAKIA),
_LIEF_EI(SUBLANG_SLOVENIAN_SLOVENIA),
_LIEF_EI(SUBLANG_SOTHO_NORTHERN_SOUTH_AFRICA),
_LIEF_EI(SUBLANG_SPANISH_ARGENTINA),
_LIEF_EI(SUBLANG_SPANISH_BOLIVIA),
_LIEF_EI(SUBLANG_SPANISH_CHILE),
_LIEF_EI(SUBLANG_SPANISH_COLOMBIA),
_LIEF_EI(SUBLANG_SPANISH_COSTA_RICA),
_LIEF_EI(SUBLANG_SPANISH_DOMINICAN_REPUBLIC),
_LIEF_EI(SUBLANG_SPANISH_ECUADOR),
_LIEF_EI(SUBLANG_SPANISH_EL_SALVADOR),
_LIEF_EI(SUBLANG_SPANISH_GUATEMALA),
_LIEF_EI(SUBLANG_SPANISH_HONDURAS),
_LIEF_EI(SUBLANG_SPANISH_MEXICAN),
_LIEF_EI(SUBLANG_SPANISH_MODERN),
_LIEF_EI(SUBLANG_SPANISH_NICARAGUA),
_LIEF_EI(SUBLANG_SPANISH_PANAMA),
_LIEF_EI(SUBLANG_SPANISH_PARAGUAY),
_LIEF_EI(SUBLANG_SPANISH_PERU),
_LIEF_EI(SUBLANG_SPANISH_PUERTO_RICO),
_LIEF_EI(SUBLANG_SPANISH_URUGUAY),
_LIEF_EI(SUBLANG_SPANISH_US),
_LIEF_EI(SUBLANG_SPANISH_VENEZUELA),
_LIEF_EI(SUBLANG_SPANISH),
_LIEF_EI(SUBLANG_SWAHILI_KENYA),
_LIEF_EI(SUBLANG_SWEDISH_FINLAND),
_LIEF_EI(SUBLANG_SWEDISH),
_LIEF_EI(SUBLANG_SYRIAC_SYRIA),
_LIEF_EI(SUBLANG_SYS_DEFAULT),
_LIEF_EI(SUBLANG_TAJIK_TAJIKISTAN),
_LIEF_EI(SUBLANG_TAMAZIGHT_ALGERIA_LATIN),
_LIEF_EI(SUBLANG_TAMIL_INDIA),
_LIEF_EI(SUBLANG_TATAR_RUSSIA),
_LIEF_EI(SUBLANG_TELUGU_INDIA),
_LIEF_EI(SUBLANG_THAI_THAILAND),
_LIEF_EI(SUBLANG_TIBETAN_PRC),
_LIEF_EI(SUBLANG_TIGRIGNA_ERITREA),
_LIEF_EI(SUBLANG_TSWANA_SOUTH_AFRICA),
_LIEF_EI(SUBLANG_TURKISH_TURKEY),
_LIEF_EI(SUBLANG_TURKMEN_TURKMENISTAN),
_LIEF_EI(SUBLANG_UI_CUSTOM_DEFAULT),
_LIEF_EI(SUBLANG_UIGHUR_PRC),
_LIEF_EI(SUBLANG_UKRAINIAN_UKRAINE),
_LIEF_EI(SUBLANG_UPPER_SORBIAN_GERMANY),
_LIEF_EI(SUBLANG_URDU_INDIA),
_LIEF_EI(SUBLANG_URDU_PAKISTAN),
_LIEF_EI(SUBLANG_UZBEK_CYRILLIC),
_LIEF_EI(SUBLANG_UZBEK_LATIN),
_LIEF_EI(SUBLANG_VIETNAMESE_VIETNAM),
_LIEF_EI(SUBLANG_WELSH_UNITED_KINGDOM),
_LIEF_EI(SUBLANG_WOLOF_SENEGAL),
_LIEF_EI(SUBLANG_XHOSA_SOUTH_AFRICA),
_LIEF_EI(SUBLANG_YAKUT_RUSSIA),
_LIEF_EI(SUBLANG_YI_PRC),
_LIEF_EI(SUBLANG_YORUBA_NIGERIA),
_LIEF_EI(SUBLANG_ZULU_SOUTH_AFRICA),
_LIEF_EI(SUBLANG_PULAR_SENEGAL),
_LIEF_EI(SUBLANG_PUNJABI_PAKISTAN),
_LIEF_EI(SUBLANG_TSWANA_BOTSWANA),
_LIEF_EI(SUBLANG_TAMIL_SRI_LANKA),
_LIEF_EI(SUBLANG_TIGRINYA_ETHIOPIA),
_LIEF_EI(SUBLANG_TIGRINYA_ERITREA),
_LIEF_EI(SUBLANG_VALENCIAN_VALENCIA),
};
enum _LIEF_EN(SECTION_CHARACTERISTICS) {
_LIEF_EI(SC_Invalid) = 0xffffffff,
_LIEF_EI(IMAGE_SCN_TYPE_NO_PAD) = 0x00000008,
_LIEF_EI(IMAGE_SCN_CNT_CODE) = 0x00000020,
_LIEF_EI(IMAGE_SCN_CNT_INITIALIZED_DATA) = 0x00000040,
_LIEF_EI(IMAGE_SCN_CNT_UNINITIALIZED_DATA) = 0x00000080,
_LIEF_EI(IMAGE_SCN_LNK_OTHER) = 0x00000100,
_LIEF_EI(IMAGE_SCN_LNK_INFO) = 0x00000200,
_LIEF_EI(IMAGE_SCN_LNK_REMOVE) = 0x00000800,
_LIEF_EI(IMAGE_SCN_LNK_COMDAT) = 0x00001000,
_LIEF_EI(IMAGE_SCN_GPREL) = 0x00008000,
_LIEF_EI(IMAGE_SCN_MEM_PURGEABLE) = 0x00010000,
_LIEF_EI(IMAGE_SCN_MEM_16BIT) = 0x00020000,
_LIEF_EI(IMAGE_SCN_MEM_LOCKED) = 0x00040000,
_LIEF_EI(IMAGE_SCN_MEM_PRELOAD) = 0x00080000,
_LIEF_EI(IMAGE_SCN_ALIGN_1BYTES) = 0x00100000,
_LIEF_EI(IMAGE_SCN_ALIGN_2BYTES) = 0x00200000,
_LIEF_EI(IMAGE_SCN_ALIGN_4BYTES) = 0x00300000,
_LIEF_EI(IMAGE_SCN_ALIGN_8BYTES) = 0x00400000,
_LIEF_EI(IMAGE_SCN_ALIGN_16BYTES) = 0x00500000,
_LIEF_EI(IMAGE_SCN_ALIGN_32BYTES) = 0x00600000,
_LIEF_EI(IMAGE_SCN_ALIGN_64BYTES) = 0x00700000,
_LIEF_EI(IMAGE_SCN_ALIGN_128BYTES) = 0x00800000,
_LIEF_EI(IMAGE_SCN_ALIGN_256BYTES) = 0x00900000,
_LIEF_EI(IMAGE_SCN_ALIGN_512BYTES) = 0x00A00000,
_LIEF_EI(IMAGE_SCN_ALIGN_1024BYTES) = 0x00B00000,
_LIEF_EI(IMAGE_SCN_ALIGN_2048BYTES) = 0x00C00000,
_LIEF_EI(IMAGE_SCN_ALIGN_4096BYTES) = 0x00D00000,
_LIEF_EI(IMAGE_SCN_ALIGN_8192BYTES) = 0x00E00000,
_LIEF_EI(IMAGE_SCN_LNK_NRELOC_OVFL) = 0x01000000,
_LIEF_EI(IMAGE_SCN_MEM_DISCARDABLE) = 0x02000000,
_LIEF_EI(IMAGE_SCN_MEM_NOT_CACHED) = 0x04000000,
_LIEF_EI(IMAGE_SCN_MEM_NOT_PAGED) = 0x08000000,
_LIEF_EI(IMAGE_SCN_MEM_SHARED) = 0x10000000,
_LIEF_EI(IMAGE_SCN_MEM_EXECUTE) = 0x20000000,
_LIEF_EI(IMAGE_SCN_MEM_READ) = 0x40000000,
_LIEF_EI(IMAGE_SCN_MEM_WRITE) = 0x80000000
};
//! From https://docs.microsoft.com/en-us/windows/win32/winmsg/extended-window-styles
enum _LIEF_EN(EXTENDED_WINDOW_STYLES) {
_LIEF_EI(WS_EX_DLGMODALFRAME) = 0x00000001L,
_LIEF_EI(WS_EX_NOPARENTNOTIFY) = 0x00000004L,
_LIEF_EI(WS_EX_TOPMOST) = 0x00000008L,
_LIEF_EI(WS_EX_ACCEPTFILES) = 0x00000010L,
_LIEF_EI(WS_EX_TRANSPARENT) = 0x00000020L,
_LIEF_EI(WS_EX_MDICHILD) = 0x00000040L,
_LIEF_EI(WS_EX_TOOLWINDOW) = 0x00000080L,
_LIEF_EI(WS_EX_WINDOWEDGE) = 0x00000100L,
_LIEF_EI(WS_EX_CLIENTEDGE) = 0x00000200L,
_LIEF_EI(WS_EX_CONTEXTHELP) = 0x00000400L,
_LIEF_EI(WS_EX_RIGHT) = 0x00001000L,
_LIEF_EI(WS_EX_LEFT) = 0x00000000L,
_LIEF_EI(WS_EX_RTLREADING) = 0x00002000L,
_LIEF_EI(WS_EX_LTRREADING) = 0x00000000L,
_LIEF_EI(WS_EX_LEFTSCROLLBAR) = 0x00004000L,
_LIEF_EI(WS_EX_RIGHTSCROLLBAR) = 0x00000000L,
_LIEF_EI(WS_EX_CONTROLPARENT) = 0x00010000L,
_LIEF_EI(WS_EX_STATICEDGE) = 0x00020000L,
_LIEF_EI(WS_EX_APPWINDOW) = 0x00040000L,
};
//! From: https://docs.microsoft.com/en-us/windows/win32/winmsg/window-styles
enum _LIEF_EN(WINDOW_STYLES) {
_LIEF_EI(WS_OVERLAPPED) = 0x00000000L,
_LIEF_EI(WS_POPUP) = 0x80000000L,
_LIEF_EI(WS_CHILD) = 0x40000000L,
_LIEF_EI(WS_MINIMIZE) = 0x20000000L,
_LIEF_EI(WS_VISIBLE) = 0x10000000L,
_LIEF_EI(WS_DISABLED) = 0x08000000L,
_LIEF_EI(WS_CLIPSIBLINGS) = 0x04000000L,
_LIEF_EI(WS_CLIPCHILDREN) = 0x02000000L,
_LIEF_EI(WS_MAXIMIZE) = 0x01000000L,
_LIEF_EI(WS_CAPTION) = 0x00C00000L,
_LIEF_EI(WS_BORDER) = 0x00800000L,
_LIEF_EI(WS_DLGFRAME) = 0x00400000L,
_LIEF_EI(WS_VSCROLL) = 0x00200000L,
_LIEF_EI(WS_HSCROLL) = 0x00100000L,
_LIEF_EI(WS_SYSMENU) = 0x00080000L,
_LIEF_EI(WS_THICKFRAME) = 0x00040000L,
_LIEF_EI(WS_GROUP) = 0x00020000L,
_LIEF_EI(WS_TABSTOP) = 0x00010000L,
_LIEF_EI(WS_MINIMIZEBOX) = 0x00020000L,
_LIEF_EI(WS_MAXIMIZEBOX) = 0x00010000L,
};
//! From https://docs.microsoft.com/en-us/windows/win32/dlgbox/dialog-box-styles
enum _LIEF_EN(DIALOG_BOX_STYLES) {
_LIEF_EI(DS_ABSALIGN) = 0x0001L,
_LIEF_EI(DS_SYSMODAL) = 0x0002L,
_LIEF_EI(DS_LOCALEDIT) = 0x0020L,
_LIEF_EI(DS_SETFONT) = 0x0040L,
_LIEF_EI(DS_MODALFRAME) = 0x0080L,
_LIEF_EI(DS_NOIDLEMSG) = 0x0100L,
_LIEF_EI(DS_SETFOREGROUND) = 0x0200L,
_LIEF_EI(DS_3DLOOK) = 0x0004L,
_LIEF_EI(DS_FIXEDSYS) = 0x0008L,
_LIEF_EI(DS_NOFAILCREATE) = 0x0010L,
_LIEF_EI(DS_CONTROL) = 0x0400L,
_LIEF_EI(DS_CENTER) = 0x0800L,
_LIEF_EI(DS_CENTERMOUSE) = 0x1000L,
_LIEF_EI(DS_CONTEXTHELP) = 0x2000L,
_LIEF_EI(DS_SHELLFONT) = 0x0040L | 0x0008L, // DS_SETFONT | DS_FIXEDSYS
};
enum _LIEF_EN(FIXED_VERSION_OS) {
_LIEF_EI(VOS_UNKNOWN) = 0x00000000L,
_LIEF_EI(VOS_DOS) = 0x00010000L,
_LIEF_EI(VOS_NT) = 0x00040000L,
_LIEF_EI(VOS__WINDOWS16) = 0x00000001L,
_LIEF_EI(VOS__WINDOWS32) = 0x00000004L,
_LIEF_EI(VOS_OS216) = 0x00020000L,
_LIEF_EI(VOS_OS232) = 0x00030000L,
_LIEF_EI(VOS__PM16) = 0x00000002L,
_LIEF_EI(VOS__PM32) = 0x00000003L,
_LIEF_EI(VOS_DOS_WINDOWS16) = 0x00010000L | 0x00000001L, // VOS_DOS | VOS__WINDOWS16
_LIEF_EI(VOS_DOS_WINDOWS32) = 0x00010000L | 0x00000004L, // VOS_DOS | VOS__WINDOWS32
_LIEF_EI(VOS_NT_WINDOWS32) = 0x00040000L | 0x00000004L, // VOS_NT | VOS__WINDOWS32
_LIEF_EI(VOS_OS216_PM16) = 0x00020000L | 0x00000002L, // VOS_OS216 | VOS__PM16
_LIEF_EI(VOS_OS232_PM32) = 0x00030000L | 0x00000003L, // VOS_OS232 | VOS__PM32
};
enum _LIEF_EN(FIXED_VERSION_FILE_FLAGS) {
_LIEF_EI(VS_FF_DEBUG) = 0x00000001L,
_LIEF_EI(VS_FF_INFOINFERRED) = 0x00000010L,
_LIEF_EI(VS_FF_PATCHED) = 0x00000004L,
_LIEF_EI(VS_FF_PRERELEASE) = 0x00000002L,
_LIEF_EI(VS_FF_PRIVATEBUILD) = 0x00000008L,
_LIEF_EI(VS_FF_SPECIALBUILD) = 0x00000020L,
};
enum _LIEF_EN(FIXED_VERSION_FILE_TYPES) {
_LIEF_EI(VFT_APP) = 0x00000001L,
_LIEF_EI(VFT_DLL) = 0x00000002L,
_LIEF_EI(VFT_DRV) = 0x00000003L,
_LIEF_EI(VFT_FONT) = 0x00000004L,
_LIEF_EI(VFT_STATIC_LIB) = 0x00000007L,
_LIEF_EI(VFT_UNKNOWN) = 0x00000000L,
_LIEF_EI(VFT_VXD) = 0x00000005L,
};
enum _LIEF_EN(FIXED_VERSION_FILE_SUB_TYPES) {
_LIEF_EI(VFT2_DRV_COMM) = 0x0000000AL,
_LIEF_EI(VFT2_DRV_DISPLAY) = 0x00000004L,
_LIEF_EI(VFT2_DRV_INSTALLABLE) = 0x00000008L,
_LIEF_EI(VFT2_DRV_KEYBOARD) = 0x00000002L,
_LIEF_EI(VFT2_DRV_LANGUAGE) = 0x00000003L,
_LIEF_EI(VFT2_DRV_MOUSE) = 0x00000005L,
_LIEF_EI(VFT2_DRV_NETWORK) = 0x00000006L,
_LIEF_EI(VFT2_DRV_PRINTER) = 0x00000001L,
_LIEF_EI(VFT2_DRV_SOUND) = 0x00000009L,
_LIEF_EI(VFT2_DRV_SYSTEM) = 0x00000007L,
_LIEF_EI(VFT2_DRV_VERSIONED_PRINTER) = 0x0000000CL,
_LIEF_EI(VFT2_FONT_RASTER) = 0x00000001L,
_LIEF_EI(VFT2_FONT_TRUETYPE) = 0x00000003L,
_LIEF_EI(VFT2_FONT_VECTOR) = 0x00000002L,
_LIEF_EI(VFT2_UNKNOWN) = 0x00000000L,
};
//! Code page from https://docs.microsoft.com/en-us/windows/win32/intl/code-page-identifiers
enum _LIEF_EN(CODE_PAGES) {
_LIEF_EI(CP_IBM037) = 37, /**< IBM EBCDIC US-Canada */
_LIEF_EI(CP_IBM437) = 437, /**< OEM United States */
_LIEF_EI(CP_IBM500) = 500, /**< IBM EBCDIC International */
_LIEF_EI(CP_ASMO_708) = 708, /**< Arabic (ASMO 708) */
_LIEF_EI(CP_DOS_720) = 720, /**< Arabic (Transparent ASMO); Arabic (DOS) */
_LIEF_EI(CP_IBM737) = 737, /**< OEM Greek (formerly 437G); Greek (DOS) */
_LIEF_EI(CP_IBM775) = 775, /**< OEM Baltic; Baltic (DOS) */
_LIEF_EI(CP_IBM850) = 850, /**< OEM Multilingual Latin 1; Western European (DOS) */
_LIEF_EI(CP_IBM852) = 852, /**< OEM Latin 2; Central European (DOS) */
_LIEF_EI(CP_IBM855) = 855, /**< OEM Cyrillic (primarily Russian) */
_LIEF_EI(CP_IBM857) = 857, /**< OEM Turkish; Turkish (DOS) */
_LIEF_EI(CP_IBM00858) = 858, /**< OEM Multilingual Latin 1 + Euro symbol */
_LIEF_EI(CP_IBM860) = 860, /**< OEM Portuguese; Portuguese (DOS) */
_LIEF_EI(CP_IBM861) = 861, /**< OEM Icelandic; Icelandic (DOS) */
_LIEF_EI(CP_DOS_862) = 862, /**< OEM Hebrew; Hebrew (DOS) */
_LIEF_EI(CP_IBM863) = 863, /**< OEM French Canadian; French Canadian (DOS) */
_LIEF_EI(CP_IBM864) = 864, /**< OEM Arabic; Arabic (864) */
_LIEF_EI(CP_IBM865) = 865, /**< OEM Nordic; Nordic (DOS) */
_LIEF_EI(CP_CP866) = 866, /**< OEM Russian; Cyrillic (DOS) */
_LIEF_EI(CP_IBM869) = 869, /**< OEM Modern Greek; Greek, Modern (DOS) */
_LIEF_EI(CP_IBM870) = 870, /**< IBM EBCDIC Multilingual/ROECE (Latin 2); IBM EBCDIC Multilingual Latin 2 */
_LIEF_EI(CP_WINDOWS_874) = 874, /**< ANSI/OEM Thai (same as 28605, ISO 8859-15); Thai (Windows) */
_LIEF_EI(CP_CP875) = 875, /**< IBM EBCDIC Greek Modern */
_LIEF_EI(CP_SHIFT_JIS) = 932, /**< ANSI/OEM Japanese; Japanese (Shift-JIS) */
_LIEF_EI(CP_GB2312) = 936, /**< ANSI/OEM Simplified Chinese (PRC, Singapore); Chinese Simplified (GB2312) */
_LIEF_EI(CP_KS_C_5601_1987) = 949, /**< ANSI/OEM Korean (Unified Hangul Code) */
_LIEF_EI(CP_BIG5) = 950, /**< ANSI/OEM Traditional Chinese (Taiwan; Hong Kong SAR, PRC); Chinese Traditional (Big5) */
_LIEF_EI(CP_IBM1026) = 1026, /**< IBM EBCDIC Turkish (Latin 5) */
_LIEF_EI(CP_IBM01047) = 1047, /**< IBM EBCDIC Latin 1/Open System */
_LIEF_EI(CP_IBM01140) = 1140, /**< IBM EBCDIC US-Canada (037 + Euro symbol); IBM EBCDIC (US-Canada-Euro) */
_LIEF_EI(CP_IBM01141) = 1141, /**< IBM EBCDIC Germany (20273 + Euro symbol); IBM EBCDIC (Germany-Euro) */
_LIEF_EI(CP_IBM01142) = 1142, /**< IBM EBCDIC Denmark-Norway (20277 + Euro symbol); IBM EBCDIC (Denmark-Norway-Euro) */
_LIEF_EI(CP_IBM01143) = 1143, /**< IBM EBCDIC Finland-Sweden (20278 + Euro symbol); IBM EBCDIC (Finland-Sweden-Euro) */
_LIEF_EI(CP_IBM01144) = 1144, /**< IBM EBCDIC Italy (20280 + Euro symbol); IBM EBCDIC (Italy-Euro) */
_LIEF_EI(CP_IBM01145) = 1145, /**< IBM EBCDIC Latin America-Spain (20284 + Euro symbol); IBM EBCDIC (Spain-Euro) */
_LIEF_EI(CP_IBM01146) = 1146, /**< IBM EBCDIC United Kingdom (20285 + Euro symbol); IBM EBCDIC (UK-Euro) */
_LIEF_EI(CP_IBM01147) = 1147, /**< IBM EBCDIC France (20297 + Euro symbol); IBM EBCDIC (France-Euro) */
_LIEF_EI(CP_IBM01148) = 1148, /**< IBM EBCDIC International (500 + Euro symbol); IBM EBCDIC (International-Euro) */
_LIEF_EI(CP_IBM01149) = 1149, /**< IBM EBCDIC Icelandic (20871 + Euro symbol); IBM EBCDIC (Icelandic-Euro) */
_LIEF_EI(CP_UTF_16) = 1200, /**< Unicode UTF-16, little endian byte order (BMP of ISO 10646); available only to managed applications */
_LIEF_EI(CP_UNICODEFFFE) = 1201, /**< Unicode UTF-16, big endian byte order; available only to managed applications */
_LIEF_EI(CP_WINDOWS_1250) = 1250, /**< ANSI Central European; Central European (Windows) */
_LIEF_EI(CP_WINDOWS_1251) = 1251, /**< ANSI Cyrillic; Cyrillic (Windows) */
_LIEF_EI(CP_WINDOWS_1252) = 1252, /**< ANSI Latin 1; Western European (Windows) */
_LIEF_EI(CP_WINDOWS_1253) = 1253, /**< ANSI Greek; Greek (Windows) */
_LIEF_EI(CP_WINDOWS_1254) = 1254, /**< ANSI Turkish; Turkish (Windows) */
_LIEF_EI(CP_WINDOWS_1255) = 1255, /**< ANSI Hebrew; Hebrew (Windows) */
_LIEF_EI(CP_WINDOWS_1256) = 1256, /**< ANSI Arabic; Arabic (Windows) */
_LIEF_EI(CP_WINDOWS_1257) = 1257, /**< ANSI Baltic; Baltic (Windows) */
_LIEF_EI(CP_WINDOWS_1258) = 1258, /**< ANSI/OEM Vietnamese; Vietnamese (Windows) */
_LIEF_EI(CP_JOHAB) = 1361, /**< Korean (Johab) */
_LIEF_EI(CP_MACINTOSH) = 10000, /**< MAC Roman; Western European (Mac) */
_LIEF_EI(CP_X_MAC_JAPANESE) = 10001, /**< Japanese (Mac) */
_LIEF_EI(CP_X_MAC_CHINESETRAD) = 10002, /**< MAC Traditional Chinese (Big5); Chinese Traditional (Mac) */
_LIEF_EI(CP_X_MAC_KOREAN) = 10003, /**< Korean (Mac) */
_LIEF_EI(CP_X_MAC_ARABIC) = 10004, /**< Arabic (Mac) */
_LIEF_EI(CP_X_MAC_HEBREW) = 10005, /**< Hebrew (Mac) */
_LIEF_EI(CP_X_MAC_GREEK) = 10006, /**< Greek (Mac) */
_LIEF_EI(CP_X_MAC_CYRILLIC) = 10007, /**< Cyrillic (Mac) */
_LIEF_EI(CP_X_MAC_CHINESESIMP) = 10008, /**< MAC Simplified Chinese (GB 2312); Chinese Simplified (Mac) */
_LIEF_EI(CP_X_MAC_ROMANIAN) = 10010, /**< Romanian (Mac) */
_LIEF_EI(CP_X_MAC_UKRAINIAN) = 10017, /**< Ukrainian (Mac) */
_LIEF_EI(CP_X_MAC_THAI) = 10021, /**< Thai (Mac) */
_LIEF_EI(CP_X_MAC_CE) = 10029, /**< MAC Latin 2; Central European (Mac) */
_LIEF_EI(CP_X_MAC_ICELANDIC) = 10079, /**< Icelandic (Mac) */
_LIEF_EI(CP_X_MAC_TURKISH) = 10081, /**< Turkish (Mac) */
_LIEF_EI(CP_X_MAC_CROATIAN) = 10082, /**< Croatian (Mac) */
_LIEF_EI(CP_UTF_32) = 12000, /**< Unicode UTF-32, little endian byte order; available only to managed applications */
_LIEF_EI(CP_UTF_32BE) = 12001, /**< Unicode UTF-32, big endian byte order; available only to managed applications */
_LIEF_EI(CP_X_CHINESE_CNS) = 20000, /**< CNS Taiwan; Chinese Traditional (CNS) */
_LIEF_EI(CP_X_CP20001) = 20001, /**< TCA Taiwan */
_LIEF_EI(CP_X_CHINESE_ETEN) = 20002, /**< Eten Taiwan; Chinese Traditional (Eten) */
_LIEF_EI(CP_X_CP20003) = 20003, /**< IBM5550 Taiwan */
_LIEF_EI(CP_X_CP20004) = 20004, /**< TeleText Taiwan */
_LIEF_EI(CP_X_CP20005) = 20005, /**< Wang Taiwan */
_LIEF_EI(CP_X_IA5) = 20105, /**< IA5 (IRV International Alphabet No. 5, 7-bit); Western European (IA5) */
_LIEF_EI(CP_X_IA5_GERMAN) = 20106, /**< IA5 German (7-bit) */
_LIEF_EI(CP_X_IA5_SWEDISH) = 20107, /**< IA5 Swedish (7-bit) */
_LIEF_EI(CP_X_IA5_NORWEGIAN) = 20108, /**< IA5 Norwegian (7-bit) */
_LIEF_EI(CP_US_ASCII) = 20127, /**< US-ASCII (7-bit) */
_LIEF_EI(CP_X_CP20261) = 20261, /**< T.61 */
_LIEF_EI(CP_X_CP20269) = 20269, /**< ISO 6937 Non-Spacing Accent */
_LIEF_EI(CP_IBM273) = 20273, /**< IBM EBCDIC Germany */
_LIEF_EI(CP_IBM277) = 20277, /**< IBM EBCDIC Denmark-Norway */
_LIEF_EI(CP_IBM278) = 20278, /**< IBM EBCDIC Finland-Sweden */
_LIEF_EI(CP_IBM280) = 20280, /**< IBM EBCDIC Italy */
_LIEF_EI(CP_IBM284) = 20284, /**< IBM EBCDIC Latin America-Spain */
_LIEF_EI(CP_IBM285) = 20285, /**< IBM EBCDIC United Kingdom */
_LIEF_EI(CP_IBM290) = 20290, /**< IBM EBCDIC Japanese Katakana Extended */
_LIEF_EI(CP_IBM297) = 20297, /**< IBM EBCDIC France */
_LIEF_EI(CP_IBM420) = 20420, /**< IBM EBCDIC Arabic */
_LIEF_EI(CP_IBM423) = 20423, /**< IBM EBCDIC Greek */
_LIEF_EI(CP_IBM424) = 20424, /**< IBM EBCDIC Hebrew */
_LIEF_EI(CP_X_EBCDIC_KOREANEXTENDED) = 20833, /**< IBM EBCDIC Korean Extended */
_LIEF_EI(CP_IBM_THAI) = 20838, /**< IBM EBCDIC Thai */
_LIEF_EI(CP_KOI8_R) = 20866, /**< Russian (KOI8-R); Cyrillic (KOI8-R) */
_LIEF_EI(CP_IBM871) = 20871, /**< IBM EBCDIC Icelandic */
_LIEF_EI(CP_IBM880) = 20880, /**< IBM EBCDIC Cyrillic Russian */
_LIEF_EI(CP_IBM905) = 20905, /**< IBM EBCDIC Turkish */
_LIEF_EI(CP_IBM00924) = 20924, /**< IBM EBCDIC Latin 1/Open System (1047 + Euro symbol) */
_LIEF_EI(CP_EUC_JP_JIS) = 20932, /**< Japanese (JIS 0208-1990 and 0121-1990) */
_LIEF_EI(CP_X_CP20936) = 20936, /**< Simplified Chinese (GB2312); Chinese Simplified (GB2312-80) */
_LIEF_EI(CP_X_CP20949) = 20949, /**< Korean Wansung */
_LIEF_EI(CP_CP1025) = 21025, /**< IBM EBCDIC Cyrillic Serbian-Bulgarian */
_LIEF_EI(CP_KOI8_U) = 21866, /**< Ukrainian (KOI8-U); Cyrillic (KOI8-U) */
_LIEF_EI(CP_ISO_8859_1) = 28591, /**< ISO 8859-1 Latin 1; Western European (ISO) */
_LIEF_EI(CP_ISO_8859_2) = 28592, /**< ISO 8859-2 Central European; Central European (ISO) */
_LIEF_EI(CP_ISO_8859_3) = 28593, /**< ISO 8859-3 Latin 3 */
_LIEF_EI(CP_ISO_8859_4) = 28594, /**< ISO 8859-4 Baltic */
_LIEF_EI(CP_ISO_8859_5) = 28595, /**< ISO 8859-5 Cyrillic */
_LIEF_EI(CP_ISO_8859_6) = 28596, /**< ISO 8859-6 Arabic */
_LIEF_EI(CP_ISO_8859_7) = 28597, /**< ISO 8859-7 Greek */
_LIEF_EI(CP_ISO_8859_8) = 28598, /**< ISO 8859-8 Hebrew; Hebrew (ISO-Visual) */
_LIEF_EI(CP_ISO_8859_9) = 28599, /**< ISO 8859-9 Turkish */
_LIEF_EI(CP_ISO_8859_13) = 28603, /**< ISO 8859-13 Estonian */
_LIEF_EI(CP_ISO_8859_15) = 28605, /**< ISO 8859-15 Latin 9 */
_LIEF_EI(CP_X_EUROPA) = 29001, /**< Europa 3 */
_LIEF_EI(CP_ISO_8859_8_I) = 38598, /**< ISO 8859-8 Hebrew; Hebrew (ISO-Logical) */
_LIEF_EI(CP_ISO_2022_JP) = 50220, /**< ISO 2022 Japanese with no halfwidth Katakana; Japanese (JIS) */
_LIEF_EI(CP_CSISO2022JP) = 50221, /**< ISO 2022 Japanese with halfwidth Katakana; Japanese (JIS-Allow 1 byte Kana) */
_LIEF_EI(CP_ISO_2022_JP_JIS) = 50222, /**< ISO 2022 Japanese JIS X 0201-1989; Japanese (JIS-Allow 1 byte Kana - SO/SI) */
_LIEF_EI(CP_ISO_2022_KR) = 50225, /**< ISO 2022 Korean */
_LIEF_EI(CP_X_CP50227) = 50227, /**< ISO 2022 Simplified Chinese; Chinese Simplified (ISO 2022) */
_LIEF_EI(CP_EUC_JP) = 51932, /**< EUC Japanese */
_LIEF_EI(CP_EUC_CN) = 51936, /**< EUC Simplified Chinese; Chinese Simplified (EUC) */
_LIEF_EI(CP_EUC_KR) = 51949, /**< EUC Korean */
_LIEF_EI(CP_HZ_GB_2312) = 52936, /**< HZ-GB2312 Simplified Chinese; Chinese Simplified (HZ) */
_LIEF_EI(CP_GB18030) = 54936, /**< Windows XP and later: GB18030 Simplified Chinese (4 byte); Chinese Simplified (GB18030) */
_LIEF_EI(CP_X_ISCII_DE) = 57002, /**< ISCII Devanagari */
_LIEF_EI(CP_X_ISCII_BE) = 57003, /**< ISCII Bengali */
_LIEF_EI(CP_X_ISCII_TA) = 57004, /**< ISCII Tamil */
_LIEF_EI(CP_X_ISCII_TE) = 57005, /**< ISCII Telugu */
_LIEF_EI(CP_X_ISCII_AS) = 57006, /**< ISCII Assamese */
_LIEF_EI(CP_X_ISCII_OR) = 57007, /**< ISCII Oriya */
_LIEF_EI(CP_X_ISCII_KA) = 57008, /**< ISCII Kannada */
_LIEF_EI(CP_X_ISCII_MA) = 57009, /**< ISCII Malayalam */
_LIEF_EI(CP_X_ISCII_GU) = 57010, /**< ISCII Gujarati */
_LIEF_EI(CP_X_ISCII_PA) = 57011, /**< ISCII Punjabi */
_LIEF_EI(CP_UTF_7) = 65000, /**< Unicode (UTF-7) */
_LIEF_EI(CP_UTF_8) = 65001, /**< Unicode (UTF-8) */
};
enum _LIEF_EN(WIN_VERSION) {
_LIEF_EI(WIN_UNKNOWN) = 0,
_LIEF_EI(WIN_SEH) = 1,
_LIEF_EI(WIN8_1) = 2,
_LIEF_EI(WIN10_0_9879) = 3,
_LIEF_EI(WIN10_0_14286) = 4,
_LIEF_EI(WIN10_0_14383) = 5,
_LIEF_EI(WIN10_0_14901) = 6,
_LIEF_EI(WIN10_0_15002) = 7,
_LIEF_EI(WIN10_0_16237) = 8,
};
enum _LIEF_EN(GUARD_CF_FLAGS) {
_LIEF_EI(GCF_NONE) = 0x00000000,
_LIEF_EI(GCF_INSTRUMENTED) = 0x00000100, /**< Module performs control flow integrity checks using system-supplied support */
_LIEF_EI(GCF_W_INSTRUMENTED) = 0x00000200, /**< Module performs control flow and write integrity checks */
_LIEF_EI(GCF_FUNCTION_TABLE_PRESENT) = 0x00000400, /**< Module contains valid control flow target metadata */
_LIEF_EI(GCF_EXPORT_SUPPRESSION_INFO_PRESENT) = 0x00004000, /**< Module contains suppressed export information. This also infers that the address taken taken IAT table is also present in the load config. */
_LIEF_EI(GCF_ENABLE_EXPORT_SUPPRESSION) = 0x00008000, /**< Module enables suppression of exports */
_LIEF_EI(GCF_LONGJUMP_TABLE_PRESENT) = 0x00010000, /**< Module contains longjmp target information */
_LIEF_EI(GRF_INSTRUMENTED) = 0x00020000, /**< Module contains return flow instrumentation and metadata */
_LIEF_EI(GRF_ENABLE) = 0x00040000, /**< Module requests that the OS enable return flow protection */
_LIEF_EI(GRF_STRICT) = 0x00080000, /**< Module requests that the OS enable return flow protection in strict mode */
};
//! From https://docs.microsoft.com/en-us/windows/win32/menurc/acceltableentry
enum _LIEF_EN(ACCELERATOR_FLAGS) {
_LIEF_EI(FVIRTKEY) = 0x01,
_LIEF_EI(FNOINVERT) = 0x02,
_LIEF_EI(FSHIFT) = 0x04,
_LIEF_EI(FCONTROL) = 0x08,
_LIEF_EI(FALT) = 0x10,
_LIEF_EI(END) = 0x80,
};
//! From https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes
enum _LIEF_EN(ACCELERATOR_VK_CODES) {
_LIEF_EI(VK_LBUTTON) = 0x01,
_LIEF_EI(VK_RBUTTON) = 0x02,
_LIEF_EI(VK_CANCEL) = 0x03,
_LIEF_EI(VK_MBUTTON) = 0x04,
_LIEF_EI(VK_XBUTTON1) = 0x05,
_LIEF_EI(VK_XBUTTON2) = 0x06,
_LIEF_EI(VK_BACK) = 0x08,
_LIEF_EI(VK_TAB) = 0x09,
_LIEF_EI(VK_CLEAR) = 0x0C,
_LIEF_EI(VK_RETURN) = 0x0D,
_LIEF_EI(VK_SHIFT) = 0x10,
_LIEF_EI(VK_CONTROL) = 0x11,
_LIEF_EI(VK_MENU) = 0x12,
_LIEF_EI(VK_PAUSE) = 0x13,
_LIEF_EI(VK_CAPITAL) = 0x14,
_LIEF_EI(VK_KANA) = 0x15,
_LIEF_EI(VK_HANGUEL) = 0x15,
_LIEF_EI(VK_HANGUL) = 0x15,
_LIEF_EI(VK_IME_ON) = 0x16,
_LIEF_EI(VK_JUNJA) = 0x17,
_LIEF_EI(VK_FINAL) = 0x18,
_LIEF_EI(VK_HANJA) = 0x19,
_LIEF_EI(VK_KANJI) = 0x19,
_LIEF_EI(VK_IME_OFF) = 0x1A,
_LIEF_EI(VK_ESCAPE) = 0x1B,
_LIEF_EI(VK_CONVERT) = 0x1C,
_LIEF_EI(VK_NONCONVERT) = 0x1D,
_LIEF_EI(VK_ACCEPT) = 0x1E,
_LIEF_EI(VK_MODECHANGE) = 0x1F,
_LIEF_EI(VK_SPACE) = 0x20,
_LIEF_EI(VK_PRIOR) = 0x21,
_LIEF_EI(VK_NEXT) = 0x22,
_LIEF_EI(VK_END) = 0x23,
_LIEF_EI(VK_HOME) = 0x24,
_LIEF_EI(VK_LEFT) = 0x25,
_LIEF_EI(VK_UP) = 0x26,
_LIEF_EI(VK_RIGHT) = 0x27,
_LIEF_EI(VK_DOWN) = 0x28,
_LIEF_EI(VK_SELECT) = 0x29,
_LIEF_EI(VK_PRINT) = 0x2A,
_LIEF_EI(VK_EXECUTE) = 0x2B,
_LIEF_EI(VK_SNAPSHOT) = 0x2C,
_LIEF_EI(VK_INSERT) = 0x2D,
_LIEF_EI(VK_DELETE) = 0x2E,
_LIEF_EI(VK_HELP) = 0x2F,
_LIEF_EI(VK_0) = 0x30,
_LIEF_EI(VK_1) = 0x31,
_LIEF_EI(VK_2) = 0x32,
_LIEF_EI(VK_3) = 0x33,
_LIEF_EI(VK_4) = 0x34,
_LIEF_EI(VK_5) = 0x35,
_LIEF_EI(VK_6) = 0x36,
_LIEF_EI(VK_7) = 0x37,
_LIEF_EI(VK_8) = 0x38,
_LIEF_EI(VK_9) = 0x39,
_LIEF_EI(VK_A) = 0x41,
_LIEF_EI(VK_B) = 0x42,
_LIEF_EI(VK_C) = 0x43,
_LIEF_EI(VK_D) = 0x44,
_LIEF_EI(VK_E) = 0x45,
_LIEF_EI(VK_F) = 0x46,
_LIEF_EI(VK_G) = 0x47,
_LIEF_EI(VK_H) = 0x48,
_LIEF_EI(VK_I) = 0x49,
_LIEF_EI(VK_J) = 0x4A,
_LIEF_EI(VK_K) = 0x4B,
_LIEF_EI(VK_L) = 0x4C,
_LIEF_EI(VK_M) = 0x4D,
_LIEF_EI(VK_N) = 0x4E,
_LIEF_EI(VK_O) = 0x4F,
_LIEF_EI(VK_P) = 0x50,
_LIEF_EI(VK_Q) = 0x51,
_LIEF_EI(VK_R) = 0x52,
_LIEF_EI(VK_S) = 0x53,
_LIEF_EI(VK_T) = 0x54,
_LIEF_EI(VK_U) = 0x55,
_LIEF_EI(VK_V) = 0x56,
_LIEF_EI(VK_W) = 0x57,
_LIEF_EI(VK_X) = 0x58,
_LIEF_EI(VK_Y) = 0x59,
_LIEF_EI(VK_Z) = 0x60,
_LIEF_EI(VK_LWIN) = 0x5B,
_LIEF_EI(VK_RWIN) = 0x5C,
_LIEF_EI(VK_APPS) = 0x5D,
_LIEF_EI(VK_SLEEP) = 0x5F,
_LIEF_EI(VK_NUMPAD0) = 0x60,
_LIEF_EI(VK_NUMPAD1) = 0x61,
_LIEF_EI(VK_NUMPAD2) = 0x62,
_LIEF_EI(VK_NUMPAD3) = 0x63,
_LIEF_EI(VK_NUMPAD4) = 0x64,
_LIEF_EI(VK_NUMPAD5) = 0x65,
_LIEF_EI(VK_NUMPAD6) = 0x66,
_LIEF_EI(VK_NUMPAD7) = 0x67,
_LIEF_EI(VK_NUMPAD8) = 0x68,
_LIEF_EI(VK_NUMPAD9) = 0x69,
_LIEF_EI(VK_MULTIPLY) = 0x6A,
_LIEF_EI(VK_ADD) = 0x6B,
_LIEF_EI(VK_SEPARATOR) = 0x6C,
_LIEF_EI(VK_SUBTRACT) = 0x6D,
_LIEF_EI(VK_DECIMAL) = 0x6E,
_LIEF_EI(VK_DIVIDE) = 0x6F,
_LIEF_EI(VK_F1) = 0x70,
_LIEF_EI(VK_F2) = 0x71,
_LIEF_EI(VK_F3) = 0x72,
_LIEF_EI(VK_F4) = 0x73,
_LIEF_EI(VK_F5) = 0x74,
_LIEF_EI(VK_F6) = 0x75,
_LIEF_EI(VK_F7) = 0x76,
_LIEF_EI(VK_F8) = 0x77,
_LIEF_EI(VK_F9) = 0x78,
_LIEF_EI(VK_F10) = 0x79,
_LIEF_EI(VK_F11) = 0x7A,
_LIEF_EI(VK_F12) = 0x7B,
_LIEF_EI(VK_F13) = 0x7C,
_LIEF_EI(VK_F14) = 0x7D,
_LIEF_EI(VK_F15) = 0x7E,
_LIEF_EI(VK_F16) = 0x7F,
_LIEF_EI(VK_F17) = 0x80,
_LIEF_EI(VK_F18) = 0x81,
_LIEF_EI(VK_F19) = 0x82,
_LIEF_EI(VK_F20) = 0x83,
_LIEF_EI(VK_F21) = 0x84,
_LIEF_EI(VK_F22) = 0x85,
_LIEF_EI(VK_F23) = 0x86,
_LIEF_EI(VK_F24) = 0x87,
_LIEF_EI(VK_NUMLOCK) = 0x90,
_LIEF_EI(VK_SCROLL) = 0x91,
_LIEF_EI(VK_LSHIFT) = 0xA0,
_LIEF_EI(VK_RSHIFT) = 0xA1,
_LIEF_EI(VK_LCONTROL) = 0xA2,
_LIEF_EI(VK_RCONTROL) = 0xA3,
_LIEF_EI(VK_LMENU) = 0xA4,
_LIEF_EI(VK_RMENU) = 0xA5,
_LIEF_EI(VK_BROWSER_BACK) = 0xA6,
_LIEF_EI(VK_BROWSER_FORWARD) = 0xA7,
_LIEF_EI(VK_BROWSER_REFRESH) = 0xA8,
_LIEF_EI(VK_BROWSER_STOP) = 0xA9,
_LIEF_EI(VK_BROWSER_SEARCH) = 0xAA,
_LIEF_EI(VK_BROWSER_FAVORITES) = 0xAB,
_LIEF_EI(VK_BROWSER_HOME) = 0xAC,
_LIEF_EI(VK_VOLUME_MUTE) = 0xAD,
_LIEF_EI(VK_VOLUME_DOWN) = 0xAE,
_LIEF_EI(VK_VOLUME_UP) = 0xAF,
_LIEF_EI(VK_MEDIA_NEXT_TRACK) = 0xB0,
_LIEF_EI(VK_MEDIA_PREV_TRACK) = 0xB1,
_LIEF_EI(VK_MEDIA_STOP) = 0xB2,
_LIEF_EI(VK_MEDIA_PLAY_PAUSE) = 0xB3,
_LIEF_EI(VK_LAUNCH_MAIL) = 0xB4,
_LIEF_EI(VK_LAUNCH_MEDIA_SELECT) = 0xB5,
_LIEF_EI(VK_LAUNCH_APP1) = 0xB6,
_LIEF_EI(VK_LAUNCH_APP2) = 0xB7,
_LIEF_EI(VK_OEM_1) = 0xBA,
_LIEF_EI(VK_OEM_PLUS) = 0xBB,
_LIEF_EI(VK_OEM_COMMA) = 0xBC,
_LIEF_EI(VK_OEM_MINUS) = 0xBD,
_LIEF_EI(VK_OEM_PERIOD) = 0xBE,
_LIEF_EI(VK_OEM_2) = 0xBF,
_LIEF_EI(VK_OEM_4) = 0xDB,
_LIEF_EI(VK_OEM_5) = 0xDC,
_LIEF_EI(VK_OEM_6) = 0xDD,
_LIEF_EI(VK_OEM_7) = 0xDE,
_LIEF_EI(VK_OEM_8) = 0xDF,
_LIEF_EI(VK_OEM_102) = 0xE2,
_LIEF_EI(VK_PROCESSKEY) = 0xE5,
_LIEF_EI(VK_PACKET) = 0xE7,
_LIEF_EI(VK_ATTN) = 0xF6,
_LIEF_EI(VK_CRSEL) = 0xF7,
_LIEF_EI(VK_EXSEL) = 0xF8,
_LIEF_EI(VK_EREOF) = 0xF9,
_LIEF_EI(VK_PLAY) = 0xFA,
_LIEF_EI(VK_ZOOM) = 0xFB,
_LIEF_EI(VK_NONAME) = 0xFC,
_LIEF_EI(VK_PA1) = 0xFD,
_LIEF_EI(VK_OEM_CLEAR) = 0xFE,
};