X-Git-Url: https://git.siccegge.de//index.cgi?p=frida%2Ffrida.git;a=blobdiff_plain;f=src%2Fdisassembler%2Fllvm%2FLLVMDisassembler.cxx;h=18cfe8065eefc0fb5e409d7978408e50dd47a1b2;hp=8dd548332bf4f1f01106cd2020db3b137e13b626;hb=c862852c36741e1be13abff538e526114e3d828c;hpb=879c174dd56331b6c7b3254edd115e46a0b5e78c diff --git a/src/disassembler/llvm/LLVMDisassembler.cxx b/src/disassembler/llvm/LLVMDisassembler.cxx index 8dd5483..18cfe80 100644 --- a/src/disassembler/llvm/LLVMDisassembler.cxx +++ b/src/disassembler/llvm/LLVMDisassembler.cxx @@ -320,16 +320,11 @@ void LLVMDisassembler::disassemble() { } if (binary->isELF()) { - bool is64bit = (binary->getData()[4] == 0x02); + typedef ELFFile ELFO; + const ELFO * elffile = o->getELFFile(); + const typename ELFO::Elf_Ehdr * header = elffile->getHeader(); - for (int i(0); i < (is64bit? 8 : 4); ++i) { - if (binary->isLittleEndian()) { - _entryAddress |= (unsigned int)((unsigned char)binary->getData()[0x18 + i]) << 8*i; - } else { - _entryAddress = _entryAddress << 8; - _entryAddress |= (unsigned char)binary->getData()[0x18 + i]; - } - } + _entryAddress = header->e_entry; LOG4CXX_DEBUG(logger, "Adding entryAddress at: " << std::hex << _entryAddress); std::stringstream s; s << "<_start 0x" << std::hex << _entryAddress << ">";