Software:Cutter (platform)
Developer(s) | The Cutter Development Team |
---|---|
Initial release | December 04, 2017 |
Repository | https://github.com/radareorg/cutter |
Written in | Qt C++ |
Engine | Qt |
Operating system | Linux, macOS, Microsoft Windows |
License | GPLv3[1] |
Website | https://cutter.re |
Cutter is a free and open source reverse engineering platform powered by radare2. It is focusing on providing a modern, advanced and user-friendly cross-platform reverse-engineering software. Cutter enjoys the fast paced development of its core, radare2. This makes the project one of the most actively developed reverse engineering frameworks[2]. Cutter is one of the most popular reverse-engineering software on GitHub[3]. Cutter is actively maintained by a community of volunteers.
History
Cutter is the successor of the formerly known project Iaito[4] which was created in 2017 to provide a modern C++ graphical user interface for radare2. When Iaito was abandoned by its developers, it was forked, rewritten and renamed to Cutter. Since then, Cutter became the official graphical user interface of radare2.
Main Features
Features |
---|
Disassembler |
Graph View |
Decompiler |
Cross-platform Debugger |
Hex Editor |
Python Scripting Engine |
Plugins |
Binary Patching |
Emulation |
Theme Editor |
Integrated radare2 console |
Modern & Customizable UI |
Plugins
Cutter support plugins written in Python and C++ using Qt for the GUI. As it is based on radare2, it also supports radare2 commands and scripts. Plugins make it possible to extend the features and functionality provided by Cutter. Notable and popular plugins can be later integrated into Cutter code-base and be part of the platform. Features that are harder to maintain or deprecated might be removed from Cutter's code-base and become external plugins. An example to such feature is Cutter's integration with the Jupyter Project that was removed from Cutter and became an external plugin.
Supported Operating Systems
Cutter is written in C++ based on the cross-platform software development toolkit Qt. As such, Cutter can be executed on the following operating systems:
Supported CPU Architectures
- Intel x86 family
- ARM architecture
- Atmel AVR series
- Brainfuck
- Motorola 68k and H8
- Ricoh 5A22
- MOS 6502
- Smartcard PSOS Virtual Machine
- Java virtual machine
- MIPS: mipsb/mipsl/mipsr/mipsrl/r5900b/r5900l
- PowerPC
- SPARC Family
- TMS320Cxxx series
- Argonaut RISC Core
- Intel 51 series: 8051/80251b/80251s/80930b/80930s
- Zilog Z80
- CR16
- Cambridge Silicon Radio (CSR)
- AndroidVM Dalvik
- DCPU-16
- EFI bytecode
- Gameboy (z80-like)
- Java Bytecode
- Malbolge
- MSIL/CIL
- Nios II
- SuperH
- Spc700
- Systemz
- TMS320
- V850
- Whitespace
- XCore
Supported File Formats
- COFF
- Win32/64 Portable Executable
- ELF and derivatives
- Mach-O (Mach) and derivatives
- Game Boy and Game Boy Advance cartridges
- MZ (MS-DOS)
- Java class
- Lua 5.1 and Python bytecode
- dyld cache dump[5]
- Dex (Dalvik EXecutable)
- Xbox xbe format[6]
- Plan9 binaries
- WinRAR virtual machine[7]
- File systems like the ext family, ReiserFS, HFS+, NTFS, FAT, ...
- DWARF and PDB file formats for storing additional debug information
- Raw binary
External links
References
- ↑ "COPYING · master · Radareorg / Cutter". https://github.com/radareorg/cutter/blob/master/COPYING.
- ↑ "Most active reverse-engineering projects on GitHub" (in en). https://github.com/topics/reverse-engineering?o=desc&s=stars.
- ↑ "Most popular reverse-engineering projects on GitHub" (in en). https://github.com/topics/reverse-engineering?l=c%2B%2B&o=desc&s=stars.
- ↑ Teso, Hugo (2020-07-07), hteso/iaito, https://github.com/hteso/iaito, retrieved 2020-07-27
- ↑ Dydl cache - iphonedevwiki.net
- ↑ XBE File Format 1.1
- ↑ Tavis Ormandy - Fun with Constrained Programming