diff options
| -rw-r--r-- | binaryninjaapi.h | 1 | ||||
| -rw-r--r-- | binaryninjacore.h | 1 | ||||
| -rw-r--r-- | function.cpp | 6 | ||||
| -rw-r--r-- | python/function.py | 5 |
4 files changed, 13 insertions, 0 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h index c37a1a3d..0a1fab7c 100644 --- a/binaryninjaapi.h +++ b/binaryninjaapi.h @@ -10793,6 +10793,7 @@ namespace BinaryNinja { std::vector<DisassemblyTextLine> GetTypeTokens(DisassemblySettings* settings = nullptr); Confidence<RegisterValue> GetGlobalPointerValue() const; + bool UsesIncomingGlobalPointer() const; Confidence<RegisterValue> GetRegisterValueAtExit(uint32_t reg) const; /*! Whether the function is too large to automatically perform analysis diff --git a/binaryninjacore.h b/binaryninjacore.h index 16d86fc7..081f0d4b 100644 --- a/binaryninjacore.h +++ b/binaryninjacore.h @@ -4416,6 +4416,7 @@ extern "C" BNFunction* func, BNDisassemblySettings* settings, size_t* count); BINARYNINJACOREAPI BNRegisterValueWithConfidence BNGetFunctionGlobalPointerValue(BNFunction* func); + BINARYNINJACOREAPI bool BNFunctionUsesIncomingGlobalPointer(BNFunction* func); BINARYNINJACOREAPI BNRegisterValueWithConfidence BNGetFunctionRegisterValueAtExit(BNFunction* func, uint32_t reg); BINARYNINJACOREAPI BNBoolWithConfidence BNIsFunctionInlinedDuringAnalysis(BNFunction* func); diff --git a/function.cpp b/function.cpp index 2838f079..8497ccec 100644 --- a/function.cpp +++ b/function.cpp @@ -2399,6 +2399,12 @@ Confidence<RegisterValue> Function::GetGlobalPointerValue() const } +bool Function::UsesIncomingGlobalPointer() const +{ + return BNFunctionUsesIncomingGlobalPointer(m_object); +} + + Confidence<RegisterValue> Function::GetRegisterValueAtExit(uint32_t reg) const { BNRegisterValueWithConfidence value = BNGetFunctionRegisterValueAtExit(m_object, reg); diff --git a/python/function.py b/python/function.py index e43570a7..e21716ac 100644 --- a/python/function.py +++ b/python/function.py @@ -1822,6 +1822,11 @@ class Function: return variable.RegisterValue.from_BNRegisterValue(result, self.arch) @property + def uses_incoming_global_pointer(self) -> bool: + """Whether the function uses the incoming global pointer value""" + return core.BNFunctionUsesIncomingGlobalPointer(self.handle) + + @property def comment(self) -> str: """Gets the comment for the current function""" return core.BNGetFunctionComment(self.handle) |
