Бесплатная настраиваемая платформа для реверс-инжиниринга с открытым исходным кодом. Создана реверс-инженерами для реверс-инженеров. Позволяет анализировать двоичные файлы, создавая высокоуровневое представление машинного кода, содержащегося в них, то есть восстанавливает исходный код, на основе которого был скомпилирован двоичный файл.
🟧Бинарные файлы Cutter для всех основных платформ (Linux, macOS, Windows) можно загрузить с GitHub Releases. Также можно собрать Cutter из исходного кода:
git clone --recurse-submodules https://github.com/rizinorg/cutter
cd cutter
sudo apt install build-essential cmake meson pkgconf libzip-dev zlib1g-dev qt6-base-dev qt6-tools-dev qt6-tools-dev-tools libqt6svg6-dev libqt6core5compat6-dev libqt6svgwidgets6 qt6-l10n-tools
mkdir build && cd build
cmake ..
cmake --build .
🟧Cutter поддерживает плагины как на Python, так и на C++. C официальными плагинами и плагинами сообщества можно ознакомиться здесь. Плагины загружаются из каталога пользовательского уровня, зависящего от операционной системы. Чтобы узнать расположение этого каталога и список загруженных в данный момент плагинов, перейдите в меню Edit -> Preferences -> Plugins. В каталоге плагинов есть два подкаталога: native и python для плагинов на C++ и Python соответственно, которые будут автоматически созданы Cutter.
🟧Параметры командной строки
Инструмент поддерживает как графический интерфейс, так и работу из командной строки.
Cutter [options] [<filename> | –project <project>]
<filename> - Имя файла для открытия. Если не указано, будет показано диалоговое окно выбора файла.
Ниже перечислены некоторые возможные флаги:
🟧-A, --analysis <level> - при открытии файла автоматически выполняется анализ на заданном уровне (1 из 3 возможных);
🟧-a, --arch <arch> - конкретное название архитектуры;
🟧-b, --bits <bits> - установка определённых бит архитектуры;
🟧-c, --cpu <cpu> - установка конкретного процессора;
🟧-e, --endian <big|little> - устанавка порядка байтов (прямой или обратный);
🟧-F, --format <name> - принудительное использование определенного формата файла;
🟧-w, --writemode - открытие файла в режиме записи, а не в режиме только для чтения, который используется по умолчанию;
🟧-P, --phymode - отключение виртуальной адресации;
🟧--no-plugins - запуск со всеми отключенными плагинами.
