summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXusheng <xusheng@vector35.com>2025-04-09 12:58:58 +0800
committerXusheng <xusheng@vector35.com>2025-04-09 12:58:58 +0800
commitd4f7a4b26baee92d273328a6b24d90f23a9a6c2f (patch)
treee8a7cc7321fc81ccd890ade3a1ec1ce7fcff6caf
parent4403757cf9f0ad1cbca6f99d46b45f534edc66c0 (diff)
Expose AnalysisState through the API
-rw-r--r--binaryninjaapi.h1
-rw-r--r--binaryninjacore.h1
-rw-r--r--binaryview.cpp6
-rw-r--r--python/binaryview.py5
4 files changed, 13 insertions, 0 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h
index 5c292481..2fe2ed09 100644
--- a/binaryninjaapi.h
+++ b/binaryninjaapi.h
@@ -6109,6 +6109,7 @@ namespace BinaryNinja {
AnalysisInfo GetAnalysisInfo();
BNAnalysisProgress GetAnalysisProgress();
+ BNAnalysisState GetAnalysisState();
Ref<BackgroundTask> GetBackgroundAnalysisTask();
/*! Returns the virtual address of the Function that occurs after the virtual address `addr`
diff --git a/binaryninjacore.h b/binaryninjacore.h
index 69dd4cc9..73236934 100644
--- a/binaryninjacore.h
+++ b/binaryninjacore.h
@@ -5068,6 +5068,7 @@ extern "C"
BINARYNINJACOREAPI BNAnalysisInfo* BNGetAnalysisInfo(BNBinaryView* view);
BINARYNINJACOREAPI void BNFreeAnalysisInfo(BNAnalysisInfo* info);
BINARYNINJACOREAPI BNAnalysisProgress BNGetAnalysisProgress(BNBinaryView* view);
+ BINARYNINJACOREAPI BNAnalysisState BNGetAnalysisState(BNBinaryView* view);
BINARYNINJACOREAPI BNBackgroundTask* BNGetBackgroundAnalysisTask(BNBinaryView* view);
BINARYNINJACOREAPI uint64_t BNGetNextFunctionStartAfterAddress(BNBinaryView* view, uint64_t addr);
diff --git a/binaryview.cpp b/binaryview.cpp
index 241b40ca..7a6f3df3 100644
--- a/binaryview.cpp
+++ b/binaryview.cpp
@@ -3823,6 +3823,12 @@ BNAnalysisProgress BinaryView::GetAnalysisProgress()
}
+BNAnalysisState BinaryView::GetAnalysisState()
+{
+ return BNGetAnalysisState(m_object);
+}
+
+
Ref<BackgroundTask> BinaryView::GetBackgroundAnalysisTask()
{
BNBackgroundTask* task = BNGetBackgroundAnalysisTask(m_object);
diff --git a/python/binaryview.py b/python/binaryview.py
index b0ca13ef..10cd2fea 100644
--- a/python/binaryview.py
+++ b/python/binaryview.py
@@ -3372,6 +3372,11 @@ class BinaryView:
return AnalysisProgress(result.state, result.count, result.total)
@property
+ def analysis_state(self) -> AnalysisState:
+ """State of current analysis (read-only)"""
+ return core.BNGetAnalysisState(self.handle)
+
+ @property
def linear_disassembly(self) -> Iterator['lineardisassembly.LinearDisassemblyLine']:
"""Iterator for all lines in the linear disassembly of the view"""
return self.get_linear_disassembly(None)