summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Potchik <brian@vector35.com>2017-08-28 17:04:24 -0400
committerBrian Potchik <brian@vector35.com>2017-08-28 17:04:24 -0400
commit09af54fba214ee5e0baf6a9bacce0ceebbd34deb (patch)
tree358e3a408ae5a230bede71758c9e1e131a0ca835
parentda388dd42cdee70facb084b3012214ca33014fa7 (diff)
Add AddAnalysisOption API to support Initial LinearSweep Core.
-rw-r--r--binaryninjaapi.h1
-rw-r--r--binaryninjacore.h1
-rw-r--r--binaryview.cpp6
-rw-r--r--python/binaryview.py16
4 files changed, 24 insertions, 0 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h
index 1cd65744..5fb95021 100644
--- a/binaryninjaapi.h
+++ b/binaryninjaapi.h
@@ -1185,6 +1185,7 @@ namespace BinaryNinja
void RegisterNotification(BinaryDataNotification* notify);
void UnregisterNotification(BinaryDataNotification* notify);
+ void AddAnalysisOption(const std::string& name);
void AddFunctionForAnalysis(Platform* platform, uint64_t addr);
void AddEntryPointForAnalysis(Platform* platform, uint64_t start);
void RemoveAnalysisFunction(Function* func);
diff --git a/binaryninjacore.h b/binaryninjacore.h
index f81b821c..f20cc1f2 100644
--- a/binaryninjacore.h
+++ b/binaryninjacore.h
@@ -2008,6 +2008,7 @@ extern "C"
const char* name, uint64_t value);
// Analysis
+ BINARYNINJACOREAPI void BNAddAnalysisOption(BNBinaryView* view, const char* name);
BINARYNINJACOREAPI void BNAddFunctionForAnalysis(BNBinaryView* view, BNPlatform* platform, uint64_t addr);
BINARYNINJACOREAPI void BNAddEntryPointForAnalysis(BNBinaryView* view, BNPlatform* platform, uint64_t addr);
BINARYNINJACOREAPI void BNRemoveAnalysisFunction(BNBinaryView* view, BNFunction* func);
diff --git a/binaryview.cpp b/binaryview.cpp
index 2c7da23e..213be79a 100644
--- a/binaryview.cpp
+++ b/binaryview.cpp
@@ -854,6 +854,12 @@ bool BinaryView::Save(FileAccessor* file)
}
+void BinaryView::AddAnalysisOption(const string& name)
+{
+ BNAddAnalysisOption(m_object, name.c_str());
+}
+
+
void BinaryView::AddFunctionForAnalysis(Platform* platform, uint64_t addr)
{
BNAddFunctionForAnalysis(m_object, platform->GetObject(), addr);
diff --git a/python/binaryview.py b/python/binaryview.py
index bf8a87e0..d002b38f 100644
--- a/python/binaryview.py
+++ b/python/binaryview.py
@@ -1831,6 +1831,22 @@ class BinaryView(object):
"""
core.BNRemoveUserFunction(self.handle, func.handle)
+ def add_analysis_option(self, name):
+ """
+ ``add_analysis_option`` adds an analysis option. Analysis options elaborate the analysis phase. The user must
+ start analysis by calling either ``update_analysis()`` or ``update_analysis_and_wait()``.
+
+ :param str name: name of the analysis option. Available options:
+ "linearsweep" : apply linearsweep analysis during the next analysis update (run-once semantics)
+
+ :rtype: None
+ :Example:
+
+ >>> bv.add_analysis_option("linearsweep")
+ >>> bv.update_analysis_and_wait()
+ """
+ core.BNAddAnalysisOption(self.handle, name)
+
def update_analysis(self):
"""
``update_analysis`` asynchronously starts the analysis running and returns immediately. Analysis of BinaryViews