From cbd4d7f12d54ddc4b6d3d90a8d7b49591f468a94 Mon Sep 17 00:00:00 2001 From: Brian Potchik Date: Mon, 20 Jan 2025 16:34:57 -0500 Subject: Allow overriding common loader settings when automatic load file parsing fails. --- view/pe/teview.cpp | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) (limited to 'view/pe/teview.cpp') diff --git a/view/pe/teview.cpp b/view/pe/teview.cpp index f8666717..e5fb2a1b 100644 --- a/view/pe/teview.cpp +++ b/view/pe/teview.cpp @@ -257,16 +257,12 @@ bool TEView::Init() break; default: LogError("TE platform '0x%x' is not supported", header.machine); + if (!m_parseOnly) + m_logger->LogWarn("Unable to determine architecture. Please open the file with options and select a valid architecture."); return false; } } - if (!platform) - { - LogError("Platform not supported by this version of Binary Ninja"); - return false; - } - m_arch = platform->GetArchitecture(); if (!m_arch) { @@ -371,13 +367,13 @@ bool TEViewType::IsTypeValidForData(BinaryView* bv) return false; } -Ref TEViewType::GetLoadSettingsForData(BinaryView *bv) +Ref TEViewType::GetLoadSettingsForData(BinaryView* data) { - Ref viewRef = Parse(bv); + Ref viewRef = Parse(data); if (!viewRef || !viewRef->Init()) { - m_logger->LogError("View type '%s' could not be created", GetName().c_str()); - return nullptr; + m_logger->LogWarn("Failed to initialize view of type '%s'. Generating default load settings.", GetName().c_str()); + viewRef = data; } // specify default load settings that can be overridden -- cgit v1.3.1