diff options
| author | Ryan <ryan@vector35.com> | 2018-07-27 20:24:10 -0400 |
|---|---|---|
| committer | Ryan <ryan@vector35.com> | 2018-07-27 20:37:18 -0400 |
| commit | b8f49d5fecc354ad25533efad8660f4c07b9879b (patch) | |
| tree | 0f430cc33b60ee5676053dd3dc7a03dd7c901841 | |
| parent | 1f986c2698ff9df6d42429b1b7699842223634e5 (diff) | |
Expose the ability to suppress analysis of auto-discovered functions
| -rw-r--r-- | binaryninjaapi.h | 2 | ||||
| -rw-r--r-- | binaryninjacore.h | 6 | ||||
| -rw-r--r-- | binaryview.cpp | 12 | ||||
| -rw-r--r-- | python/binaryview.py | 9 |
4 files changed, 28 insertions, 1 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h index f2c15fde..4678f1eb 100644 --- a/binaryninjaapi.h +++ b/binaryninjaapi.h @@ -1374,6 +1374,8 @@ namespace BinaryNinja void SetParametersForAnalysis(BNAnalysisParameters params); uint64_t GetMaxFunctionSizeForAnalysis(); void SetMaxFunctionSizeForAnalysis(uint64_t size); + bool GetNewAutoFunctionAnalysisSuppressed(); + void SetNewAutoFunctionAnalysisSuppressed(bool suppress); }; class BinaryData: public BinaryView diff --git a/binaryninjacore.h b/binaryninjacore.h index fda26d47..99f14f4e 100644 --- a/binaryninjacore.h +++ b/binaryninjacore.h @@ -1509,6 +1509,7 @@ extern "C" uint64_t maxFunctionAnalysisTime; size_t maxFunctionUpdateCount; size_t maxFunctionSubmitCount; + bool suppressNewAutoFunctionAnalysis; }; struct BNDownloadInstanceOutputCallbacks @@ -1820,7 +1821,8 @@ extern "C" NoSkipReason, AlwaysSkipReason, ExceedFunctionSizeSkipReason, - ExceedFunctionAnalysisTimeSkipReason + ExceedFunctionAnalysisTimeSkipReason, + NewAutoFunctionAnalysisSuppressedReason }; BINARYNINJACOREAPI char* BNAllocString(const char* contents); @@ -2520,6 +2522,8 @@ extern "C" BINARYNINJACOREAPI void BNSetParametersForAnalysis(BNBinaryView* view, BNAnalysisParameters params); BINARYNINJACOREAPI uint64_t BNGetMaxFunctionSizeForAnalysis(BNBinaryView* view); BINARYNINJACOREAPI void BNSetMaxFunctionSizeForAnalysis(BNBinaryView* view, uint64_t size); + BINARYNINJACOREAPI bool BNGetNewAutoFunctionAnalysisSuppressed(BNBinaryView* view); + BINARYNINJACOREAPI void BNSetNewAutoFunctionAnalysisSuppressed(BNBinaryView* view, bool suppress); BINARYNINJACOREAPI BNAnalysisCompletionEvent* BNAddAnalysisCompletionEvent(BNBinaryView* view, void* ctxt, void (*callback)(void* ctxt)); diff --git a/binaryview.cpp b/binaryview.cpp index bebfb801..848aae95 100644 --- a/binaryview.cpp +++ b/binaryview.cpp @@ -2008,6 +2008,18 @@ void BinaryView::SetMaxFunctionSizeForAnalysis(uint64_t size) } +bool BinaryView::GetNewAutoFunctionAnalysisSuppressed() +{ + return BNGetNewAutoFunctionAnalysisSuppressed(m_object); +} + + +void BinaryView::SetNewAutoFunctionAnalysisSuppressed(bool suppress) +{ + BNSetNewAutoFunctionAnalysisSuppressed(m_object, suppress); +} + + BinaryData::BinaryData(FileMetadata* file): BinaryView(BNCreateBinaryDataView(file->GetObject())) { } diff --git a/python/binaryview.py b/python/binaryview.py index 25953b34..35ef6a40 100644 --- a/python/binaryview.py +++ b/python/binaryview.py @@ -1098,6 +1098,15 @@ class BinaryView(object): def max_function_size_for_analysis(self, size): core.BNSetMaxFunctionSizeForAnalysis(self.handle, size) + @property + def new_auto_function_analysis_suppressed(self): + """Whether or not automatically discovered functions will be analyzed""" + return core.BNGetNewAutoFunctionAnalysisSuppressed(self.handle) + + @new_auto_function_analysis_suppressed.setter + def new_auto_function_analysis_suppressed(self, suppress): + core.BNSetNewAutoFunctionAnalysisSuppressed(self.handle, suppress) + def __len__(self): return int(core.BNGetViewLength(self.handle)) |
