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 GetAPIObject () const

Static Public Member Functions

static LinearDisassemblyLine FromAPIObject (const BNLinearDisassemblyLine *line)
static void FreeAPIObject (BNLinearDisassemblyLine *line)

Public Attributes

BNLinearDisassemblyLineType type
Ref< Functionfunction
Ref< BasicBlockblock
DisassemblyTextLine contents

Member Function Documentation

◆ GetAPIObject()

BNLinearDisassemblyLine LinearDisassemblyLine::GetAPIObject ( ) const

◆ FromAPIObject()

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

◆ FreeAPIObject()

void LinearDisassemblyLine::FreeAPIObject ( BNLinearDisassemblyLine * line)
static

Member Data Documentation

◆ type

BNLinearDisassemblyLineType BinaryNinja::LinearDisassemblyLine::type

◆ 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< LinearViewObjectGetFirstChild ()
Ref< LinearViewObjectGetLastChild ()
Ref< LinearViewObjectGetPreviousChild (LinearViewObject *obj)
Ref< LinearViewObjectGetNextChild (LinearViewObject *obj)
Ref< LinearViewObjectGetChildForAddress (uint64_t addr)
Ref< LinearViewObjectGetChildForIdentifier (const LinearViewObjectIdentifier &id)
int CompareChildren (LinearViewObject *a, LinearViewObject *b)
std::vector< LinearDisassemblyLineGetLines (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< LinearViewObjectGetChildForOrderingIndex (uint64_t idx)
Public Member Functions inherited from BinaryNinja::CoreRefCountObject< BNLinearViewObject, BNNewLinearViewObjectReference, BNFreeLinearViewObject >
 CoreRefCountObject ()
virtual ~CoreRefCountObject ()
BNLinearViewObjectGetObject () const
void AddRef ()
void Release ()
void AddRefForRegistration ()
void ReleaseForRegistration ()
void AddRefForCallback ()
void ReleaseForCallback ()

Static Public Member Functions

static Ref< LinearViewObjectCreateDisassembly (BinaryView *view, DisassemblySettings *settings)
static Ref< LinearViewObjectCreateLiftedIL (BinaryView *view, DisassemblySettings *settings)
static Ref< LinearViewObjectCreateLowLevelIL (BinaryView *view, DisassemblySettings *settings)
static Ref< LinearViewObjectCreateLowLevelILSSAForm (BinaryView *view, DisassemblySettings *settings)
static Ref< LinearViewObjectCreateMediumLevelIL (BinaryView *view, DisassemblySettings *settings)
static Ref< LinearViewObjectCreateMediumLevelILSSAForm (BinaryView *view, DisassemblySettings *settings)
static Ref< LinearViewObjectCreateMappedMediumLevelIL (BinaryView *view, DisassemblySettings *settings)
static Ref< LinearViewObjectCreateMappedMediumLevelILSSAForm (BinaryView *view, DisassemblySettings *settings)
static Ref< LinearViewObjectCreateHighLevelIL (BinaryView *view, DisassemblySettings *settings)
static Ref< LinearViewObjectCreateHighLevelILSSAForm (BinaryView *view, DisassemblySettings *settings)
static Ref< LinearViewObjectCreateLanguageRepresentation (BinaryView *view, DisassemblySettings *settings, const std::string &language="Pseudo C")
static Ref< LinearViewObjectCreateDataOnly (BinaryView *view, DisassemblySettings *settings)
static Ref< LinearViewObjectCreateSingleFunctionDisassembly (Function *func, DisassemblySettings *settings)
static Ref< LinearViewObjectCreateSingleFunctionLiftedIL (Function *func, DisassemblySettings *settings)
static Ref< LinearViewObjectCreateSingleFunctionLowLevelIL (Function *func, DisassemblySettings *settings)
static Ref< LinearViewObjectCreateSingleFunctionLowLevelILSSAForm (Function *func, DisassemblySettings *settings)
static Ref< LinearViewObjectCreateSingleFunctionMediumLevelIL (Function *func, DisassemblySettings *settings)
static Ref< LinearViewObjectCreateSingleFunctionMediumLevelILSSAForm (Function *func, DisassemblySettings *settings)
static Ref< LinearViewObjectCreateSingleFunctionMappedMediumLevelIL (Function *func, DisassemblySettings *settings)
static Ref< LinearViewObjectCreateSingleFunctionMappedMediumLevelILSSAForm (Function *func, DisassemblySettings *settings)
static Ref< LinearViewObjectCreateSingleFunctionHighLevelIL (Function *func, DisassemblySettings *settings)
static Ref< LinearViewObjectCreateSingleFunctionHighLevelILSSAForm (Function *func, DisassemblySettings *settings)
static Ref< LinearViewObjectCreateSingleFunctionLanguageRepresentation (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
BNLinearViewObjectm_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< LinearViewObjectGetCurrentObject () const
std::vector< LinearViewObjectIdentifierGetPath () 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< LinearDisassemblyLineGetLines ()
Ref< LinearViewCursorDuplicate ()
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 ()
BNLinearViewCursorGetObject () 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
BNLinearViewCursorm_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