Top Related Projects
UNIX-like reverse engineering framework and command-line toolset
Ghidra is a software reverse engineering (SRE) framework
A powerful and user-friendly binary analysis platform!
Clone this repo to build Frida
Exploit Development and Reverse Engineering with GDB Made Easy
Quick Overview
Cutter is an open-source, cross-platform reverse engineering platform powered by rizin. It provides a modern interface for analyzing binaries, disassembling code, and performing various reverse engineering tasks. Cutter aims to make reverse engineering more accessible and efficient for both beginners and experienced professionals.
Pros
- User-friendly interface with a customizable layout
- Supports multiple architectures and file formats
- Integrates powerful analysis capabilities from rizin
- Extensible through plugins and scripting
Cons
- Learning curve for users unfamiliar with reverse engineering concepts
- May have performance issues with very large binaries
- Some advanced features require knowledge of rizin commands
Getting Started
To get started with Cutter:
- Download the latest release from the official website or the GitHub releases page.
- Install Cutter on your system following the instructions for your operating system.
- Launch Cutter and open a binary file you want to analyze.
- Explore the various views and tools available in the interface, such as the disassembly view, hexdump, and graph view.
- Use the built-in analysis features or run custom rizin commands to gather more information about the binary.
For more detailed instructions and documentation, refer to the official Cutter documentation.
Competitor Comparisons
UNIX-like reverse engineering framework and command-line toolset
Pros of radare2
- More lightweight and command-line focused, suitable for advanced users
- Highly extensible with a wide range of plugins and scripts
- Faster performance for large binary analysis tasks
Cons of radare2
- Steeper learning curve due to command-line interface
- Less intuitive for beginners compared to GUI-based tools
- Limited visualization capabilities without additional plugins
Code comparison
radare2:
r2 -A binary
[0x00000000]> pdf @ main
[0x00000000]> afl
[0x00000000]> s sym.main
Cutter:
# No direct code comparison available as Cutter is a GUI application
# Users interact with a graphical interface instead of command-line
Summary
radare2 is a powerful command-line reverse engineering framework, offering extensive functionality and flexibility for advanced users. It excels in performance and extensibility but may be challenging for beginners. Cutter, built on top of radare2, provides a user-friendly GUI interface, making it more accessible for newcomers to reverse engineering. While Cutter sacrifices some of the raw power and speed of radare2, it offers improved visualization and a gentler learning curve. The choice between the two depends on the user's experience level and specific needs in reverse engineering tasks.
Ghidra is a software reverse engineering (SRE) framework
Pros of Ghidra
- More comprehensive feature set for advanced reverse engineering tasks
- Supports a wider range of architectures and file formats
- Powerful scripting capabilities with Java and Python support
Cons of Ghidra
- Steeper learning curve due to its complexity
- Slower startup time and higher resource consumption
- Less frequent updates compared to Cutter
Code Comparison
Ghidra (Java):
public class SimpleDecompiler extends GhidraScript {
@Override
public void run() throws Exception {
DecompInterface decompInterface = new DecompInterface();
DecompileResults results = decompInterface.decompileFunction(currentFunction, 30, monitor);
}
}
Cutter (Python):
import cutter
def decompile_function():
function = cutter.cmdj("afij")[0]
decompiled = cutter.cmd("pdc @ " + function["name"])
print(decompiled)
Both tools offer scripting capabilities, but Ghidra's API is more extensive and allows for deeper integration with its features. Cutter's scripting is simpler and more accessible for quick tasks. Ghidra's decompilation is generally more advanced, while Cutter focuses on providing a user-friendly interface for basic reverse engineering tasks.
A powerful and user-friendly binary analysis platform!
Pros of angr
- Advanced symbolic execution and program analysis capabilities
- Supports multiple architectures and binary formats
- Extensive API for custom analysis and automation
Cons of angr
- Steeper learning curve for beginners
- Can be resource-intensive for large-scale analysis
- Less user-friendly interface compared to GUI-based tools
Code Comparison
angr (Python):
import angr
proj = angr.Project('binary')
state = proj.factory.entry_state()
simgr = proj.factory.simulation_manager(state)
simgr.explore(find=0x400000)
Cutter (Python plugin):
import cutter
def analyze():
function = cutter.cmdj("afl")[0]
disasm = cutter.cmd(f"pdf @ {function['name']}")
print(disasm)
Summary
angr is a powerful binary analysis framework with advanced capabilities, suitable for complex reverse engineering tasks and automated analysis. It offers extensive features but requires more expertise to use effectively.
Cutter, on the other hand, is a reverse engineering platform with a user-friendly GUI, making it more accessible for beginners. While it may not have the same level of advanced analysis features as angr, it provides a more intuitive interface for manual analysis and basic automation.
The choice between the two depends on the specific requirements of the project and the user's expertise level in reverse engineering and binary analysis.
Clone this repo to build Frida
Pros of Frida
- Dynamic instrumentation framework, allowing real-time code injection and modification
- Cross-platform support for mobile, desktop, and embedded systems
- Extensive scripting capabilities using JavaScript
Cons of Frida
- Steeper learning curve for beginners
- May require more setup and configuration for complex scenarios
- Less integrated GUI for analysis compared to Cutter
Code Comparison
Frida (JavaScript):
Java.perform(() => {
const MainActivity = Java.use('com.example.app.MainActivity');
MainActivity.secretFunction.implementation = function() {
console.log('secretFunction called');
return this.secretFunction();
};
});
Cutter (Python plugin):
from cutter import *
class MyPlugin(CutterPlugin):
def setupPlugin(self):
self.addMenu("My Plugin")
def setupInterface(self, main):
action = QAction("Do Something", main)
action.triggered.connect(self.doSomething)
main.addMenuAction("My Plugin", action)
def doSomething(self):
print("Function called")
While Frida focuses on runtime manipulation and dynamic analysis, Cutter provides a more traditional reverse engineering environment with static analysis capabilities and a user-friendly GUI. Frida excels in mobile and runtime scenarios, whereas Cutter offers a comprehensive toolkit for binary analysis and disassembly.
Exploit Development and Reverse Engineering with GDB Made Easy
Pros of pwndbg
- Lightweight and integrates seamlessly with GDB
- Extensive support for exploit development and reverse engineering tasks
- Active community and frequent updates
Cons of pwndbg
- Command-line interface may be less intuitive for beginners
- Limited visualization capabilities compared to Cutter's GUI
- Requires more manual configuration and setup
Code Comparison
pwndbg:
import gdb
from pwndbg.commands import Command
class MyCommand(Command):
"""My custom command"""
def __init__(self):
super().__init__("mycommand", "My custom command")
Cutter:
#include <Cutter.h>
class MyPlugin : public CutterPlugin {
public:
QString getName() const override { return "MyPlugin"; }
QString getDescription() const override { return "My custom plugin"; }
};
pwndbg is a Python-based GDB extension, while Cutter is a Qt-based GUI application built on top of rizin. pwndbg offers more flexibility for experienced users and is better suited for command-line workflows. Cutter provides a more user-friendly interface with built-in visualization tools, making it easier for beginners to get started with reverse engineering and binary analysis tasks.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Cutter
Cutter is a free and open-source reverse engineering platform powered by rizin. It aims at being an advanced and customizable reverse engineering platform while keeping the user experience in mind. Cutter is created by reverse engineers for reverse engineers.
Learn more at cutter.re.
Getting Cutter
Download
Cutter release binaries for all major platforms (Linux, macOS, Windows) can be downloaded from GitHub Releases.
-
Linux: If your distribution provides it, check for
cutter
package in your package manager (orcutter-re
). If not available there, we have setup repositories in OBS for some common distributions. Look at https://software.opensuse.org/package/cutter-re and follow the instructions there. Otherwise download the.AppImage
file from our release, make it executable and run as below or use AppImageLauncher.chmod +x Cutter*.AppImage; ./Cutter*.AppImage
-
macOS: Download the
.dmg
file or use Homebrew Cask:brew install --cask cutter
-
Windows: Download the
.zip
archive, or use either Chocolatey or Scoop:choco install cutter
scoop bucket add extras
followed byscoop install cutter
Build from sources
To build Cutter from sources, please check the Building Docs.
Docker image
To deploy cutter using a pre-built Dockerfile
, it's possible to use the provided configuration. The corresponding README.md
file also contains instructions on how to get started using the docker image with minimal effort.
Documentation
User Guide
Contribution Guidelines
Developers Docs
Plugins
Cutter supports both Python and Native C++ plugins.
Our community has built many plugins and useful scripts for Cutter such as the native integration of Ghidra decompiler or the plugin to visualize DynamoRIO code coverage. You can find a list of cutter plugins linked below. Feel free to extend it with your own plugins and scripts for Cutter.
Getting Help
Please use the following channels to ask for help from Cutter developers and community:
- Telegram: https://t.me/cutter_re
- Mattermost: https://im.rizin.re
- IRC: #cutter on https://web.libera.chat/
- Twitter: @cutter_re
Top Related Projects
UNIX-like reverse engineering framework and command-line toolset
Ghidra is a software reverse engineering (SRE) framework
A powerful and user-friendly binary analysis platform!
Clone this repo to build Frida
Exploit Development and Reverse Engineering with GDB Made Easy
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot