From d9661f34eec6855d495a10eaafc2a8e2679756a7 Mon Sep 17 00:00:00 2001 From: Peter LaFosse Date: Thu, 6 Jan 2022 13:01:42 -0500 Subject: Add Function::HasUserAnnotations --- binaryninjaapi.h | 1 + binaryninjacore.h | 1 + function.cpp | 6 ++++++ python/function.py | 7 +++++++ 4 files changed, 15 insertions(+) diff --git a/binaryninjaapi.h b/binaryninjaapi.h index d7832d7f..828da41b 100644 --- a/binaryninjaapi.h +++ b/binaryninjaapi.h @@ -3440,6 +3440,7 @@ __attribute__ ((format (printf, 1, 2))) uint64_t GetStart() const; Ref GetSymbol() const; bool WasAutomaticallyDiscovered() const; + bool HasUserAnnotations() const; Confidence CanReturn() const; bool HasExplicitlyDefinedType() const; bool NeedsUpdate() const; diff --git a/binaryninjacore.h b/binaryninjacore.h index 963cdb24..4b379263 100644 --- a/binaryninjacore.h +++ b/binaryninjacore.h @@ -3418,6 +3418,7 @@ __attribute__ ((format (printf, 1, 2))) BINARYNINJACOREAPI uint64_t BNGetFunctionStart(BNFunction* func); BINARYNINJACOREAPI BNSymbol* BNGetFunctionSymbol(BNFunction* func); BINARYNINJACOREAPI bool BNWasFunctionAutomaticallyDiscovered(BNFunction* func); + BINARYNINJACOREAPI bool BNFunctionHasUserAnnotations(BNFunction* func); BINARYNINJACOREAPI BNBoolWithConfidence BNCanFunctionReturn(BNFunction* func); BINARYNINJACOREAPI void BNSetFunctionAutoType(BNFunction* func, BNType* type); BINARYNINJACOREAPI void BNSetFunctionUserType(BNFunction* func, BNType* type); diff --git a/function.cpp b/function.cpp index 069a021d..0f70e939 100644 --- a/function.cpp +++ b/function.cpp @@ -172,6 +172,12 @@ bool Function::WasAutomaticallyDiscovered() const } +bool Function::HasUserAnnotations() const +{ + return BNFunctionHasUserAnnotations(m_object); +} + + Confidence Function::CanReturn() const { BNBoolWithConfidence bc = BNCanFunctionReturn(m_object); diff --git a/python/function.py b/python/function.py index 332b5769..d3b9ea88 100644 --- a/python/function.py +++ b/python/function.py @@ -496,6 +496,13 @@ class Function: """ return core.BNWasFunctionAutomaticallyDiscovered(self.handle) + @property + def has_user_annotations(self) -> bool: + """ + Whether the function has ever been 'user' modified + """ + return core.BNFunctionHasUserAnnotations(self.handle) + @property def can_return(self) -> 'types.BoolWithConfidence': """Whether function can return""" -- cgit v1.3.1