From 274e9caf8d26d8b4deb122898f75093c30177417 Mon Sep 17 00:00:00 2001 From: Rusty Wagner Date: Mon, 17 Aug 2015 22:41:58 -0400 Subject: Architecture-specific function recognizers and ARM64 PLT analysis --- binaryninjaapi.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'binaryninjaapi.h') diff --git a/binaryninjaapi.h b/binaryninjaapi.h index 28ef54b6..c875eb5b 100644 --- a/binaryninjaapi.h +++ b/binaryninjaapi.h @@ -408,6 +408,8 @@ namespace BinaryNinja uint64_t GetAddress() const; bool IsAutoDefined() const; void SetAutoDefined(bool val); + + static Ref ImportedFunctionFromImportAddressSymbol(Symbol* sym, uint64_t addr); }; struct ReferenceSource @@ -797,6 +799,7 @@ namespace BinaryNinja }; class LowLevelILFunction; + class FunctionRecognizer; typedef size_t ExprId; @@ -882,6 +885,8 @@ namespace BinaryNinja virtual bool AlwaysBranch(uint8_t* data, uint64_t addr, size_t len); virtual bool InvertBranch(uint8_t* data, uint64_t addr, size_t len); virtual bool SkipAndReturnValue(uint8_t* data, uint64_t addr, size_t len, uint64_t value); + + void RegisterFunctionRecognizer(FunctionRecognizer* recog); }; class CoreArchitecture: public Architecture @@ -1274,6 +1279,7 @@ namespace BinaryNinja FunctionRecognizer(); static void RegisterGlobalRecognizer(FunctionRecognizer* recog); + static void RegisterArchitectureFunctionRecognizer(Architecture* arch, FunctionRecognizer* recog); virtual bool RecognizeLowLevelIL(BinaryView* data, Function* func, LowLevelILFunction* il); }; -- cgit v1.3.1