Releases: rizinorg/cutter
v2.0.5-rc4
Bump Rizin version to v0.3.4 (#2876)
v2.0.5-rc3
Update Rizin to 0.3.3 (#2870)
v2.0.5-rc2
Bump Rizin version to v0.3.2
v2.0.5-rc1
Update version to 2.0.5 and rizin stable (before 0.3.2) (#2864)
2.0.4
2.0.3
Along with many bugfixes and updates to make best use of Rizin 0.3.0, this release also brings a brand new heap viewer widget for glibc, developed as part of Google Summer of Code by @PulakIIIT: https://rizin.re/posts/gsoc-2021-summary/#pulak-heap-viewer-for-cutter
Additions and Changes
- Debug: Heap viewer widget for glibc
- Rizin, rz-ghidra and jsdec updated to 0.3.0 with changes for compatibility.
- Various improvements for native macOS UI (#2776)
- Many internal changes switching from error-prone rizin commands to C API
- CI and Linux builds: use Ubuntu 18.04 as oldest supported build system (#2736)
Bugfixes
- Fix Decompiler Copy Shortcut (Fix #2773, #2778)
- Fix Restoring "Show Disassembly as" in Preferences (Fix #2726, #2748)
- Complete Color Theme Lists (Fix #2672) (#2752)
- macOS: Fix Versions in Info.plist (Fix #2679) (#2740)
- Debug: Fix continue until main not being enabled in certain cases (#2727)
- Debug: Fix attaching to a process with no file opened (#2727)
- Fix a crash when printing disassembly arrows (#2688)
Removals
- Type Link features removed due to unreliability, in light of global variables coming soon (#2775)
2.0.2
Cutter 2.0.1
This release updates Rizin to 0.2.0 and brings a few additional fixes on top of Cutter 2.0.0.
Known Issues
- Windows build can't load certain resource #2667
Changes
Cutter 2.0
This is the first official release of Cutter since its backend has been changed from radare2 to Rizin.
Last r2 compatible commit can be found at d813b7a, there are no plans to further maintain r2 compatible branch by Cutter developers.
This version of Cutter is built with Rizin 0.1.1.
The accompanying blog post highlights some of the features below in detail: https://cutter.re/cutter-2.0
Features
- Support new Projects in Cutter that will allow saving and opening project files.
- Add a command line flag for loading projects #2606
- Improve the workflow of renaming functions, flags and more #2468
- Improve the remote debug dialog #2472
- Add reverse debugging support. (Note that debugging is still in a preview state)
- Support trackpad pinch gesture #2453
- Add comment column to multiple table views #2441
- Add option for displaying basic block address at the start of each block in CFG #2482
- Reworked disassembly arrow drawing #2559
- Add a preview-on-hover functionality in disassembly widget #2459
Platform compatibility fixes:
- Fix build on CentOS 7 with GCC 4.8 #2492
- Haiku OS build #2485
- Note: there is no official native macOS M1 build but most parts of Cutter, except debugging, work fine using Rosetta2.
Building Cutter natively for arm64 on M1 from source is however fully supported.
Bugfixes
- Fix macOS release package not running without having
gettext
installed from homebrew. #2547 #2474 #2456 #2447 #2428 - Resolve bug with line highlighting #2218
Build system, packaging and development changes
- The default build options changed to use bundled Rizin. If you are a package maintainer see https://cutter.re/docs/building.html#making-linux-distribution-specific-packages
- The root CMake file is now located at the root of the repository instead of the
src/
directory. This slightly changes the build instructions - Fully transition to CMake as the only build system. Remove
qmake
andmeson
projects. - Large parts of packaging logic moved from CI scripts to being done directly by build system.
- macOS release package is now ad-hoc signed, this should help with the running of the debugger. It doesn't help with developer identity warning when opening the package or debugging system or AppStore programs not marked as debuggable (just like any other debugger regardless of how it's signed).
- Development has switched to using
clang-format
for code formatting.
Cutter 1.12.0
Highlights
Decompiler
In this release, we introduce major improvements to the Decompiler feature in Cutter. These improvements couldn't be made without the help of our team member and GSoC student @NirmalManoj 👏
- Context menu interactions with the decompiler are now context sensitive, only relevant menu items are shown and they applied to the item that was clicked
- Decompiler based Syntax Highlighting in the Decompiler widget (old highlighting mode can be chosen in appearance options)
- Support opening multiple Decompiler widgets at the same time. Each of the instances can be set to show different decompiler (Ghidra, RetDec, r2dec, ...) and different functions.
- Make the current-address synchronization consistent with rest of widgets
Known Limitations
- The new features in the Decompiler work best with r2ghidra, not all of them are implemented for r2dec
- Some hacky features, like instruction patching, that were available in the previous context menu are not available in the new one and might be added in the future.
- Decompiling large functions using r2ghidra causes UI to freeze temporarily
To read the full list of changes, check our blog post: Improving Decompiler Widget - GSoC Project
Radare2
- Cutter 1.12.0 depends on radare2 4.5.1
Other
- Support analysis after opening the file
- Configurable analysis options from the Preferences widget
- Local variables X-Ref view
Full list of commits since previous release available here: https://github.com/radareorg/cutter/compare/v1.11.0...v1.12.0
Thanks
The success of this release couldn't be achieved without the help and time dedicated by many contributors which are new to the Cutter family. We appreciate the work and honored to welcome our new contributors: @Surendrajat, @ocastejon, @sagcan, @DX-MON, @kohnakagawa, @7h3qu1rkyb1t, @DeleteXso, @polaris