1
0
Fork 0

GUI: added Fill with NOPs in disassembly + fixed binary menu separator in disasm/dump/stack

This commit is contained in:
Mr. eXoDia 2014-07-07 01:51:22 +02:00
parent 1249b04510
commit 95c6c08126
4 changed files with 34 additions and 10 deletions

View File

@ -241,9 +241,6 @@ void CPUDisassembly::setupRightClickContextMenu()
mBinaryMenu->addAction(mBinaryEditAction);
connect(mBinaryEditAction, SIGNAL(triggered()), this, SLOT(binaryEditSlot()));
//Binary->Separator
mBinaryMenu->addSeparator();
//Binary->Fill
mBinaryFillAction = new QAction("&Fill...", this);
mBinaryFillAction->setShortcutContext(Qt::WidgetShortcut);
@ -252,6 +249,17 @@ void CPUDisassembly::setupRightClickContextMenu()
connect(mBinaryFillAction, SIGNAL(triggered()), this, SLOT(binaryFillSlot()));
mBinaryMenu->addAction(mBinaryFillAction);
//Binary->Fill with NOPs
mBinaryFillNopsAction = new QAction("Fill with &NOPs", this);
mBinaryFillNopsAction->setShortcutContext(Qt::WidgetShortcut);
mBinaryFillNopsAction->setShortcut(QKeySequence("ctrl+9"));
this->addAction(mBinaryFillNopsAction);
connect(mBinaryFillNopsAction, SIGNAL(triggered()), this, SLOT(binaryFillNopsSlot()));
mBinaryMenu->addAction(mBinaryFillNopsAction);
//Binary->Separator
mBinaryMenu->addSeparator();
//Binary->Copy
mBinaryCopyAction = new QAction("&Copy", this);
mBinaryCopyAction->setShortcutContext(Qt::WidgetShortcut);
@ -895,6 +903,21 @@ void CPUDisassembly::binaryFillSlot()
GuiUpdateAllViews();
}
void CPUDisassembly::binaryFillNopsSlot()
{
HexEditDialog hexEdit(this);
int_t selStart = getSelectionStart();
int_t selSize = getSelectionEnd() - selStart + 1;
byte_t* data = new byte_t[selSize];
mMemPage->read(data, selStart, selSize);
hexEdit.mHexEdit->setData(QByteArray((const char*)data, selSize));
delete [] data;
hexEdit.mHexEdit->fill(0, QString("90"));
QByteArray patched(hexEdit.mHexEdit->data());
mMemPage->write(patched, selStart, patched.size());
GuiUpdateAllViews();
}
void CPUDisassembly::binaryCopySlot()
{
HexEditDialog hexEdit(this);
@ -949,4 +972,3 @@ void CPUDisassembly::binaryPasteIgnoreSizeSlot()
mMemPage->write(patched.constData(), selStart, patched.size());
GuiUpdateAllViews();
}

View File

@ -61,6 +61,7 @@ public slots:
void enableHighlightingMode();
void binaryEditSlot();
void binaryFillSlot();
void binaryFillNopsSlot();
void binaryCopySlot();
void binaryPasteSlot();
void binaryPasteIgnoreSizeSlot();
@ -79,6 +80,7 @@ private:
QAction* mBinaryEditAction;
QAction* mBinaryFillAction;
QAction* mBinaryFillNopsAction;
QAction* mBinaryCopyAction;
QAction* mBinaryPasteAction;
QAction* mBinaryPasteIgnoreSizeAction;

View File

@ -90,9 +90,6 @@ void CPUDump::setupContextMenu()
connect(mBinaryEditAction, SIGNAL(triggered()), this, SLOT(binaryEditSlot()));
mBinaryMenu->addAction(mBinaryEditAction);
//Binary->Separator
mBinaryMenu->addSeparator();
//Binary->Fill
mBinaryFillAction = new QAction("&Fill...", this);
mBinaryFillAction->setShortcutContext(Qt::WidgetShortcut);
@ -101,6 +98,9 @@ void CPUDump::setupContextMenu()
connect(mBinaryFillAction, SIGNAL(triggered()), this, SLOT(binaryFillSlot()));
mBinaryMenu->addAction(mBinaryFillAction);
//Binary->Separator
mBinaryMenu->addSeparator();
//Binary->Copy
mBinaryCopyAction = new QAction("&Copy", this);
mBinaryCopyAction->setShortcutContext(Qt::WidgetShortcut);

View File

@ -61,9 +61,6 @@ void CPUStack::setupContextMenu()
connect(mBinaryEditAction, SIGNAL(triggered()), this, SLOT(binaryEditSlot()));
mBinaryMenu->addAction(mBinaryEditAction);
//Binary->Separator
mBinaryMenu->addSeparator();
//Binary->Fill
mBinaryFillAction = new QAction("&Fill...", this);
mBinaryFillAction->setShortcutContext(Qt::WidgetShortcut);
@ -72,6 +69,9 @@ void CPUStack::setupContextMenu()
connect(mBinaryFillAction, SIGNAL(triggered()), this, SLOT(binaryFillSlot()));
mBinaryMenu->addAction(mBinaryFillAction);
//Binary->Separator
mBinaryMenu->addSeparator();
//Binary->Copy
mBinaryCopyAction = new QAction("&Copy", this);
mBinaryCopyAction->setShortcutContext(Qt::WidgetShortcut);