From 38fcbfcf6eac86e8191667d5cabc467f6ee48579 Mon Sep 17 00:00:00 2001 From: Brian Potchik Date: Fri, 24 Apr 2020 21:18:52 -0400 Subject: Add intermediate analysis mode. --- binaryninjacore.h | 4 +++- examples/triage/view.cpp | 6 ++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/binaryninjacore.h b/binaryninjacore.h index 2384989e..a268e23e 100644 --- a/binaryninjacore.h +++ b/binaryninjacore.h @@ -1888,6 +1888,7 @@ extern "C" enum BNAnalysisMode { FullAnalysisMode, + IntermediateAnalysisMode, BasicAnalysisMode, ControlFlowAnalysisMode }; @@ -2222,7 +2223,8 @@ extern "C" ExceedFunctionAnalysisTimeSkipReason, ExceedFunctionUpdateCountSkipReason, NewAutoFunctionAnalysisSuppressedReason, - BasicAnalysisSkipReason + BasicAnalysisSkipReason, + IntermediateAnalysisSkipReason }; enum BNSettingsScope diff --git a/examples/triage/view.cpp b/examples/triage/view.cpp index ddd1d4ff..246e94f7 100644 --- a/examples/triage/view.cpp +++ b/examples/triage/view.cpp @@ -221,10 +221,12 @@ TriageViewType::TriageViewType(): ViewType("Triage", "Triage Summary") int TriageViewType::getPriority(BinaryViewRef data, const QString&) { BinaryNinja::Ref settings = BinaryNinja::Settings::Instance(); - bool full = settings->Get("analysis.mode", data) == "full"; + auto analysisMode = settings->Get("analysis.mode", data); + bool full = analysisMode == "full"; + bool intermediate = analysisMode == "intermediate"; bool alwaysPrefer = settings->Get("triage.preferSummaryView", data); bool preferForRaw = settings->Get("triage.preferSummaryViewForRaw", data); - if (data->IsExecutable() && (alwaysPrefer || !full)) + if (data->IsExecutable() && (alwaysPrefer || (!full && !intermediate))) return 100; if (data->GetLength() > 0) { -- cgit v1.3.1