51c0a3d469
Using Q_GLOBAL_STATIC meant that the CutterCore was destructed late as part of a binary destructor. It would then free the RzCore, calling for example the fini callbacks of all plugins. However global destructors in shared library plugins may have already been run at this point, leading to for example rz-ghidra's decompiler_mutex being used after destruction. Instead of the Q_GLOBAL_STATIC-managed global object, we are now handling the lifetime of the CutterCore ourselves and only injecting its instance to be accessed globally. This can also be a first step towards making the core instance completely local. |
||
---|---|---|
.github | ||
.vscode | ||
.woodpecker | ||
cmake | ||
dist | ||
docker | ||
docs | ||
rizin@0fc9c9682e | ||
scripts | ||
src | ||
_clang-format | ||
.appveyor.yml | ||
.dockerignore | ||
.gitignore | ||
.gitmodules | ||
.lgtm.yml | ||
CMakeLists.txt | ||
CONTRIBUTING.md | ||
COPYING | ||
README.md | ||
SECURITY.md |
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: Download the
.AppImage
file. Then 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 Chocolatey:choco 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