cutter/README.md

123 lines
4.5 KiB
Markdown
Raw Normal View History

2017-10-03 12:45:29 +00:00
# Cutter
[![Build Status](https://travis-ci.org/radareorg/cutter.svg?branch=master)](https://travis-ci.org/radareorg/cutter)
[![Build status](https://ci.appveyor.com/api/projects/status/s9rkx1dn3uy4bfdx/branch/master?svg=true)](https://ci.appveyor.com/project/radare/cutter/branch/master)
2017-12-02 18:12:37 +00:00
A Qt and C++ GUI for radare2 reverse engineering framework (originally named Iaito).
## Screenshot
2017-10-01 19:31:01 +00:00
![Screenshot](https://raw.githubusercontent.com/radareorg/cutter/master/docs/screenshot.png)
## Disclaimer
2017-10-14 18:25:23 +00:00
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.
2017-12-02 18:12:37 +00:00
## Installing
2017-12-02 18:12:37 +00:00
### Downloading a release
2018-03-07 10:47:00 +00:00
Cutter is available for all platforms (Linux, OS X, Windows).
2017-12-02 18:12:37 +00:00
You can download the latest release [here](https://github.com/radareorg/cutter/releases).
2018-07-14 20:35:39 +00:00
* Linux: use the [AppImage](https://github.com/radareorg/cutter/releases/download/v1.6/Cutter-v1.6-x86_64.AppImage) file. Then just make it executable and run it:
* `chmod +x Cutter-v1.6-x86_64.AppImage`
* `./Cutter-v1.6-x86_64.AppImage`
2017-10-14 18:25:23 +00:00
2017-12-02 18:12:37 +00:00
### Building from source
#### Requirements
2017-03-31 09:37:01 +00:00
2017-12-02 18:12:37 +00:00
Cutter is based on Qt so you will need to have it installed.
- Download: [Qt Open Source](https://www.qt.io/download-qt-for-application-development)
- Add Qt 5.9: http://doc.qt.io/qtcreator/creator-project-qmake.html
2017-12-02 18:12:37 +00:00
#### Building
2017-11-20 16:56:06 +00:00
First you must clone the repository:
```sh
git clone --recurse-submodules https://github.com/radareorg/cutter
2017-11-20 16:56:06 +00:00
cd cutter
```
2017-11-20 17:50:55 +00:00
2018-03-06 16:50:09 +00:00
Building on linux:
2017-11-20 16:56:06 +00:00
```sh
2018-03-06 16:50:09 +00:00
./build.sh
2017-11-20 16:56:06 +00:00
```
##### Important note:
When using the default `build.sh` script you might encounter a `ModuleNotFoundError` upon starting Cutter.
This can be resolved by either
1. disabling the optional jupyter support during building by modifying `build.sh` as follows:
* Uncomment `#QMAKE_CONF="CUTTER_ENABLE_JUPYTER=false CUTTER_ENABLE_QTWEBENGINE=false"`
* Comment out the prior empty `QMAKE_CONF=""`
2. or alternatively by installing the two python dependencies manually afterwards via:
```
pip3 install notebook jupyter_client
```
____
2017-11-20 16:56:06 +00:00
2018-03-06 16:50:09 +00:00
Building on Windows:
2018-03-20 20:44:32 +00:00
```
2018-03-06 16:50:09 +00:00
prepare_r2.bat
build.bat
2017-11-20 16:56:06 +00:00
```
2018-03-06 16:50:09 +00:00
If any of those do not work, check the more detailed version [here](https://github.com/radareorg/cutter/blob/master/docs/Compiling.md).
2018-03-02 12:05:39 +00:00
Check this [page](https://github.com/radareorg/cutter/blob/master/docs/Common-errors.md) for common issues.
### Docker
To deploy *cutter* using a pre-built `Dockerfile`, it's possible to use the [provided configuration](docker). The corresponding `README.md` file also contains instructions on how to get started using the docker image with minimal effort.
### Global shortcuts
| Shortcut | Function |
| ---------- | ------------------- |
| . | Focus console input |
| G/S | Focus search bar |
| Ctrl/Cmd+R | Refresh contents |
### Disassembly view shortcuts
| Shortcut | Function |
| ---------- | -------------------------------- |
| 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 |
### Graph view shortcuts
| Shortcut | Function |
| ------------------- | -------------------------- |
| Esc | Seek to previous position |
| Space | Switch to disassembly view |
| Ctrl/Cmd+MouseWheel | Zoom |
| + | Zoom in |
| - | Zoom out |
| = | Reset zoom |
| J | Next instruction |
| K | Previous instruction |
2018-08-12 10:03:09 +00:00
| T | Follow True/Unconditional branch |
| F | Follow False/Unconditional branch |
### Debug shortcuts
| Shortcut | Function |
| --------------- | -------------- |
| F9 | Start debug |
| F7 | Step into |
| F8 | Step over |
| F5 | Continue |
| F2/(Ctrl/Cmd)+B | Add breakpoint |
2017-03-30 08:43:36 +00:00
## Help
2017-09-25 12:55:41 +00:00
Right now the best place to obtain help from *cutter* developers and community is joining this telegram group:
2017-03-30 08:43:36 +00:00
- https://t.me/r2cutter
2017-10-04 11:37:35 +00:00
- #cutter on irc.freenode.net
2018-02-25 08:53:29 +00:00
- [@r2gui](https://twitter.com/r2gui) on Twitter