From 680179d22dee90938666b9e5b2033bcb6c48c7d2 Mon Sep 17 00:00:00 2001 From: Rusty Wagner Date: Fri, 10 Jul 2015 01:03:30 -0400 Subject: Initial implementation of low level IL --- function.cpp | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'function.cpp') diff --git a/function.cpp b/function.cpp index 2219ba57..6e0a221d 100644 --- a/function.cpp +++ b/function.cpp @@ -29,7 +29,7 @@ uint64_t Function::GetStart() const Ref Function::GetSymbol() const { - return new Symbol(BNNewSymbolReference(BNGetFunctionSymbol(m_func))); + return new Symbol(BNGetFunctionSymbol(m_func)); } @@ -53,6 +53,26 @@ void Function::MarkRecentUse() } +Ref Function::GetLowLevelIL() const +{ + return new LowLevelILFunction(BNGetFunctionLowLevelIL(m_func)); +} + + +vector> Function::GetLowLevelILBasicBlocks() const +{ + size_t count; + BNBasicBlock** blocks = BNGetFunctionLowLevelILBasicBlockList(m_func, &count); + + vector> result; + for (size_t i = 0; i < count; i++) + result.push_back(new BasicBlock(BNNewBasicBlockReference(blocks[i]))); + + BNFreeBasicBlockList(blocks, count); + return result; +} + + Ref Function::CreateFunctionGraph() { BNFunctionGraph* graph = BNCreateFunctionGraph(m_func); -- cgit v1.3.1