diff options
| author | Brian Potchik <brian@vector35.com> | 2017-08-28 17:04:24 -0400 |
|---|---|---|
| committer | Brian Potchik <brian@vector35.com> | 2017-08-28 17:04:24 -0400 |
| commit | 09af54fba214ee5e0baf6a9bacce0ceebbd34deb (patch) | |
| tree | 358e3a408ae5a230bede71758c9e1e131a0ca835 | |
| parent | da388dd42cdee70facb084b3012214ca33014fa7 (diff) | |
Add AddAnalysisOption API to support Initial LinearSweep Core.
| -rw-r--r-- | binaryninjaapi.h | 1 | ||||
| -rw-r--r-- | binaryninjacore.h | 1 | ||||
| -rw-r--r-- | binaryview.cpp | 6 | ||||
| -rw-r--r-- | python/binaryview.py | 16 |
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 |
