diff options
| author | Jordan Wiens <github@psifertex.com> | 2025-12-18 21:52:10 -0500 |
|---|---|---|
| committer | Jordan Wiens <github@psifertex.com> | 2025-12-18 21:52:14 -0500 |
| commit | f96697f42d7535d8a7ad9d66f965d295b2c2eaf0 (patch) | |
| tree | 37bdff38515396981e01381ebf21d2d3ba3386c8 | |
| parent | 5b804c2c7bae72ccbc2865002d427b52ac4c0b0f (diff) | |
entropy tooltip showing offset and fix python version
| -rw-r--r-- | examples/triage/entropy.cpp | 14 | ||||
| -rw-r--r-- | examples/triage/entropy.h | 1 | ||||
| -rw-r--r-- | python/examples/triage/entropy.py | 10 | ||||
| -rw-r--r-- | python/examples/triage/headers.py | 1 |
4 files changed, 25 insertions, 1 deletions
diff --git a/examples/triage/entropy.cpp b/examples/triage/entropy.cpp index 3e3b0963..da089fd6 100644 --- a/examples/triage/entropy.cpp +++ b/examples/triage/entropy.cpp @@ -75,6 +75,7 @@ EntropyWidget::EntropyWidget(QWidget* parent, TriageView* view, BinaryViewRef da timer->start(); setCursor(Qt::PointingHandCursor); + setMouseTracking(true); setMinimumHeight(UIContext::getScaledWindowSize(32, 32).height()); } @@ -117,3 +118,16 @@ void EntropyWidget::mousePressEvent(QMouseEvent* event) uint64_t offset = (uint64_t)(frac * m_width * m_blockSize); m_view->navigateToFileOffset(offset); } + + +void EntropyWidget::mouseMoveEvent(QMouseEvent* event) +{ + float frac = (float)event->pos().x() / (float)rect().width(); + uint64_t offset = (uint64_t)(frac * m_width * m_blockSize); + uint64_t addr = 0; + bool hasAddr = m_data->GetAddressForDataOffset(offset, addr); + if (hasAddr) + setToolTip(QString("0x%1").arg(addr, 0, 16)); + else + setToolTip(QString("File offset: 0x%1").arg(offset, 0, 16)); +} diff --git a/examples/triage/entropy.h b/examples/triage/entropy.h index a48097c4..821dfb7b 100644 --- a/examples/triage/entropy.h +++ b/examples/triage/entropy.h @@ -44,6 +44,7 @@ class EntropyWidget : public QWidget protected: virtual void paintEvent(QPaintEvent* event) override; virtual void mousePressEvent(QMouseEvent* event) override; + virtual void mouseMoveEvent(QMouseEvent* event) override; private Q_SLOTS: void timerExpired(); diff --git a/python/examples/triage/entropy.py b/python/examples/triage/entropy.py index 53868cc9..a2ab41a6 100644 --- a/python/examples/triage/entropy.py +++ b/python/examples/triage/entropy.py @@ -54,6 +54,7 @@ class EntropyWidget(QWidget): self.timer.start() self.setCursor(Qt.PointingHandCursor) + self.setMouseTracking(True) self.setMinimumHeight(UIContext.getScaledWindowSize(32, 32).height()) def paintEvent(self, event): @@ -78,3 +79,12 @@ class EntropyWidget(QWidget): frac = float(event.x()) / self.rect().width() offset = int(frac * self.width * self.block_size) self.view.navigateToFileOffset(offset) + + def mouseMoveEvent(self, event): + frac = float(event.x()) / self.rect().width() + offset = int(frac * self.width * self.block_size) + addr = self.data.get_address_for_data_offset(offset) + if addr is not None: + self.setToolTip(f"0x{addr:x}") + else: + self.setToolTip(f"File offset: 0x{offset:x}") diff --git a/python/examples/triage/headers.py b/python/examples/triage/headers.py index d743e8c5..645c29ca 100644 --- a/python/examples/triage/headers.py +++ b/python/examples/triage/headers.py @@ -1,5 +1,4 @@ import time -from binaryninja.binaryview import StructuredDataView import binaryninjaui from binaryninjaui import ViewFrame, UIContext from binaryninja.enums import ThemeColor |
