c4e8a1c178
* Small refactor for the widgets of Cutter This refactor include the following : * Creation of a new class Creation of a new class, named CutterWidget, that inherits from QDockWidget and is used to represent all of the widgets of the main window. The goal of this class is to regroup all the behaviour shared by the widgets of Cutter. For example : in the constructor, instructions corresponding of those present in the macro **ADD_DOCK** (in MainWindow.cpp) are executed. This was made because I think that the macro **ADD_DOCK** which is used to construct the widgets does not take advantage of the object structure. * Ensure that every widget has a parent Some widgets were created using the constructor QDockWidget, but using **nullptr** (default) as argument, thus they haven't got any parent. The constructor of a CutterWidget takes as argument the MainWindow and an action (optional) and calls the constructor of QDockWidget with the main window as argument. This is valid under the assumption that it is mandatory for every widget to have the main window as a parent. * Constructors removal The constructors of some widgets are not used anywhere and does not seem not fullfill any current usecase. They were removed. * Renaming CutterWidget to CutterDockWidget |
||
---|---|---|
.github | ||
cutter_win32 | ||
docs | ||
radare2@4dffa5cd2e | ||
src | ||
.appveyor.yml | ||
.gitignore | ||
.gitmodules | ||
.travis.yml | ||
build.bat | ||
build.sh | ||
CONTRIBUTING.md | ||
COPYING | ||
meson.py | ||
prepare_r2.bat | ||
README.md |
Cutter
A Qt and C++ GUI for radare2 reverse engineering framework (originally named Iaito).
Screenshot
Disclaimer
Cutter is not aimed at existing radare2 users. It instead focuses on those whose are not yet radare2 users because of the learning curve, because they don't like CLI applications or because of the difficulty/instability of radare2.
Installing
Downloading a release
Cutter is available for all platforms (Linux, OS X, Windows). You can download the latest release here.
Building from source
Requirements
Cutter is based on Qt so you will need to have it installed.
- Download: Qt Open Source
- Add Qt 5.9.1: http://doc.qt.io/qtcreator/creator-project-qmake.html
Building
First you must clone the repository:
git clone --recurse-submodules https://github.com/radareorg/cutter
cd cutter
Building on linux:
./build.sh
Building on Windows:
set ARCH=x64
set PYTHON=C:\Python36-x64
prepare_r2.bat
build.bat
If any of those do not work, check the more detailed version here.
Check this page for common issues.
Keyboard shortcuts
Shortcut | Function |
---|---|
Global shortcuts: | |
. | Focus console input |
G & S | Focus search bar |
F5 | Refresh contents |
Disassembly view: | |
Esc | Seek to previous position |
Space | Switch to disassembly graph view |
Ctrl/Cmd+C | Copy |
; | Add comment |
N | Rename current function/flag |
Shift+N | Rename flag/function used here |
X | Show Xrefs |
Disassembly graph view: | |
Esc | Seek to previous position |
Space | Switch to disassembly view |
+ | Zoom in |
- | Zoom out |
= | Reset zoom |
J | Next instruction |
K | Previous instruction |
Help
Right now the best place to obtain help from cutter developers and community is joining this telegram group:
- https://t.me/r2cutter
- #cutter on irc.freenode.net
- @r2gui on Twitter