From 9537f33da6b8de883a45c4b7758f0dc5c1438ed7 Mon Sep 17 00:00:00 2001 From: Zichuan Li Date: Tue, 21 May 2024 17:56:03 -0400 Subject: Solved issue #1180 by adding new APIs 1. Add two new APIs for multiple entry functions `GetAllAnalysisEntryFunctions` and `AddToEntryFunctions` 2. Add Python APIs `entry_functions` and `add_to_entry_functions`. `entry_functions` resturns a list of functions, which supports parsing functions in `init_array`, `fini_array` and TLS callbacks. 3. Modify bin-info, it now prints all entry functions --- binaryninjaapi.h | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'binaryninjaapi.h') diff --git a/binaryninjaapi.h b/binaryninjaapi.h index 55b8ef55..114b6e85 100644 --- a/binaryninjaapi.h +++ b/binaryninjaapi.h @@ -4946,6 +4946,12 @@ namespace BinaryNinja { */ void AddEntryPointForAnalysis(Platform* platform, uint64_t start); + /*! adds an function to all entry function list + + \param func Function to add + */ + void AddToEntryFunctions(Function* func); + /*! removes a function from the list of functions \param func Function to be removed @@ -5089,6 +5095,11 @@ namespace BinaryNinja { */ Ref GetAnalysisEntryPoint(); + /*! Get all entry functions (including user-defined ones) + + \return vector of Functions + */ + std::vector> GetAllEntryFunctions(); /*! Get most recently used Basic Block containing a virtual address -- cgit v1.3.1