diff options
Diffstat (limited to 'view/elf/elfview.cpp')
| -rw-r--r-- | view/elf/elfview.cpp | 12 |
1 files changed, 1 insertions, 11 deletions
diff --git a/view/elf/elfview.cpp b/view/elf/elfview.cpp index 6d19bc5f..bb193495 100644 --- a/view/elf/elfview.cpp +++ b/view/elf/elfview.cpp @@ -54,7 +54,7 @@ ElfView::ElfView(BinaryView* data, bool parseOnly): BinaryView("ELF", data->GetF CreateLogger("BinaryView"); m_logger = CreateLogger("BinaryView.ElfView"); m_elf32 = m_ident.fileClass == 1; - m_addressSize = (m_ident.fileClass == 1) ? 4 : 8; + m_addressSize = (m_ident.fileClass == 1 || (m_plat && m_plat->GetName() == "linux-32")) ? 4 : 8; m_endian = endian; m_relocatable = m_commonHeader.type == ET_DYN || m_commonHeader.type == ET_REL; m_objectFile = m_commonHeader.type == ET_REL; @@ -2874,16 +2874,6 @@ uint64_t ElfViewType::ParseHeaders(BinaryView* data, ElfIdent& ident, ElfCommonH commonHeader.arch = reader.Read16(); commonHeader.version = reader.Read32(); - // Promote the file class to 64-bit - // TODO potentially add a setting to allow the user to override header interpretation - if ((commonHeader.type == ET_EXEC) && (commonHeader.arch == EM_X86_64) && (ident.fileClass == 1)) - { - ident.fileClass = 2; - m_logger->LogWarn( - "Executable file claims to be 32-bit but specifies a 64-bit architecture. It is likely malformed or " - "malicious. Treating it as 64-bit."); - } - // parse Elf64Header if (ident.fileClass == 1) // 32-bit ELF { |
