Loading...
Searching...
No Matches
LinearDisassembly

Detailed Description

Classes

struct  BinaryNinja::LinearDisassemblyLine
struct  BinaryNinja::LinearViewObjectIdentifier
class  BinaryNinja::LinearViewObject
class  BinaryNinja::LinearViewCursor

Class Documentation

◆ BinaryNinja::LinearDisassemblyLine

struct BinaryNinja::LinearDisassemblyLine

Public Member Functions

BNLinearDisassemblyLine ToAPIStruct () const

Static Public Member Functions

static LinearDisassemblyLine FromAPIStruct (const BNLinearDisassemblyLine *line)
static void FreeAPIStruct (BNLinearDisassemblyLine *line)

Public Attributes

BNLinearDisassemblyLineType type
Ref< BinaryView > view
Ref< Function > function
Ref< BasicBlock > block
DisassemblyTextLine contents

Member Function Documentation

◆ ToAPIStruct()

BNLinearDisassemblyLine LinearDisassemblyLine::ToAPIStruct ( ) const

◆ FromAPIStruct()

LinearDisassemblyLine LinearDisassemblyLine::FromAPIStruct ( const BNLinearDisassemblyLine * line)
static

◆ FreeAPIStruct()

void LinearDisassemblyLine::FreeAPIStruct ( BNLinearDisassemblyLine * line)
static

Member Data Documentation

◆ type

BNLinearDisassemblyLineType BinaryNinja::LinearDisassemblyLine::type

◆ view

Ref<BinaryView> BinaryNinja::LinearDisassemblyLine::view

◆ function

Ref<Function> BinaryNinja::LinearDisassemblyLine::function

◆ block

Ref<BasicBlock> BinaryNinja::LinearDisassemblyLine::block

◆ contents

DisassemblyTextLine BinaryNinja::LinearDisassemblyLine::contents

◆ BinaryNinja::LinearViewObjectIdentifier

struct BinaryNinja::LinearViewObjectIdentifier

Public Member Functions

 LinearViewObjectIdentifier ()
 LinearViewObjectIdentifier (const std::string &name)
 LinearViewObjectIdentifier (const std::string &name, uint64_t addr)
 LinearViewObjectIdentifier (const std::string &name, uint64_t start, uint64_t end)
 LinearViewObjectIdentifier (const LinearViewObjectIdentifier &other)

Public Attributes

std::string name
BNLinearViewObjectIdentifierType type
uint64_t start
uint64_t end

Constructor & Destructor Documentation

◆ LinearViewObjectIdentifier() [1/5]

LinearViewObjectIdentifier::LinearViewObjectIdentifier ( )

◆ LinearViewObjectIdentifier() [2/5]

BinaryNinja::LinearViewObjectIdentifier::LinearViewObjectIdentifier ( const std::string & name)

◆ LinearViewObjectIdentifier() [3/5]

BinaryNinja::LinearViewObjectIdentifier::LinearViewObjectIdentifier ( const std::string & name,
uint64_t addr )

◆ LinearViewObjectIdentifier() [4/5]

BinaryNinja::LinearViewObjectIdentifier::LinearViewObjectIdentifier ( const std::string & name,
uint64_t start,
uint64_t end )

◆ LinearViewObjectIdentifier() [5/5]

LinearViewObjectIdentifier::LinearViewObjectIdentifier ( const LinearViewObjectIdentifier & other)

Member Data Documentation

◆ name

std::string BinaryNinja::LinearViewObjectIdentifier::name

◆ type

BNLinearViewObjectIdentifierType BinaryNinja::LinearViewObjectIdentifier::type

◆ start

uint64_t BinaryNinja::LinearViewObjectIdentifier::start

◆ end

uint64_t BinaryNinja::LinearViewObjectIdentifier::end

◆ BinaryNinja::LinearViewObject

class BinaryNinja::LinearViewObject

Public Member Functions

 LinearViewObject (BNLinearViewObject *obj)
Ref< LinearViewObject > GetFirstChild ()
Ref< LinearViewObject > GetLastChild ()
Ref< LinearViewObject > GetPreviousChild (LinearViewObject *obj)
Ref< LinearViewObject > GetNextChild (LinearViewObject *obj)
Ref< LinearViewObject > GetChildForAddress (uint64_t addr)
Ref< LinearViewObject > GetChildForIdentifier (const LinearViewObjectIdentifier &id)
int CompareChildren (LinearViewObject *a, LinearViewObject *b)
std::vector< LinearDisassemblyLine > GetLines (LinearViewObject *prev, LinearViewObject *next)
uint64_t GetStart () const
uint64_t GetEnd () const
LinearViewObjectIdentifier GetIdentifier () const
uint64_t GetOrderingIndexTotal () const
uint64_t GetOrderingIndexForChild (LinearViewObject *obj) const
Ref< LinearViewObject > GetChildForOrderingIndex (uint64_t idx)
Public Member Functions inherited from BinaryNinja::CoreRefCountObject< BNLinearViewObject, BNNewLinearViewObjectReference, BNFreeLinearViewObject >
 CoreRefCountObject ()
virtual ~CoreRefCountObject ()
BNLinearViewObject * GetObject () const
void AddRef ()
void Release ()
void AddRefForRegistration ()
void ReleaseForRegistration ()
void AddRefForCallback ()
void ReleaseForCallback ()

Static Public Member Functions

static Ref< LinearViewObject > CreateDisassembly (BinaryView *view, DisassemblySettings *settings)
static Ref< LinearViewObject > CreateLiftedIL (BinaryView *view, DisassemblySettings *settings)
static Ref< LinearViewObject > CreateLowLevelIL (BinaryView *view, DisassemblySettings *settings)
static Ref< LinearViewObject > CreateLowLevelILSSAForm (BinaryView *view, DisassemblySettings *settings)
static Ref< LinearViewObject > CreateMediumLevelIL (BinaryView *view, DisassemblySettings *settings)
static Ref< LinearViewObject > CreateMediumLevelILSSAForm (BinaryView *view, DisassemblySettings *settings)
static Ref< LinearViewObject > CreateMappedMediumLevelIL (BinaryView *view, DisassemblySettings *settings)
static Ref< LinearViewObject > CreateMappedMediumLevelILSSAForm (BinaryView *view, DisassemblySettings *settings)
static Ref< LinearViewObject > CreateHighLevelIL (BinaryView *view, DisassemblySettings *settings)
static Ref< LinearViewObject > CreateHighLevelILSSAForm (BinaryView *view, DisassemblySettings *settings)
static Ref< LinearViewObject > CreateLanguageRepresentation (BinaryView *view, DisassemblySettings *settings, const std::string &language="Pseudo C")
static Ref< LinearViewObject > CreateDataOnly (BinaryView *view, DisassemblySettings *settings)
static Ref< LinearViewObject > CreateSingleFunctionDisassembly (Function *func, DisassemblySettings *settings)
static Ref< LinearViewObject > CreateSingleFunctionLiftedIL (Function *func, DisassemblySettings *settings)
static Ref< LinearViewObject > CreateSingleFunctionLowLevelIL (Function *func, DisassemblySettings *settings)
static Ref< LinearViewObject > CreateSingleFunctionLowLevelILSSAForm (Function *func, DisassemblySettings *settings)
static Ref< LinearViewObject > CreateSingleFunctionMediumLevelIL (Function *func, DisassemblySettings *settings)
static Ref< LinearViewObject > CreateSingleFunctionMediumLevelILSSAForm (Function *func, DisassemblySettings *settings)
static Ref< LinearViewObject > CreateSingleFunctionMappedMediumLevelIL (Function *func, DisassemblySettings *settings)
static Ref< LinearViewObject > CreateSingleFunctionMappedMediumLevelILSSAForm (Function *func, DisassemblySettings *settings)
static Ref< LinearViewObject > CreateSingleFunctionHighLevelIL (Function *func, DisassemblySettings *settings)
static Ref< LinearViewObject > CreateSingleFunctionHighLevelILSSAForm (Function *func, DisassemblySettings *settings)
static Ref< LinearViewObject > CreateSingleFunctionLanguageRepresentation (Function *func, DisassemblySettings *settings, const std::string &language="Pseudo C")

Additional Inherited Members

Public Attributes inherited from BinaryNinja::CoreRefCountObject< BNLinearViewObject, BNNewLinearViewObjectReference, BNFreeLinearViewObject >
std::atomic< int > m_refs
bool m_registeredRef
BNLinearViewObject * m_object

Constructor & Destructor Documentation

◆ LinearViewObject()

LinearViewObject::LinearViewObject ( BNLinearViewObject * obj)

Member Function Documentation

◆ GetFirstChild()

Ref< LinearViewObject > LinearViewObject::GetFirstChild ( )

◆ GetLastChild()

Ref< LinearViewObject > LinearViewObject::GetLastChild ( )

◆ GetPreviousChild()

Ref< LinearViewObject > LinearViewObject::GetPreviousChild ( LinearViewObject * obj)

◆ GetNextChild()

Ref< LinearViewObject > LinearViewObject::GetNextChild ( LinearViewObject * obj)

◆ GetChildForAddress()

Ref< LinearViewObject > LinearViewObject::GetChildForAddress ( uint64_t addr)

◆ GetChildForIdentifier()

Ref< LinearViewObject > LinearViewObject::GetChildForIdentifier ( const LinearViewObjectIdentifier & id)

◆ CompareChildren()

int LinearViewObject::CompareChildren ( LinearViewObject * a,
LinearViewObject * b )

◆ GetLines()

vector< LinearDisassemblyLine > LinearViewObject::GetLines ( LinearViewObject * prev,
LinearViewObject * next )

◆ GetStart()

uint64_t LinearViewObject::GetStart ( ) const

◆ GetEnd()

uint64_t LinearViewObject::GetEnd ( ) const

◆ GetIdentifier()

LinearViewObjectIdentifier LinearViewObject::GetIdentifier ( ) const

◆ GetOrderingIndexTotal()

uint64_t LinearViewObject::GetOrderingIndexTotal ( ) const

◆ GetOrderingIndexForChild()

uint64_t LinearViewObject::GetOrderingIndexForChild ( LinearViewObject * obj) const

◆ GetChildForOrderingIndex()

Ref< LinearViewObject > LinearViewObject::GetChildForOrderingIndex ( uint64_t idx)

◆ CreateDisassembly()

Ref< LinearViewObject > LinearViewObject::CreateDisassembly ( BinaryView * view,
DisassemblySettings * settings )
static

◆ CreateLiftedIL()

Ref< LinearViewObject > LinearViewObject::CreateLiftedIL ( BinaryView * view,
DisassemblySettings * settings )
static

◆ CreateLowLevelIL()

Ref< LinearViewObject > LinearViewObject::CreateLowLevelIL ( BinaryView * view,
DisassemblySettings * settings )
static

◆ CreateLowLevelILSSAForm()

Ref< LinearViewObject > LinearViewObject::CreateLowLevelILSSAForm ( BinaryView * view,
DisassemblySettings * settings )
static

◆ CreateMediumLevelIL()

Ref< LinearViewObject > LinearViewObject::CreateMediumLevelIL ( BinaryView * view,
DisassemblySettings * settings )
static

◆ CreateMediumLevelILSSAForm()

Ref< LinearViewObject > LinearViewObject::CreateMediumLevelILSSAForm ( BinaryView * view,
DisassemblySettings * settings )
static

◆ CreateMappedMediumLevelIL()

Ref< LinearViewObject > LinearViewObject::CreateMappedMediumLevelIL ( BinaryView * view,
DisassemblySettings * settings )
static

◆ CreateMappedMediumLevelILSSAForm()

Ref< LinearViewObject > LinearViewObject::CreateMappedMediumLevelILSSAForm ( BinaryView * view,
DisassemblySettings * settings )
static

◆ CreateHighLevelIL()

Ref< LinearViewObject > LinearViewObject::CreateHighLevelIL ( BinaryView * view,
DisassemblySettings * settings )
static

◆ CreateHighLevelILSSAForm()

Ref< LinearViewObject > LinearViewObject::CreateHighLevelILSSAForm ( BinaryView * view,
DisassemblySettings * settings )
static

◆ CreateLanguageRepresentation()

Ref< LinearViewObject > LinearViewObject::CreateLanguageRepresentation ( BinaryView * view,
DisassemblySettings * settings,
const std::string & language = "Pseudo C" )
static

◆ CreateDataOnly()

Ref< LinearViewObject > LinearViewObject::CreateDataOnly ( BinaryView * view,
DisassemblySettings * settings )
static

◆ CreateSingleFunctionDisassembly()

Ref< LinearViewObject > LinearViewObject::CreateSingleFunctionDisassembly ( Function * func,
DisassemblySettings * settings )
static

◆ CreateSingleFunctionLiftedIL()

Ref< LinearViewObject > LinearViewObject::CreateSingleFunctionLiftedIL ( Function * func,
DisassemblySettings * settings )
static

◆ CreateSingleFunctionLowLevelIL()

Ref< LinearViewObject > LinearViewObject::CreateSingleFunctionLowLevelIL ( Function * func,
DisassemblySettings * settings )
static

◆ CreateSingleFunctionLowLevelILSSAForm()

Ref< LinearViewObject > LinearViewObject::CreateSingleFunctionLowLevelILSSAForm ( Function * func,
DisassemblySettings * settings )
static

◆ CreateSingleFunctionMediumLevelIL()

Ref< LinearViewObject > LinearViewObject::CreateSingleFunctionMediumLevelIL ( Function * func,
DisassemblySettings * settings )
static

◆ CreateSingleFunctionMediumLevelILSSAForm()

Ref< LinearViewObject > LinearViewObject::CreateSingleFunctionMediumLevelILSSAForm ( Function * func,
DisassemblySettings * settings )
static

◆ CreateSingleFunctionMappedMediumLevelIL()

Ref< LinearViewObject > LinearViewObject::CreateSingleFunctionMappedMediumLevelIL ( Function * func,
DisassemblySettings * settings )
static

◆ CreateSingleFunctionMappedMediumLevelILSSAForm()

Ref< LinearViewObject > LinearViewObject::CreateSingleFunctionMappedMediumLevelILSSAForm ( Function * func,
DisassemblySettings * settings )
static

◆ CreateSingleFunctionHighLevelIL()

Ref< LinearViewObject > LinearViewObject::CreateSingleFunctionHighLevelIL ( Function * func,
DisassemblySettings * settings )
static

◆ CreateSingleFunctionHighLevelILSSAForm()

Ref< LinearViewObject > LinearViewObject::CreateSingleFunctionHighLevelILSSAForm ( Function * func,
DisassemblySettings * settings )
static

◆ CreateSingleFunctionLanguageRepresentation()

Ref< LinearViewObject > LinearViewObject::CreateSingleFunctionLanguageRepresentation ( Function * func,
DisassemblySettings * settings,
const std::string & language = "Pseudo C" )
static

◆ BinaryNinja::LinearViewCursor

class BinaryNinja::LinearViewCursor

Public Member Functions

 LinearViewCursor (LinearViewObject *root)
 LinearViewCursor (BNLinearViewCursor *cursor)
bool IsBeforeBegin () const
bool IsAfterEnd () const
bool IsValid () const
Ref< LinearViewObject > GetCurrentObject () const
std::vector< LinearViewObjectIdentifier > GetPath () const
std::vector< Ref< LinearViewObject > > GetPathObjects () const
BNAddressRange GetOrderingIndex () const
uint64_t GetOrderingIndexTotal () const
void SeekToBegin ()
void SeekToEnd ()
void SeekToAddress (uint64_t addr)
bool SeekToPath (const std::vector< LinearViewObjectIdentifier > &path)
bool SeekToPath (const std::vector< LinearViewObjectIdentifier > &path, uint64_t addr)
bool SeekToPath (LinearViewCursor *cursor)
bool SeekToPath (LinearViewCursor *cursor, uint64_t addr)
void SeekToOrderingIndex (uint64_t idx)
bool Next ()
bool Previous ()
std::vector< LinearDisassemblyLine > GetLines ()
Ref< LinearViewCursor > Duplicate ()
std::vector< class RenderLayer * > GetRenderLayers () const
 Get the list of Render Layers which will be applied to this cursor, at the end of calls to GetLines.
void AddRenderLayer (class RenderLayer *layer)
 Add a Render Layer to be applied to this cursor.
void RemoveRenderLayer (class RenderLayer *layer)
 Remove a Render Layer from being applied to this cursor.
Public Member Functions inherited from BinaryNinja::CoreRefCountObject< BNLinearViewCursor, BNNewLinearViewCursorReference, BNFreeLinearViewCursor >
 CoreRefCountObject ()
virtual ~CoreRefCountObject ()
BNLinearViewCursor * GetObject () const
void AddRef ()
void Release ()
void AddRefForRegistration ()
void ReleaseForRegistration ()
void AddRefForCallback ()
void ReleaseForCallback ()

Static Public Member Functions

static int Compare (LinearViewCursor *a, LinearViewCursor *b)

Additional Inherited Members

Public Attributes inherited from BinaryNinja::CoreRefCountObject< BNLinearViewCursor, BNNewLinearViewCursorReference, BNFreeLinearViewCursor >
std::atomic< int > m_refs
bool m_registeredRef
BNLinearViewCursor * m_object

Constructor & Destructor Documentation

◆ LinearViewCursor() [1/2]

LinearViewCursor::LinearViewCursor ( LinearViewObject * root)

◆ LinearViewCursor() [2/2]

LinearViewCursor::LinearViewCursor ( BNLinearViewCursor * cursor)

Member Function Documentation

◆ IsBeforeBegin()

bool LinearViewCursor::IsBeforeBegin ( ) const

◆ IsAfterEnd()

bool LinearViewCursor::IsAfterEnd ( ) const

◆ IsValid()

bool LinearViewCursor::IsValid ( ) const

◆ GetCurrentObject()

Ref< LinearViewObject > LinearViewCursor::GetCurrentObject ( ) const

◆ GetPath()

vector< LinearViewObjectIdentifier > LinearViewCursor::GetPath ( ) const

◆ GetPathObjects()

vector< Ref< LinearViewObject > > LinearViewCursor::GetPathObjects ( ) const

◆ GetOrderingIndex()

BNAddressRange LinearViewCursor::GetOrderingIndex ( ) const

◆ GetOrderingIndexTotal()

uint64_t LinearViewCursor::GetOrderingIndexTotal ( ) const

◆ SeekToBegin()

void LinearViewCursor::SeekToBegin ( )

◆ SeekToEnd()

void LinearViewCursor::SeekToEnd ( )

◆ SeekToAddress()

void LinearViewCursor::SeekToAddress ( uint64_t addr)

◆ SeekToPath() [1/4]

bool BinaryNinja::LinearViewCursor::SeekToPath ( const std::vector< LinearViewObjectIdentifier > & path)

◆ SeekToPath() [2/4]

bool BinaryNinja::LinearViewCursor::SeekToPath ( const std::vector< LinearViewObjectIdentifier > & path,
uint64_t addr )

◆ SeekToPath() [3/4]

bool LinearViewCursor::SeekToPath ( LinearViewCursor * cursor)

◆ SeekToPath() [4/4]

bool LinearViewCursor::SeekToPath ( LinearViewCursor * cursor,
uint64_t addr )

◆ SeekToOrderingIndex()

void LinearViewCursor::SeekToOrderingIndex ( uint64_t idx)

◆ Next()

bool LinearViewCursor::Next ( )

◆ Previous()

bool LinearViewCursor::Previous ( )

◆ GetLines()

vector< LinearDisassemblyLine > LinearViewCursor::GetLines ( )

◆ Duplicate()

Ref< LinearViewCursor > LinearViewCursor::Duplicate ( )

◆ GetRenderLayers()

std::vector< RenderLayer * > LinearViewCursor::GetRenderLayers ( ) const

Get the list of Render Layers which will be applied to this cursor, at the end of calls to GetLines.

Returns
List of Render Layers

◆ AddRenderLayer()

void LinearViewCursor::AddRenderLayer ( class RenderLayer * layer)

Add a Render Layer to be applied to this cursor.

Note that layers will be applied in the order in which they are added.

Parameters
layerRender Layer to add

◆ RemoveRenderLayer()

void LinearViewCursor::RemoveRenderLayer ( class RenderLayer * layer)

Remove a Render Layer from being applied to this cursor.

Parameters
layerRender Layer to remove

◆ Compare()

int LinearViewCursor::Compare ( LinearViewCursor * a,
LinearViewCursor * b )
static