Recaf


Универсальный и простой в использовании редактор байт-кода Java и Android. Recaf упрощает работу с скомпилированными Java-приложениями. Исследуйте незнакомый код, анализируйте обфусцированные приложения, изменяйте классы без их исходного кода и экспортируйте свои изменения — всё это через привычный интерфейс, похожий на IDE.
Загрузка
- Launcher
- Загружает snapshot-релизы из CI-запусков GitHub, гарантируя, что у вас самые актуальные релизы.
- Использование и инструкции для лаунчера можно найти в репозитории лаунчера.
- Snapshot-релизы
- Независимые релизы
Возможности
Декомпиляция и исследование Java-приложений
Навигируйтесь по скомпилированным приложениям с помощью привычного интерфейса, похожего на IDE.
- Переключайтесь между несколькими настраиваемыми Java-декомпиляторами: CFR, Procyon, Fernflower
- Каждый декомпилятор можно полностью настроить через меню конфигурации. Если вы заблудились, просто воспользуйтесь строкой поиска в окне конфигурации и введите название декомпилятора, который хотите настроить.
- Ищите строки, константы, ссылки на классы, методы и шаблоны инструкций байт-кода.
- Навигируйтесь по Java-приложениям так же, как в IDE.
- Control + левый клик или нажмите F3, чтобы перейти к ссылающимся классам, полям и методам.
- Left/Right + Alt для перехода между недавно посещёнными местами.
- Control + G для быстрого поиска классов, членов или содержимого файлов в открытом приложении.
- Всё остальное доступно через контекстные меню правого клика.
- Кликнули на класс? Показаны операции для класса.
- Кликнули на метод? Показаны операции для метода.
- Java- и Android-приложения обрабатываются одинаково.
Редактирование байт-кода Java с лёгкостью на высоком или низком уровне

Вносите простые изменения, просто редактируя декомпилированный исходный код Java, сохраняйте изменения, затем экспортируйте изменённое приложение.
- Отсутствует код зависимостей / библиотек в JAR-файле приложения? Recaf может заполнить пробелы за вас, проанализировав существующий код и сгенерировав скелетный код библиотеки. Компилятор не отличит его от настоящего.
- Возникли проблемы с качеством декомпиляции, из-за которых редактирование исходного кода слишком затруднено? Используйте ассемблер байт-кода!

Ассемблер байт-кода Recaf упрощает изменение низкоуровневых файлов классов. Сложные аспекты формата файла абстрагированы от вас. Полезные инструменты помогут вам, даже если вы полный новичок в байт-коде.
- Возможности ассемблера:
- Имена переменных используются вместо слотов переменных, что делает код более читаемым и понятным.
- Мгновенная обратная связь при синтаксических ошибках, неправильном использовании инструкций и т. д.
- Визуализация потока управления: нажмите на метку, чтобы увидеть, куда ведут инструкции потока управления.
- Инструменты ассемблера:
- Анализ: просматривайте значения в стеке и локальных переменных в любой точке метода. Нажмите на строку, и отображение обновится, показывая, что происходит в этой точке кода.
- Объявленные переменные: таблица всех переменных, способов их использования и навигация одним щелчком для перехода между этими использованиями.
- Java в байткод: пишите простой исходный код Java слева и смотрите эквивалентный байткод Java справа. Вы можете легко сгенерировать сложный байткод из исходного кода, а затем скопировать и вставить его в ассемблер где угодно.
- Сниппеты: постоянно пишете один и тот же отладочный вызов
println? Сохраните его как сниппет и обращайтесь к нему в любое время. Готовые к копированию и вставке отладочные принты — жизненная сила любого программиста, отчаянно отлаживающего чужой код, авторы которого канули в Лету.
Анализ и деобфускация защищённых приложений
Recaf предлагает множество инструментов, чтобы максимально упростить работу с обфусцированным кодом. Переименование идентификаторов, шифрование числовых и строковых констант и даже обфускация потока управления — всё это можно легко преодолеть.

Автоматизация анализа и рабочих процессов обратной разработки с помощью скриптов и плагинов
Recaf предоставляет всю свою функциональность через модульные API. Вы можете написать скрипт для автоматизации рабочего процесса, а затем запускать его снова и снова через CLI.
- О скриптах см. Scripts в документации.
- Об использовании CLI см. Running
- Суть: создайте скрипт, затем используйте
java -jar recaf.jar --input <app> --script <script.java>
- Хотите автоматизировать рабочие процессы с помощью ИИ? Используйте
--headless в CLI и плагин MCP, чтобы дать агентам доступ ко всем возможностям Recaf.
Полный список возможностей можно найти в руководстве пользователя.
Документация