Skip to content

Commit 9f9cf3a

Browse files
committed
add go-to address support in native triage view
1 parent f96697f commit 9f9cf3a

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

examples/triage/view.cpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,9 @@ TriageView::TriageView(QWidget* parent, BinaryViewRef data) : QScrollArea(parent
152152

153153
if (m_fullAnalysisButton && (BinaryNinja::Settings::Instance()->Get<std::string>("analysis.mode", data) == "full"))
154154
m_fullAnalysisButton->hide();
155+
156+
// Bind the "Go to Address..." action
157+
actionHandler()->bindAction("Go to Address...", UIAction([this]() { goToAddress(); }));
155158
}
156159

157160

@@ -218,6 +221,22 @@ void TriageView::startFullAnalysis()
218221
}
219222

220223

224+
void TriageView::goToAddress()
225+
{
226+
uint64_t addr;
227+
if (!ViewFrame::getAddressFromInput(this, m_data, addr, getCurrentOffset()))
228+
return;
229+
230+
ViewFrame* frame = ViewFrame::viewFrameForWidget(this);
231+
if (!frame)
232+
return;
233+
234+
QString viewType = BinaryNinja::Settings::Instance()->Get<bool>("ui.view.graph.preferred") ? "Graph" : "Linear";
235+
QString dataType = QString::fromStdString(m_data->GetTypeName());
236+
frame->navigate(viewType + ":" + dataType, addr);
237+
}
238+
239+
221240
void TriageView::navigateToFileOffset(uint64_t offset)
222241
{
223242
if (!m_byteView)

examples/triage/view.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ class TriageView : public QScrollArea, public View
2929
protected:
3030
virtual void focusInEvent(QFocusEvent* event) override;
3131

32+
private:
33+
void goToAddress();
34+
3235
private Q_SLOTS:
3336
void startFullAnalysis();
3437
};

0 commit comments

Comments
 (0)