diff options
Diffstat (limited to 'view/pe/teview.cpp')
| -rw-r--r-- | view/pe/teview.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/view/pe/teview.cpp b/view/pe/teview.cpp index d7ac7a9c..4c27c21a 100644 --- a/view/pe/teview.cpp +++ b/view/pe/teview.cpp @@ -242,21 +242,27 @@ bool TEView::Init() { case IMAGE_FILE_MACHINE_I386: platform = Platform::GetByName("efi-x86"); + m_addressSize = 4; break; case IMAGE_FILE_MACHINE_AMD64: platform = Platform::GetByName("efi-x86_64"); + m_addressSize = 8; break; case IMAGE_FILE_MACHINE_ARM64: platform = Platform::GetByName("efi-aarch64"); + m_addressSize = 8; break; case IMAGE_FILE_MACHINE_ARM: platform = Platform::GetByName("efi-armv7"); + m_addressSize = 4; break; case IMAGE_FILE_MACHINE_THUMB: platform = Platform::GetByName("efi-thumb2"); + m_addressSize = 4; break; default: LogError("TE platform '0x%x' is not supported", header.machine); + m_addressSize = 4; if (!m_parseOnly) m_logger->LogWarn("Unable to determine architecture. Please open the file with options and select a valid architecture."); return false; @@ -276,6 +282,8 @@ bool TEView::Init() return false; } + m_addressSize = m_arch->GetAddressSize(); + SetDefaultPlatform(platform); SetDefaultArchitecture(m_arch); @@ -309,7 +317,7 @@ uint64_t TEView::PerformGetEntryPoint() const size_t TEView::PerformGetAddressSize() const { - return m_arch->GetAddressSize(); + return m_addressSize; } TEViewType::TEViewType() : BinaryViewType("TE", "TE") |
