summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan <ryan@vector35.com>2018-07-27 20:24:10 -0400
committerRyan <ryan@vector35.com>2018-07-27 20:37:18 -0400
commitb8f49d5fecc354ad25533efad8660f4c07b9879b (patch)
tree0f430cc33b60ee5676053dd3dc7a03dd7c901841
parent1f986c2698ff9df6d42429b1b7699842223634e5 (diff)
Expose the ability to suppress analysis of auto-discovered functions
-rw-r--r--binaryninjaapi.h2
-rw-r--r--binaryninjacore.h6
-rw-r--r--binaryview.cpp12
-rw-r--r--python/binaryview.py9
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))