201 lines
5.2 KiB
C++
201 lines
5.2 KiB
C++
#ifndef CPUDUMP_H
|
|
#define CPUDUMP_H
|
|
|
|
#include "HexDump.h"
|
|
#include "GotoDialog.h"
|
|
#include "CPUDisassembly.h"
|
|
|
|
class CPUDump : public HexDump
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
explicit CPUDump(CPUDisassembly* disas, QWidget* parent = 0);
|
|
QString paintContent(QPainter* painter, int_t rowBase, int rowOffset, int col, int x, int y, int w, int h);
|
|
void setupContextMenu();
|
|
void contextMenuEvent(QContextMenuEvent* event);
|
|
void mouseDoubleClickEvent(QMouseEvent* event);
|
|
|
|
signals:
|
|
void displayReferencesWidget();
|
|
|
|
public slots:
|
|
void refreshShortcutsSlot();
|
|
void memoryAccessSingleshootSlot();
|
|
void memoryAccessRestoreSlot();
|
|
void memoryWriteSingleshootSlot();
|
|
void memoryWriteRestoreSlot();
|
|
void memoryExecuteSingleshootSlot();
|
|
void memoryExecuteRestoreSlot();
|
|
void memoryRemoveSlot();
|
|
void hardwareAccess1Slot();
|
|
void hardwareAccess2Slot();
|
|
void hardwareAccess4Slot();
|
|
void hardwareAccess8Slot();
|
|
void hardwareWrite1Slot();
|
|
void hardwareWrite2Slot();
|
|
void hardwareWrite4Slot();
|
|
void hardwareWrite8Slot();
|
|
void hardwareExecuteSlot();
|
|
void hardwareRemoveSlot();
|
|
|
|
void setLabelSlot();
|
|
void gotoExpressionSlot();
|
|
void gotoFileOffsetSlot();
|
|
|
|
void hexAsciiSlot();
|
|
void hexUnicodeSlot();
|
|
|
|
void textAsciiSlot();
|
|
void textUnicodeSlot();
|
|
|
|
void integerSignedShortSlot();
|
|
void integerSignedLongSlot();
|
|
void integerSignedLongLongSlot();
|
|
void integerUnsignedShortSlot();
|
|
void integerUnsignedLongSlot();
|
|
void integerUnsignedLongLongSlot();
|
|
void integerHexShortSlot();
|
|
void integerHexLongSlot();
|
|
void integerHexLongLongSlot();
|
|
|
|
void floatFloatSlot();
|
|
void floatDoubleSlot();
|
|
void floatLongDoubleSlot();
|
|
|
|
void addressSlot();
|
|
void disassemblySlot();
|
|
|
|
void selectionGet(SELECTIONDATA* selection);
|
|
void selectionSet(const SELECTIONDATA* selection);
|
|
|
|
void binaryEditSlot();
|
|
void binaryFillSlot();
|
|
void binaryCopySlot();
|
|
void binaryPasteSlot();
|
|
void binaryPasteIgnoreSizeSlot();
|
|
void findPattern();
|
|
void undoSelectionSlot();
|
|
void followStackSlot();
|
|
void findReferencesSlot();
|
|
void followInDisasmSlot();
|
|
|
|
void selectionUpdatedSlot();
|
|
void yaraSlot();
|
|
void dataCopySlot();
|
|
|
|
private:
|
|
QMenu* mBreakpointMenu;
|
|
|
|
QMenu* mMemoryAccessMenu;
|
|
QAction* mMemoryAccessSingleshoot;
|
|
QAction* mMemoryAccessRestore;
|
|
QMenu* mMemoryWriteMenu;
|
|
QAction* mMemoryWriteSingleshoot;
|
|
QAction* mMemoryWriteRestore;
|
|
QMenu* mMemoryExecuteMenu;
|
|
QAction* mMemoryExecuteSingleshoot;
|
|
QAction* mMemoryExecuteRestore;
|
|
QAction* mMemoryRemove;
|
|
QMenu* mHardwareAccessMenu;
|
|
QAction* mHardwareAccess1;
|
|
QAction* mHardwareAccess2;
|
|
QAction* mHardwareAccess4;
|
|
#ifdef _WIN64
|
|
QAction* mHardwareAccess8;
|
|
#endif //_WIN64
|
|
QMenu* mHardwareWriteMenu;
|
|
QAction* mHardwareWrite1;
|
|
QAction* mHardwareWrite2;
|
|
QAction* mHardwareWrite4;
|
|
#ifdef _WIN64
|
|
QAction* mHardwareWrite8;
|
|
#endif //_WIN64
|
|
QAction* mHardwareExecute;
|
|
QAction* mHardwareRemove;
|
|
|
|
QAction* mFollowStack;
|
|
|
|
QMenu* mGotoMenu;
|
|
QAction* mGotoExpression;
|
|
QAction* mGotoFileOffset;
|
|
|
|
QAction* mFollowInDisasm;
|
|
|
|
QMenu* mHexMenu;
|
|
QAction* mHexAsciiAction;
|
|
QAction* mHexUnicodeAction;
|
|
|
|
QMenu* mTextMenu;
|
|
QAction* mTextAsciiAction;
|
|
QAction* mTextUnicodeAction;
|
|
|
|
QMenu* mIntegerMenu;
|
|
QAction* mIntegerSignedShortAction;
|
|
QAction* mIntegerSignedLongAction;
|
|
#ifdef _WIN64
|
|
QAction* mIntegerSignedLongLongAction;
|
|
#endif //_WIN64
|
|
QAction* mIntegerUnsignedShortAction;
|
|
QAction* mIntegerUnsignedLongAction;
|
|
#ifdef _WIN64
|
|
QAction* mIntegerUnsignedLongLongAction;
|
|
#endif //_WIN64
|
|
QAction* mIntegerHexShortAction;
|
|
QAction* mIntegerHexLongAction;
|
|
#ifdef _WIN64
|
|
QAction* mIntegerHexLongLongAction;
|
|
#endif //_WIN64
|
|
|
|
QMenu* mFloatMenu;
|
|
QAction* mFloatFloatAction;
|
|
QAction* mFloatDoubleAction;
|
|
QAction* mFloatLongDoubleAction;
|
|
|
|
QAction* mAddressAction;
|
|
QAction* mDisassemblyAction;
|
|
|
|
QAction* mSetLabelAction;
|
|
|
|
QMenu* mBinaryMenu;
|
|
QAction* mBinaryEditAction;
|
|
QAction* mBinaryFillAction;
|
|
QAction* mBinaryCopyAction;
|
|
QAction* mBinaryPasteAction;
|
|
QAction* mBinaryPasteIgnoreSizeAction;
|
|
QAction* mFindPatternAction;
|
|
QAction* mFindReferencesAction;
|
|
QAction* mYaraAction;
|
|
QAction* mDataCopyAction;
|
|
QAction* mUndoSelection;
|
|
|
|
QMenu* mSpecialMenu;
|
|
QMenu* mCustomMenu;
|
|
QMenu* mPluginMenu;
|
|
|
|
GotoDialog* mGoto;
|
|
CPUDisassembly* mDisas;
|
|
|
|
enum ViewEnum_t
|
|
{
|
|
ViewHexAscii = 0,
|
|
ViewHexUnicode,
|
|
ViewTextAscii,
|
|
ViewTextUnicode,
|
|
ViewIntegerSignedShort,
|
|
ViewIntegerSignedLong,
|
|
ViewIntegerSignedLongLong,
|
|
ViewIntegerUnsignedShort,
|
|
ViewIntegerUnsignedLong,
|
|
ViewIntegerUnsignedLongLong,
|
|
ViewIntegerHexShort,
|
|
ViewIntegerHexLong,
|
|
ViewIntegerHexLongLong,
|
|
ViewFloatFloat,
|
|
ViewFloatDouble,
|
|
ViewFloatLongDouble,
|
|
ViewAddress
|
|
};
|
|
};
|
|
|
|
#endif // CPUDUMP_H
|