diff options
Diffstat (limited to 'courgette/disassembler_elf_32_x86.h')
-rw-r--r-- | courgette/disassembler_elf_32_x86.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/courgette/disassembler_elf_32_x86.h b/courgette/disassembler_elf_32_x86.h index 28de7cf..5e7cdff 100644 --- a/courgette/disassembler_elf_32_x86.h +++ b/courgette/disassembler_elf_32_x86.h @@ -16,6 +16,17 @@ class AssemblyProgram; class DisassemblerElf32X86 : public DisassemblerElf32 { public: + class TypedRVAX86 : public TypedRVA { + public: + explicit TypedRVAX86(RVA rva) : TypedRVA(rva) { + } + + virtual CheckBool ComputeRelativeTarget(const uint8* op_pointer) OVERRIDE { + set_relative_target(Read32LittleEndian(op_pointer) + 4); + return true; + } + }; + explicit DisassemblerElf32X86(const void* start, size_t length); virtual ExecutableType kind() { return EXE_ELF_32_X86; } |