MemoryMap

Detailed Description

Classes

class  DataComparedTableItem
 
class  MemoryMapItemDelegate
 
class  SegmentDialog
 
class  SectionDialog
 
class  SegmentWidget
 
class  SectionWidget
 
class  MemoryMapSidebarWidget
 
class  MemoryMapSidebarWidgetType
 

Class Documentation

◆ DataComparedTableItem

class DataComparedTableItem

Public Member Functions

 DataComparedTableItem (const QString &text, int type=QTableWidgetItem::ItemType::Type)
 
bool operator< (const QTableWidgetItem &other) const
 

Constructor & Destructor Documentation

◆ DataComparedTableItem()

DataComparedTableItem::DataComparedTableItem ( const QString &  text,
int  type = QTableWidgetItem::ItemType::Type 
)
inline

Member Function Documentation

◆ operator<()

bool DataComparedTableItem::operator< ( const QTableWidgetItem &  other) const

◆ MemoryMapItemDelegate

class MemoryMapItemDelegate

Public Member Functions

 MemoryMapItemDelegate (QObject *parent=nullptr)
 
virtual void paint (QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override
 

Constructor & Destructor Documentation

◆ MemoryMapItemDelegate()

MemoryMapItemDelegate::MemoryMapItemDelegate ( QObject *  parent = nullptr)
inline

Member Function Documentation

◆ paint()

virtual void MemoryMapItemDelegate::paint ( QPainter *  painter,
const QStyleOptionViewItem &  option,
const QModelIndex &  index 
) const
overridevirtual

◆ SegmentDialog

class SegmentDialog

Public Member Functions

 SegmentDialog (QWidget *parent, BinaryViewRef data, SegmentRef segment=nullptr)
 

Constructor & Destructor Documentation

◆ SegmentDialog()

SegmentDialog::SegmentDialog ( QWidget *  parent,
BinaryViewRef  data,
SegmentRef  segment = nullptr 
)

◆ SectionDialog

class SectionDialog

Public Member Functions

 SectionDialog (QWidget *parent, BinaryViewRef data, SectionRef section=nullptr)
 

Constructor & Destructor Documentation

◆ SectionDialog()

SectionDialog::SectionDialog ( QWidget *  parent,
BinaryViewRef  data,
SectionRef  section = nullptr 
)

◆ SegmentWidget

class SegmentWidget

Signals

void currentSegmentChanged (SegmentRef current)
 
void addressDoubleClicked (uint64_t address)
 

Public Member Functions

 SegmentWidget (BinaryViewRef data)
 
virtual ~SegmentWidget ()
 
void updateFont ()
 
void highlightRelatedSegments (SectionRef section)
 
void itemChanged (QTableWidgetItem *current, QTableWidgetItem *previous)
 
virtual void OnSegmentAdded (BinaryNinja::BinaryView *data, BinaryNinja::Segment *segment) override
 
virtual void OnSegmentUpdated (BinaryNinja::BinaryView *data, BinaryNinja::Segment *segment) override
 
virtual void OnSegmentRemoved (BinaryNinja::BinaryView *data, BinaryNinja::Segment *segment) override
 
- Public Member Functions inherited from BinaryNinja::BinaryDataNotification
 BinaryDataNotification ()
 
 BinaryDataNotification (NotificationTypes notifications)
 
virtual ~BinaryDataNotification ()
 
BNBinaryDataNotificationGetCallbacks ()
 
virtual uint64_t OnNotificationBarrier (BinaryView *view)
 
virtual void OnBinaryDataWritten (BinaryView *view, uint64_t offset, size_t len)
 
virtual void OnBinaryDataInserted (BinaryView *view, uint64_t offset, size_t len)
 
virtual void OnBinaryDataRemoved (BinaryView *view, uint64_t offset, uint64_t len)
 
virtual void OnAnalysisFunctionAdded (BinaryView *view, Function *func)
 
virtual void OnAnalysisFunctionRemoved (BinaryView *view, Function *func)
 
virtual void OnAnalysisFunctionUpdated (BinaryView *view, Function *func)
 
virtual void OnAnalysisFunctionUpdateRequested (BinaryView *view, Function *func)
 
virtual void OnDataVariableAdded (BinaryView *view, const DataVariable &var)
 
virtual void OnDataVariableRemoved (BinaryView *view, const DataVariable &var)
 
virtual void OnDataVariableUpdated (BinaryView *view, const DataVariable &var)
 
virtual void OnDataMetadataUpdated (BinaryView *view, uint64_t offset)
 
virtual void OnTagTypeUpdated (BinaryView *view, Ref< TagType > tagTypeRef)
 
virtual void OnTagAdded (BinaryView *view, const TagReference &tagRef)
 
virtual void OnTagRemoved (BinaryView *view, const TagReference &tagRef)
 
virtual void OnTagUpdated (BinaryView *view, const TagReference &tagRef)
 
virtual void OnSymbolAdded (BinaryView *view, Symbol *sym)
 
virtual void OnSymbolRemoved (BinaryView *view, Symbol *sym)
 
virtual void OnSymbolUpdated (BinaryView *view, Symbol *sym)
 
virtual void OnStringFound (BinaryView *data, BNStringType type, uint64_t offset, size_t len)
 
virtual void OnStringRemoved (BinaryView *data, BNStringType type, uint64_t offset, size_t len)
 
virtual void OnTypeDefined (BinaryView *data, const QualifiedName &name, Type *type)
 
virtual void OnTypeUndefined (BinaryView *data, const QualifiedName &name, Type *type)
 
virtual void OnTypeReferenceChanged (BinaryView *data, const QualifiedName &name, Type *type)
 
virtual void OnTypeFieldReferenceChanged (BinaryView *data, const QualifiedName &name, uint64_t offset)
 
virtual void OnSegmentAdded (BinaryView *data, Segment *segment)
 
virtual void OnSegmentRemoved (BinaryView *data, Segment *segment)
 
virtual void OnSegmentUpdated (BinaryView *data, Segment *segment)
 
virtual void OnSectionAdded (BinaryView *data, Section *section)
 
virtual void OnSectionRemoved (BinaryView *data, Section *section)
 
virtual void OnSectionUpdated (BinaryView *data, Section *section)
 
virtual void OnComponentNameUpdated (BinaryView *data, std::string &previousName, Component *component)
 This notification is posted after the display name for a component is updated. More...
 
virtual void OnComponentAdded (BinaryView *data, Component *component)
 This notification is posted after a Component is added to the tree. More...
 
virtual void OnComponentRemoved (BinaryView *data, Component *formerParent, Component *component)
 This notification is posted after a Component is removed from the tree. More...
 
virtual void OnComponentMoved (BinaryView *data, Component *formerParent, Component *newParent, Component *component)
 This notification is posted whenever a component is moved from one component to another. More...
 
virtual void OnComponentFunctionAdded (BinaryView *data, Component *component, Function *function)
 This notification is posted whenever a Function is added to a Component. More...
 
virtual void OnComponentFunctionRemoved (BinaryView *data, Component *component, Function *function)
 This notification is posted whenever a Function is removed from a Component. More...
 
virtual void OnComponentDataVariableAdded (BinaryView *data, Component *component, const DataVariable &var)
 This notification is posted whenever a DataVariable is added to a Component. More...
 
virtual void OnComponentDataVariableRemoved (BinaryView *data, Component *component, const DataVariable &var)
 This notification is posted whenever a DataVariable is removed from a Component. More...
 

Additional Inherited Members

- Public Types inherited from BinaryNinja::BinaryDataNotification
enum  NotificationType : uint64_t {
  NotificationBarrier = 1ULL << 0 , DataWritten = 1ULL << 1 , DataInserted = 1ULL << 2 , DataRemoved = 1ULL << 3 ,
  FunctionAdded = 1ULL << 4 , FunctionRemoved = 1ULL << 5 , FunctionUpdated = 1ULL << 6 , FunctionUpdateRequested = 1ULL << 7 ,
  DataVariableAdded = 1ULL << 8 , DataVariableRemoved = 1ULL << 9 , DataVariableUpdated = 1ULL << 10 , DataMetadataUpdated = 1ULL << 11 ,
  TagTypeUpdated = 1ULL << 12 , TagAdded = 1ULL << 13 , TagRemoved = 1ULL << 14 , TagUpdated = 1ULL << 15 ,
  SymbolAdded = 1ULL << 16 , SymbolRemoved = 1ULL << 17 , SymbolUpdated = 1ULL << 18 , StringFound = 1ULL << 19 ,
  StringRemoved = 1ULL << 20 , TypeDefined = 1ULL << 21 , TypeUndefined = 1ULL << 22 , TypeReferenceChanged = 1ULL << 23 ,
  TypeFieldReferenceChanged = 1ULL << 24 , SegmentAdded = 1ULL << 25 , SegmentRemoved = 1ULL << 26 , SegmentUpdated = 1ULL << 27 ,
  SectionAdded = 1ULL << 28 , SectionRemoved = 1ULL << 29 , SectionUpdated = 1ULL << 30 , ComponentNameUpdated = 1ULL << 31 ,
  ComponentAdded = 1ULL << 32 , ComponentRemoved = 1ULL << 33 , ComponentMoved = 1ULL << 34 , ComponentFunctionAdded = 1ULL << 35 ,
  ComponentFunctionRemoved = 1ULL << 36 , ComponentDataVariableAdded = 1ULL << 37 , ComponentDataVariableRemoved = 1ULL << 38 , BinaryDataUpdates = DataWritten | DataInserted | DataRemoved ,
  FunctionLifetime = FunctionAdded | FunctionRemoved , FunctionUpdates = FunctionLifetime | FunctionUpdated , DataVariableLifetime = DataVariableAdded | DataVariableRemoved , DataVariableUpdates = DataVariableLifetime | DataVariableUpdated ,
  TagLifetime = TagAdded | TagRemoved , TagUpdates = TagLifetime | TagUpdated , SymbolLifetime = SymbolAdded | SymbolRemoved , SymbolUpdates = SymbolLifetime | SymbolUpdated ,
  StringUpdates = StringFound | StringRemoved , TypeLifetime = TypeDefined | TypeUndefined , TypeUpdates = TypeLifetime | TypeReferenceChanged | TypeFieldReferenceChanged , SegmentLifetime = SegmentAdded | SegmentRemoved ,
  SegmentUpdates = SegmentLifetime | SegmentUpdated , SectionLifetime = SectionAdded | SectionRemoved , SectionUpdates = SectionLifetime | SectionUpdated , ComponentUpdates = ComponentAdded | ComponentRemoved | ComponentMoved | ComponentFunctionAdded | ComponentFunctionRemoved | ComponentDataVariableAdded | ComponentDataVariableRemoved
}
 
using NotificationTypes = uint64_t
 

Constructor & Destructor Documentation

◆ SegmentWidget()

SegmentWidget::SegmentWidget ( BinaryViewRef  data)

◆ ~SegmentWidget()

virtual SegmentWidget::~SegmentWidget ( )
virtual

Member Function Documentation

◆ updateFont()

void SegmentWidget::updateFont ( )

◆ highlightRelatedSegments()

void SegmentWidget::highlightRelatedSegments ( SectionRef  section)

◆ itemChanged()

void SegmentWidget::itemChanged ( QTableWidgetItem *  current,
QTableWidgetItem *  previous 
)

◆ OnSegmentAdded()

virtual void SegmentWidget::OnSegmentAdded ( BinaryNinja::BinaryView data,
BinaryNinja::Segment segment 
)
inlineoverridevirtual

◆ OnSegmentUpdated()

virtual void SegmentWidget::OnSegmentUpdated ( BinaryNinja::BinaryView data,
BinaryNinja::Segment segment 
)
inlineoverridevirtual

◆ OnSegmentRemoved()

virtual void SegmentWidget::OnSegmentRemoved ( BinaryNinja::BinaryView data,
BinaryNinja::Segment segment 
)
inlineoverridevirtual

◆ currentSegmentChanged

void SegmentWidget::currentSegmentChanged ( SegmentRef  current)
signal

◆ addressDoubleClicked

void SegmentWidget::addressDoubleClicked ( uint64_t  address)
signal

◆ SectionWidget

class SectionWidget

Signals

void currentSectionChanged (SectionRef current)
 
void addressDoubleClicked (uint64_t address)
 

Public Member Functions

 SectionWidget (BinaryViewRef data)
 
virtual ~SectionWidget ()
 
void updateFont ()
 
void highlightRelatedSections (SegmentRef segment)
 
void itemChanged (QTableWidgetItem *current, QTableWidgetItem *previous)
 
virtual void OnSectionAdded (BinaryNinja::BinaryView *data, BinaryNinja::Section *section) override
 
virtual void OnSectionUpdated (BinaryNinja::BinaryView *data, BinaryNinja::Section *section) override
 
virtual void OnSectionRemoved (BinaryNinja::BinaryView *data, BinaryNinja::Section *section) override
 
- Public Member Functions inherited from BinaryNinja::BinaryDataNotification
 BinaryDataNotification ()
 
 BinaryDataNotification (NotificationTypes notifications)
 
virtual ~BinaryDataNotification ()
 
BNBinaryDataNotificationGetCallbacks ()
 
virtual uint64_t OnNotificationBarrier (BinaryView *view)
 
virtual void OnBinaryDataWritten (BinaryView *view, uint64_t offset, size_t len)
 
virtual void OnBinaryDataInserted (BinaryView *view, uint64_t offset, size_t len)
 
virtual void OnBinaryDataRemoved (BinaryView *view, uint64_t offset, uint64_t len)
 
virtual void OnAnalysisFunctionAdded (BinaryView *view, Function *func)
 
virtual void OnAnalysisFunctionRemoved (BinaryView *view, Function *func)
 
virtual void OnAnalysisFunctionUpdated (BinaryView *view, Function *func)
 
virtual void OnAnalysisFunctionUpdateRequested (BinaryView *view, Function *func)
 
virtual void OnDataVariableAdded (BinaryView *view, const DataVariable &var)
 
virtual void OnDataVariableRemoved (BinaryView *view, const DataVariable &var)
 
virtual void OnDataVariableUpdated (BinaryView *view, const DataVariable &var)
 
virtual void OnDataMetadataUpdated (BinaryView *view, uint64_t offset)
 
virtual void OnTagTypeUpdated (BinaryView *view, Ref< TagType > tagTypeRef)
 
virtual void OnTagAdded (BinaryView *view, const TagReference &tagRef)
 
virtual void OnTagRemoved (BinaryView *view, const TagReference &tagRef)
 
virtual void OnTagUpdated (BinaryView *view, const TagReference &tagRef)
 
virtual void OnSymbolAdded (BinaryView *view, Symbol *sym)
 
virtual void OnSymbolRemoved (BinaryView *view, Symbol *sym)
 
virtual void OnSymbolUpdated (BinaryView *view, Symbol *sym)
 
virtual void OnStringFound (BinaryView *data, BNStringType type, uint64_t offset, size_t len)
 
virtual void OnStringRemoved (BinaryView *data, BNStringType type, uint64_t offset, size_t len)
 
virtual void OnTypeDefined (BinaryView *data, const QualifiedName &name, Type *type)
 
virtual void OnTypeUndefined (BinaryView *data, const QualifiedName &name, Type *type)
 
virtual void OnTypeReferenceChanged (BinaryView *data, const QualifiedName &name, Type *type)
 
virtual void OnTypeFieldReferenceChanged (BinaryView *data, const QualifiedName &name, uint64_t offset)
 
virtual void OnSegmentAdded (BinaryView *data, Segment *segment)
 
virtual void OnSegmentRemoved (BinaryView *data, Segment *segment)
 
virtual void OnSegmentUpdated (BinaryView *data, Segment *segment)
 
virtual void OnSectionAdded (BinaryView *data, Section *section)
 
virtual void OnSectionRemoved (BinaryView *data, Section *section)
 
virtual void OnSectionUpdated (BinaryView *data, Section *section)
 
virtual void OnComponentNameUpdated (BinaryView *data, std::string &previousName, Component *component)
 This notification is posted after the display name for a component is updated. More...
 
virtual void OnComponentAdded (BinaryView *data, Component *component)
 This notification is posted after a Component is added to the tree. More...
 
virtual void OnComponentRemoved (BinaryView *data, Component *formerParent, Component *component)
 This notification is posted after a Component is removed from the tree. More...
 
virtual void OnComponentMoved (BinaryView *data, Component *formerParent, Component *newParent, Component *component)
 This notification is posted whenever a component is moved from one component to another. More...
 
virtual void OnComponentFunctionAdded (BinaryView *data, Component *component, Function *function)
 This notification is posted whenever a Function is added to a Component. More...
 
virtual void OnComponentFunctionRemoved (BinaryView *data, Component *component, Function *function)
 This notification is posted whenever a Function is removed from a Component. More...
 
virtual void OnComponentDataVariableAdded (BinaryView *data, Component *component, const DataVariable &var)
 This notification is posted whenever a DataVariable is added to a Component. More...
 
virtual void OnComponentDataVariableRemoved (BinaryView *data, Component *component, const DataVariable &var)
 This notification is posted whenever a DataVariable is removed from a Component. More...
 

Additional Inherited Members

- Public Types inherited from BinaryNinja::BinaryDataNotification
enum  NotificationType : uint64_t {
  NotificationBarrier = 1ULL << 0 , DataWritten = 1ULL << 1 , DataInserted = 1ULL << 2 , DataRemoved = 1ULL << 3 ,
  FunctionAdded = 1ULL << 4 , FunctionRemoved = 1ULL << 5 , FunctionUpdated = 1ULL << 6 , FunctionUpdateRequested = 1ULL << 7 ,
  DataVariableAdded = 1ULL << 8 , DataVariableRemoved = 1ULL << 9 , DataVariableUpdated = 1ULL << 10 , DataMetadataUpdated = 1ULL << 11 ,
  TagTypeUpdated = 1ULL << 12 , TagAdded = 1ULL << 13 , TagRemoved = 1ULL << 14 , TagUpdated = 1ULL << 15 ,
  SymbolAdded = 1ULL << 16 , SymbolRemoved = 1ULL << 17 , SymbolUpdated = 1ULL << 18 , StringFound = 1ULL << 19 ,
  StringRemoved = 1ULL << 20 , TypeDefined = 1ULL << 21 , TypeUndefined = 1ULL << 22 , TypeReferenceChanged = 1ULL << 23 ,
  TypeFieldReferenceChanged = 1ULL << 24 , SegmentAdded = 1ULL << 25 , SegmentRemoved = 1ULL << 26 , SegmentUpdated = 1ULL << 27 ,
  SectionAdded = 1ULL << 28 , SectionRemoved = 1ULL << 29 , SectionUpdated = 1ULL << 30 , ComponentNameUpdated = 1ULL << 31 ,
  ComponentAdded = 1ULL << 32 , ComponentRemoved = 1ULL << 33 , ComponentMoved = 1ULL << 34 , ComponentFunctionAdded = 1ULL << 35 ,
  ComponentFunctionRemoved = 1ULL << 36 , ComponentDataVariableAdded = 1ULL << 37 , ComponentDataVariableRemoved = 1ULL << 38 , BinaryDataUpdates = DataWritten | DataInserted | DataRemoved ,
  FunctionLifetime = FunctionAdded | FunctionRemoved , FunctionUpdates = FunctionLifetime | FunctionUpdated , DataVariableLifetime = DataVariableAdded | DataVariableRemoved , DataVariableUpdates = DataVariableLifetime | DataVariableUpdated ,
  TagLifetime = TagAdded | TagRemoved , TagUpdates = TagLifetime | TagUpdated , SymbolLifetime = SymbolAdded | SymbolRemoved , SymbolUpdates = SymbolLifetime | SymbolUpdated ,
  StringUpdates = StringFound | StringRemoved , TypeLifetime = TypeDefined | TypeUndefined , TypeUpdates = TypeLifetime | TypeReferenceChanged | TypeFieldReferenceChanged , SegmentLifetime = SegmentAdded | SegmentRemoved ,
  SegmentUpdates = SegmentLifetime | SegmentUpdated , SectionLifetime = SectionAdded | SectionRemoved , SectionUpdates = SectionLifetime | SectionUpdated , ComponentUpdates = ComponentAdded | ComponentRemoved | ComponentMoved | ComponentFunctionAdded | ComponentFunctionRemoved | ComponentDataVariableAdded | ComponentDataVariableRemoved
}
 
using NotificationTypes = uint64_t
 

Constructor & Destructor Documentation

◆ SectionWidget()

SectionWidget::SectionWidget ( BinaryViewRef  data)

◆ ~SectionWidget()

virtual SectionWidget::~SectionWidget ( )
virtual

Member Function Documentation

◆ updateFont()

void SectionWidget::updateFont ( )

◆ highlightRelatedSections()

void SectionWidget::highlightRelatedSections ( SegmentRef  segment)

◆ itemChanged()

void SectionWidget::itemChanged ( QTableWidgetItem *  current,
QTableWidgetItem *  previous 
)

◆ OnSectionAdded()

virtual void SectionWidget::OnSectionAdded ( BinaryNinja::BinaryView data,
BinaryNinja::Section section 
)
inlineoverridevirtual

◆ OnSectionUpdated()

virtual void SectionWidget::OnSectionUpdated ( BinaryNinja::BinaryView data,
BinaryNinja::Section section 
)
inlineoverridevirtual

◆ OnSectionRemoved()

virtual void SectionWidget::OnSectionRemoved ( BinaryNinja::BinaryView data,
BinaryNinja::Section section 
)
inlineoverridevirtual

◆ currentSectionChanged

void SectionWidget::currentSectionChanged ( SectionRef  current)
signal

◆ addressDoubleClicked

void SectionWidget::addressDoubleClicked ( uint64_t  address)
signal

◆ MemoryMapSidebarWidget

class MemoryMapSidebarWidget

Public Member Functions

 MemoryMapSidebarWidget (ViewFrame *view, BinaryViewRef data)
 
void notifyFontChanged () override
 
QWidget * headerWidget () override
 
- Public Member Functions inherited from SidebarWidget
 SidebarWidget (const QString &title)
 
const QString & title () const
 
void enableRefreshTimer (int interval)
 
void setRefreshQuiesce (bool enable)
 
virtual void notifyRefresh ()
 
virtual void notifyFontChanged ()
 
virtual void notifyOffsetChanged (uint64_t)
 
virtual void notifyThemeChanged ()
 
virtual void notifyViewChanged (ViewFrame *)
 
virtual void notifyViewLocationChanged (View *, const ViewLocation &)
 
virtual void focus ()
 
virtual QWidget * headerWidget ()
 

Additional Inherited Members

- Protected Attributes inherited from SidebarWidget
QString m_title
 
UIActionHandler m_actionHandler
 
ContextMenuManagerm_contextMenuManager = nullptr
 
Menum_menu = nullptr
 
QTimer * m_updateTimer = nullptr
 

Constructor & Destructor Documentation

◆ MemoryMapSidebarWidget()

MemoryMapSidebarWidget::MemoryMapSidebarWidget ( ViewFrame view,
BinaryViewRef  data 
)

Member Function Documentation

◆ notifyFontChanged()

void MemoryMapSidebarWidget::notifyFontChanged ( )
overridevirtual

Reimplemented from SidebarWidget.

◆ headerWidget()

QWidget * MemoryMapSidebarWidget::headerWidget ( )
inlineoverridevirtual

Reimplemented from SidebarWidget.

◆ MemoryMapSidebarWidgetType

class MemoryMapSidebarWidgetType

Public Member Functions

 MemoryMapSidebarWidgetType ()
 
SidebarWidgetcreateWidget (ViewFrame *frame, BinaryViewRef data) override
 
- Public Member Functions inherited from SidebarWidgetType
 SidebarWidgetType (const QImage &icon, const QString &name)
 
virtual ~SidebarWidgetType ()
 
const SidebarIconicon () const
 
const QString & name () const
 
virtual bool isInReferenceArea () const
 
virtual bool viewSensitive () const
 
virtual SidebarWidgetcreateWidget (ViewFrame *frame, BinaryViewRef data)=0
 
virtual SidebarWidgetcreateInvalidContextWidget ()
 
void updateTheme ()
 

Constructor & Destructor Documentation

◆ MemoryMapSidebarWidgetType()

MemoryMapSidebarWidgetType::MemoryMapSidebarWidgetType ( )

Member Function Documentation

◆ createWidget()

SidebarWidget * MemoryMapSidebarWidgetType::createWidget ( ViewFrame frame,
BinaryViewRef  data 
)
overridevirtual

Implements SidebarWidgetType.