4
0
mirror of https://github.com/QuasarApp/LIEF.git synced 2025-05-10 10:49:33 +00:00

Merge pull request from kohnakagawa/fix/reloc_base_types

add missing RELOCATIONS_BASE_TYPES
This commit is contained in:
Romain 2020-05-03 20:18:24 +02:00 committed by GitHub
commit 84ffe2d478
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 42 additions and 14 deletions
api/python/PE
include/LIEF/PE
src/PE

@ -235,9 +235,16 @@ void init_enums(py::module& m) {
.value(PY_ENUM(LIEF::PE::RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_HIGHLOW))
.value(PY_ENUM(LIEF::PE::RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_HIGHADJ))
.value(PY_ENUM(LIEF::PE::RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_MIPS_JMPADDR))
.value("ARM_MOV32A", LIEF::PE::RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_ARM_MOV32A)
.value("ARM_MOV32", LIEF::PE::RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_ARM_MOV32)
.value("RISCV_HI20", LIEF::PE::RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_RISCV_HI20)
.value("ARM_MOV32T", LIEF::PE::RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_ARM_MOV32T)
.value("THUMB_MOV32", LIEF::PE::RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_THUMB_MOV32)
.value("RISCV_LOW12I", LIEF::PE::RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_RISCV_LOW12I)
.value("RISCV_LOW12S", LIEF::PE::RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_RISCV_LOW12S)
.value(PY_ENUM(LIEF::PE::RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_SECTION))
.value(PY_ENUM(LIEF::PE::RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_REL))
.value("JMPADDR16", LIEF::PE::RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_MIPS_JMPADDR16)
.value("MIPS_JMPADDR16", LIEF::PE::RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_MIPS_JMPADDR16)
.value(PY_ENUM(LIEF::PE::RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_IA64_IMM64))
.value(PY_ENUM(LIEF::PE::RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_DIR64))
.value(PY_ENUM(LIEF::PE::RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_HIGH3ADJ));

@ -133,8 +133,15 @@ enum _LIEF_EN(RELOCATIONS_BASE_TYPES) {
_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,

@ -145,6 +145,13 @@
#undef IMAGE_REL_I386_TOKEN
#undef IMAGE_REL_I386_SECREL7
#undef IMAGE_REL_I386_REL32
#undef IMAGE_REL_BASED_ARM_MOV32A
#undef IMAGE_REL_BASED_ARM_MOV32
#undef IMAGE_REL_BASED_RISCV_HI20
#undef IMAGE_REL_BASED_ARM_MOV32T
#undef IMAGE_REL_BASED_THUMB_MOV32
#undef IMAGE_REL_BASED_RISCV_LOW12I
#undef IMAGE_REL_BASED_RISCV_LOW12S
#undef IMAGE_REL_AMD64_ABSOLUTE
#undef IMAGE_REL_AMD64_ADDR64

@ -364,18 +364,26 @@ const char* to_string(RELOCATIONS_ARM e) {
const char* to_string(RELOCATIONS_BASE_TYPES e) {
CONST_MAP(RELOCATIONS_BASE_TYPES, const char*, 11) enumStrings {
{ RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_ABSOLUTE, "ABSOLUTE" },
{ RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_HIGH, "HIGH" },
{ RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_LOW, "LOW" },
{ RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_HIGHLOW, "HIGHLOW" },
{ RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_HIGHADJ, "HIGHADJ" },
{ RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_MIPS_JMPADDR, "JMPADDR" },
{ RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_SECTION, "SECTION" },
{ RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_REL, "REL" },
{ RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_IA64_IMM64, "IMM64" },
{ RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_DIR64, "DIR64" },
{ RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_HIGH3ADJ, "HIGH3ADJ" }
CONST_MAP(RELOCATIONS_BASE_TYPES, const char*, 19) enumStrings {
{ RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_ABSOLUTE, "ABSOLUTE" },
{ RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_HIGH, "HIGH" },
{ RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_LOW, "LOW" },
{ RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_HIGHLOW, "HIGHLOW" },
{ RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_HIGHADJ, "HIGHADJ" },
{ RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_MIPS_JMPADDR, "MIPS_JMPADDR | ARM_MOV32A | ARM_MOV32 | RISCV_HI20" },
{ RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_ARM_MOV32A, "MIPS_JMPADDR | ARM_MOV32A | ARM_MOV32 | RISCV_HI20" },
{ RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_ARM_MOV32, "MIPS_JMPADDR | ARM_MOV32A | ARM_MOV32 | RISCV_HI20" },
{ RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_RISCV_HI20, "MIPS_JMPADDR | ARM_MOV32A | ARM_MOV32 | RISCV_HI20" },
{ RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_SECTION, "SECTION" },
{ RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_REL, "REL | ARM_MOV32T | THUMB_MOV32 | RISCV_LOW12I" },
{ RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_ARM_MOV32T, "REL | ARM_MOV32T | THUMB_MOV32 | RISCV_LOW12I" },
{ RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_THUMB_MOV32, "REL | ARM_MOV32T | THUMB_MOV32 | RISCV_LOW12I" },
{ RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_RISCV_LOW12I, "REL | ARM_MOV32T | THUMB_MOV32 | RISCV_LOW12I" },
{ RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_RISCV_LOW12S, "RISCV_LOW12S" },
{ RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_MIPS_JMPADDR16, "MIPS_JMPADDR16 | IA64_DIR64" },
{ RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_IA64_IMM64, "MIPS_JMPADDR16 | IA64_DIR64" },
{ RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_DIR64, "DIR64" },
{ RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_HIGH3ADJ, "HIGH3ADJ" },
};
auto it = enumStrings.find(e);
@ -383,7 +391,6 @@ const char* to_string(RELOCATIONS_BASE_TYPES e) {
}
const char* to_string(DEBUG_TYPES e) {
CONST_MAP(DEBUG_TYPES, const char*, 17) enumStrings {
{ DEBUG_TYPES::IMAGE_DEBUG_TYPE_UNKNOWN, "UNKNOWN" },