diff options
Diffstat (limited to 'function.cpp')
| -rw-r--r-- | function.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/function.cpp b/function.cpp new file mode 100644 index 00000000..db99b97d --- /dev/null +++ b/function.cpp @@ -0,0 +1,41 @@ +#include "binaryninjaapi.h" + +using namespace BinaryNinja; +using namespace std; + + +Function::Function(BNFunction* func): m_func(func) +{ +} + + +Function::~Function() +{ + BNFreeFunction(m_func); +} + + +Ref<Architecture> Function::GetArchitecture() const +{ + return new CoreArchitecture(BNGetFunctionArchitecture(m_func)); +} + + +uint64_t Function::GetStart() const +{ + return BNGetFunctionStart(m_func); +} + + +vector<Ref<BasicBlock>> Function::GetBasicBlocks() const +{ + size_t count; + BNBasicBlock** blocks = BNGetFunctionBasicBlockList(m_func, &count); + + vector<Ref<BasicBlock>> result; + for (size_t i = 0; i < count; i++) + result.push_back(new BasicBlock(BNNewBasicBlockReference(blocks[i]))); + + BNFreeBasicBlockList(blocks, count); + return result; +} |
