Loading...
Searching...
No Matches
BinaryNinja::FunctionLifterContext Class Reference

Public Member Functions

 FunctionLifterContext (LowLevelILFunction *func, BNFunctionLifterContext *context)
Ref< BinaryView > & GetView ()
Ref< Platform > & GetPlatform ()
Ref< Logger > & GetLogger ()
std::vector< Ref< BasicBlock > > & GetBasicBlocks ()
std::set< ArchAndAddr > & GetNoReturnCalls ()
std::map< ArchAndAddr, bool > & GetContextualReturns ()
std::map< ArchAndAddr, ArchAndAddr > & GetInlinedRemapping ()
std::map< ArchAndAddr, std::set< ArchAndAddr > > & GetUserIndirectBranches ()
std::map< ArchAndAddr, std::set< ArchAndAddr > > & GetAutoIndirectBranches ()
std::set< uint64_t > & GetInlinedCalls ()
void SetContainsInlinedFunctions (bool value)
void CheckForInlinedCall (BasicBlock *block, size_t instrCountBefore, size_t instrCountAfter, uint64_t prevAddr, uint64_t addr, const uint8_t *opcode, size_t len, std::optional< std::pair< ArchAndAddr, ArchAndAddr > > indirectSource)
void PrepareBlockTranslation (LowLevelILFunction *function, Architecture *arch, uint64_t addr)
std::vector< Ref< BasicBlock > > PrepareToCopyForeignFunction (LowLevelILFunction *function)
Ref< LowLevelILFunctionGetForeignFunctionLiftedIL (Ref< Function > func)

Public Attributes

BNFunctionLifterContextm_context

Constructor & Destructor Documentation

◆ FunctionLifterContext()

FunctionLifterContext::FunctionLifterContext ( LowLevelILFunction * func,
BNFunctionLifterContext * context )

Member Function Documentation

◆ GetView()

Ref< BinaryView > & FunctionLifterContext::GetView ( )

◆ GetPlatform()

Ref< Platform > & FunctionLifterContext::GetPlatform ( )

◆ GetLogger()

Ref< Logger > & FunctionLifterContext::GetLogger ( )

◆ GetBasicBlocks()

vector< Ref< BasicBlock > > & FunctionLifterContext::GetBasicBlocks ( )

◆ GetNoReturnCalls()

std::set< ArchAndAddr > & FunctionLifterContext::GetNoReturnCalls ( )

◆ GetContextualReturns()

std::map< ArchAndAddr, bool > & FunctionLifterContext::GetContextualReturns ( )

◆ GetInlinedRemapping()

std::map< ArchAndAddr, ArchAndAddr > & FunctionLifterContext::GetInlinedRemapping ( )

◆ GetUserIndirectBranches()

std::map< ArchAndAddr, std::set< ArchAndAddr > > & FunctionLifterContext::GetUserIndirectBranches ( )

◆ GetAutoIndirectBranches()

std::map< ArchAndAddr, std::set< ArchAndAddr > > & FunctionLifterContext::GetAutoIndirectBranches ( )

◆ GetInlinedCalls()

std::set< uint64_t > & FunctionLifterContext::GetInlinedCalls ( )

◆ SetContainsInlinedFunctions()

void FunctionLifterContext::SetContainsInlinedFunctions ( bool value)

◆ CheckForInlinedCall()

void FunctionLifterContext::CheckForInlinedCall ( BasicBlock * block,
size_t instrCountBefore,
size_t instrCountAfter,
uint64_t prevAddr,
uint64_t addr,
const uint8_t * opcode,
size_t len,
std::optional< std::pair< ArchAndAddr, ArchAndAddr > > indirectSource )

◆ PrepareBlockTranslation()

void FunctionLifterContext::PrepareBlockTranslation ( LowLevelILFunction * function,
Architecture * arch,
uint64_t addr )

◆ PrepareToCopyForeignFunction()

std::vector< Ref< BasicBlock > > FunctionLifterContext::PrepareToCopyForeignFunction ( LowLevelILFunction * function)

◆ GetForeignFunctionLiftedIL()

Ref< LowLevelILFunction > FunctionLifterContext::GetForeignFunctionLiftedIL ( Ref< Function > func)

Member Data Documentation

◆ m_context

BNFunctionLifterContext* BinaryNinja::FunctionLifterContext::m_context