Состоялся релиз фреймворка для реверс-инжиниринга 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).