1
0
Fork 0

GUI: Added follow DWORD/QWORD in Dump in the CPUDump

This commit is contained in:
Mr. eXoDia 2015-07-23 17:04:08 +02:00
parent f4970331e9
commit c567996372
2 changed files with 19 additions and 0 deletions

View File

@ -150,6 +150,14 @@ void CPUDump::setupContextMenu()
#endif //_WIN64
connect(mFollowData, SIGNAL(triggered()), this, SLOT(followDataSlot()));
//Follow DWORD/QWORD in Disasm
#ifdef _WIN64
mFollowDataDump = new QAction("&Follow QWORD in Dump", this);
#else //x86
mFollowDataDump = new QAction("&Follow DWORD in Dump", this);
#endif //_WIN64
connect(mFollowDataDump, SIGNAL(triggered()), this, SLOT(followDataDumpSlot()));
//Label
mSetLabelAction = new QAction("Set Label", this);
mSetLabelAction->setShortcutContext(Qt::WidgetShortcut);
@ -516,7 +524,10 @@ void CPUDump::contextMenuEvent(QContextMenuEvent* event)
uint_t ptr = 0;
DbgMemRead(selectedAddr, (unsigned char*)&ptr, sizeof(uint_t));
if(DbgMemIsValidReadPtr(ptr))
{
wMenu->addAction(mFollowData);
wMenu->addAction(mFollowDataDump);
}
wMenu->addAction(mSetLabelAction);
wMenu->addMenu(mBreakpointMenu);
@ -1398,6 +1409,12 @@ void CPUDump::followDataSlot()
DbgCmdExec(QString("disasm [%1]").arg(addrText).toUtf8().constData());
}
void CPUDump::followDataDumpSlot()
{
QString addrText = QString("%1").arg(rvaToVa(getSelectionStart()), sizeof(int_t) * 2, 16, QChar('0')).toUpper();
DbgCmdExec(QString("dump [%1]").arg(addrText).toUtf8().constData());
}
void CPUDump::selectionUpdatedSlot()
{
QString selStart = QString("%1").arg(rvaToVa(getSelectionStart()), sizeof(int_t) * 2, 16, QChar('0')).toUpper();

View File

@ -81,6 +81,7 @@ public slots:
void findReferencesSlot();
void followInDisasmSlot();
void followDataSlot();
void followDataDumpSlot();
void selectionUpdatedSlot();
void yaraSlot();
@ -173,6 +174,7 @@ private:
QAction* mDataCopyAction;
QAction* mUndoSelection;
QAction* mFollowData;
QAction* mFollowDataDump;
QMenu* mSpecialMenu;
QMenu* mCustomMenu;