Релиз фреймворка для реверс-инжиниринга Rizin 0.4.0 и его GUI Cutter 2.1.0

Состоялся релиз фреймворка для реверс-инжиниринга Rizin и связанной с ним графической оболочки Cutter. Проект Rizin начался как форк фреймворка Radare2 и продолжил его развитие с уклоном на удобный API и фокусом на анализ кода без форензики. С момента форка проект перешел на принципиально отличный механизм сохранения сессии (“проектов”) в виде состояния на базе сериализации. Кроме того, кодовая база значительно переработана в сторону удобства сопровождения. Код проекта написан на языке Си и распространяется под лицензией LGPLv3.

Графическая оболочка Cutter написана C++ с использованием Qt и распространяется под лицензией GPLv3. Cutter, как и сам Rizin, нацелен на процесс обратной разработки программ в машинном коде или байткоде (например JVM или PYC). Для Cutter/Rizin существуют плагины декомпиляции на основе Ghidra, JSdec и RetDec.


В новом выпуске:

  • Добавлена поддержка создания сигнатур FLIRT, которые потом могут быть загружены в IDA Pro;
  • В поставку включена база стандартных сигнатур для популярных библиотек;
  • Улучшено распознавание функций и строк исполняемых файлов на Go для x86/x64/PowerPC/MIPS/ARM/RISC-V;
  • Реализован новый язык промежуточного представления RzIL на базе BAP Core Theory (SMT-подобный язык);
  • Добавлена возможность авто-определения базового адреса для «сырых» файлов;
  • Реализована поддержка загрузки в отладочном режиме «слепков» памяти на базе Windows PageDump/Minidump форматов;
  • Улучшена работа с удаленными отладчиками на базе WinDbg/KD.
  • На данный момент на новый RzIL переведена поддержка архитектур ARMv7/ARMv8, AVR, 6052, brainfuck. К следующему релизу планируется завершить перевод для SuperH, PowerPC и частично x86.

Также дополнительно выпущены:

  • rz-libyara – плагин для Rizin/Cutter для поддержки загрузки и создания сигнатур в формате Yara;
  • rz-libdemangle – библиотека расшифровки имён функций для языков C++/ObjC/Rust/Swift/Java;
  • rz-ghidra – плагин для Rizin/Cutter для декомпиляции (на базе C++ кода Ghidra);
  • jsdec – плагин для Rizin/Cutter для декомпиляции оригинальной разработки;
  • rz-retdec – плагин для Rizin/Cutter для декомпиляции (на базе RetDec);
  • rz-tracetest – утилита перекрёстной проверки корректности трансляции машинного кода в RzIL путём сравнения с трассой эмуляции (на базе QEMU, VICE).

Release. Ссылка here.