Recaf


Простой в использовании современный редактор байт-кода Java, который абстрагирует сложности Java-программ.
Загрузка
Возможности
- Редактируйте байт-код Java с лёгкостью на высоком или низком уровне (без надоедливых деталей)
- Возможности редактора Recaf абстрагируют сложные детали скомпилированных Java-приложений, такие как:
- Пул констант (constant pool)
- Расчёт фреймов стека (stack frame calculation)
- Использование широких инструкций (wide instructions) при необходимости
- И многое другое!
- Простой в использовании навигационный интерфейс с контекстно-зависимыми действиями
- Поддержка стандартных Java и Android-приложений
- Несколько декомпиляторов для переключения, все их параметры полностью настраиваемы
- Встроенный компилятор, позволяющий перекомпилировать декомпилированные классы, даже если некоторые из ссылочных классов отсутствуют (При поддержке, поддержка может варьироваться в зависимости от сложности кода и обфускации)
- Ассемблер байт-кода с простым синтаксисом и вспомогательными инструментами
- Просмотр состояния локальных переменных и значений стека в любой точке методов
- Доступ к переменным по именам вместо индексов для более понятного дизассемблированного кода
- Автоматическое преобразование фрагментов исходного кода Java в последовательности байт-кода
- Поиск различного контента: строковые/числовые константы, ссылки на классы и члены, шаблоны инструкций
- Инструменты для деобфускации обфусцированного кода
- Специально созданные class-файлы, предназначенные для краха инструментов реверс-инжиниринга, автоматически исправляются при открытии в Recaf
- Специально созданные jar/zip-файлы читаются как JVM, обходя хитрые трюки, которые могут ввести инструменты реверс-инжиниринга в заблуждение, показывая неверные данные
- Поддержка автоматического переименования обфусцированных классов и их членов
- Поддержка ручного переименования классов и их членов (И экспорт этих отображений (mappings) в различные форматы для использования в других инструментах)
- Трансформеры байт-кода для упрощения распространённых стратегий обфускации
- Подключение к работающему Java-процессу с возможностями инструментирования
- И многое другое
Полный список возможностей можно найти в документации пользователя.
Скриптинг и Плагины
Recaf предоставляет почти всю свою функциональность через модульные API. Автоматизация поведения может быть легко выполнена с помощью скриптов или плагинов для более сложных ситуаций. Дополнительные возможности также могут быть добавлены через плагины, которые могут регистрировать хуки в предоставляющих их API.
Чтобы создать свой собственный скрипт или плагин, обратитесь к документации разработчика, а именно к разделу "плагины и скрипты".
Командная строка
Recaf может запускаться как консольное приложение, что особенно полезно в сочетании со скриптами, предоставляемыми при запуске. Вы можете увидеть все текущие аргументы запуска, передав --help в качестве аргумента приложения.
Настройка разработки
Клонируйте репозиторий с помощью git clone https://github.com/Col-E/Recaf.git
Откройте проект в IDE или соберите его с помощью gradle.
IDE:
- Импортируйте проект из файла
build.gradle
- Создайте конфигурацию запуска с главным классом
software.coley.recaf.Main
Без IDE:
- Выполните
gradlew build
- Вывод будет находиться в:
recaf-ui/build/libs/recaf-ui-{VERSION}-all.jar