Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
javajive — Чистый Go-декомпилятор Java и оператор сериализации | Kitploit
Инструменты/GitHubGitHub/yaklang/javajive
Статический анализАнализ КодаОбратная инженерияСкриптинг и автоматизацияАнализ вредоносных программУтилиты и фреймворкиАнализ Бинарных Файлов
GitHubyaklang/javajive

javajive

Чистый Go-декомпилятор Java и оператор сериализации

Репозиторий
27611015 ч 11 мин назадПроверено Kitploit
Сайт

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

JavaJive — чистый Go-инструментарий для Java: декомпиляция, разбор классов, сериализация

JavaJive

CI Pages Go Reference License: MIT

English | 简体中文 | Website

Портативный чистый Go-инструментарий для Java — извлечённый и урезанный из yaklang — сосредоточенный на четырёх вещах:

  • Декомпиляция — .class / .jar / .war / .zip → читаемый исходный код Java.
  • Трансляция DEX — нативные .dex / .apk → детерминированный .jar или напрямую в читаемый исходный код Java, без вызова внешнего инструмента dex2jar.
  • Разбор классов — просмотр структуры файла .class (пул констант, поля, методы, версия, флаги доступа).
  • (Де)сериализация — разбор и повторная сборка проводного формата сериализации Java (ObjectStream) с побайтовой точностью, а также преобразование в JSON и обратно.

Создан для портативности и встраивания:

  • Чистый Go, единый бинарник — без JDK, без cgo, без среды выполнения ANTLR, без нативных библиотек. Кросс-компиляция под linux / macOS / windows на amd64 и arm64.
  • Один импорт — единый фасадный пакет javajive объединяет все четыре возможности; подпакеты по-прежнему доступны для продвинутого использования.
  • Полноценный CLI — подкоманды decompile, dex2jar, classinfo и serial, построенные на стандартной библиотеке.
  • Кросс-тестирование с реальным JDK — CI компилирует настоящие .class / .jar и сериализованные JDK блобы с помощью javac/java, затем проверяет JavaJive на них (см. HARNESS-WORKFLOW.md).
  • Урезанный граф зависимостей — utils / codec / log / go-funk переписаны как минимальное самодостаточное ядро internal/.

Валидация v0.4.0

Полный дифференциальный аудит 38 JAR-файлов не фиксирует ни одной зарегистрированной регрессии относительно фиксированной базовой линии: все 20 ранее компилировавшихся без ошибок JAR-файлов сохранены, а 26 теперь компилируются полностью. Дефекты базовой линии и 4 существующих заглушки методов остаются видимыми. См. результаты по каждому JAR и воспроизведение.

250 изолированных семантических круговых проверок отдельно фиксируют компиляцию, верификацию JVM, заглушки и равенство во время выполнения; исходные классы приложения отсутствуют в пересобранных classpath. CI запускает семантический аудит на JDK 17 и 21, полное историческое сравнение, а также матрицы ОС/Go и гонок. Эти проверки не доказывают эквивалентность каждого метода библиотеки. См. реализацию и оставшиеся границы.

Исторические бенчмарки (v0.3.0)

Следующие показатели были получены для v0.3.0 2026-09-05. Они не являются результатами приёмки текущей версии или доказательством поведенческой эквивалентности.

Измерено на 34 реальных jar-файлах (18 759 развёрнутых единиц) через декомпиляцию → перекомпиляцию javac --release 8 → переупаковку → верификацию JVM:

  • 100% доля чистых единиц — 18 759 / 18 759 уплощённых единиц (Outer$Inner.java) перекомпилируются с нулём ошибок javac и 0 синтаксических ошибок во всех 34 jar-файлах (жёсткая проверка, принудительно выполняемая в CI, так что ни одна ошибка типов не может скрыться за сбоем лексера).
  • Все 34 библиотеки проходят полный круговой цикл — декомпиляция → перекомпиляция → переупаковка → внешняя проверка -Xverify:all в JVM для каждого класса проходит от начала до конца (кодек побайтово идентичен исходному jar-файлу при дифференциальном сравнении вызовов). Зафиксировано в provenClean.
  • 14 / 14 собственных алгоритмов (MD5 · SHA-256 · CRC32 · quicksort · Base64 · HeapSort · KMP · SwitchFSM · TryFinally · UnionFind · DiamondTryCatch · DiamondTryFinally · ForContinue · ComputeIfAbsent) проходят круговой цикл побайтово.
  • №1 в честном трёхстороннем сравнении на исходном наборе из 8 jar-файлов — доля чистых единиц 100% против Vineflower 1.10.1 (90,8%) и CFR 0.152 (79,8%); победа во всех 8 jar-файлах против обоих.

Полную методологию, таблицы по каждому jar-файлу и команды воспроизведения см. в BENCHMARK.md.

Установка

# CLI
go install github.com/yaklang/javajive/cmd/javajive@latest

# Library
go get github.com/yaklang/javajive@latest

Или соберите из исходного кода:

git clone https://github.com/yaklang/javajive
cd javajive
go build -o javajive ./cmd/javajive

Требуется Go 1.22+.

CLI

javajive <command> [arguments]

Commands:
  decompile   decompile Java artifacts or the strict DEX 035 subset into Java source
  dex2jar     convert the strict DEX 035 subset in a DEX/APK to a deterministic JAR
  classinfo   print the structure of a .class file (version, fields, methods)
  serial      Java serialization tools (subcommands: tojson, fromjson)
  version     print the version
  help        show help

decompile

# Single class: prints to stdout by default, or -o to write a file.
javajive decompile Foo.class
javajive decompile Foo.class -o Foo.java

# Archive: defaults to a "<input>.src" directory, or -o to choose one.
javajive decompile app.jar
javajive decompile app.war -o ./app-src

# DEX or APK: run the native DEX-to-JAR pipeline and decompile the result.
# The default output directory is "<input>.src".
javajive decompile classes.dex
javajive decompile app.apk -o ./app-src

# Directory: recursively decompile .class files (requires -o output dir).
javajive decompile ./classes -o ./src

dex2jar

javajive dex2jar -o classes.jar classes.dex
javajive dex2jar -o app.jar app.apk

Входные данные определяются по сигнатуре, а не по расширению файла. Выходные данные — воспроизводимый JAR. dex2jar прерывает полное преобразование при любом неподдерживаемом или некорректном классе или методе; он записывает временный файл в том же каталоге перед заменой целевого файла и никогда не подставляет заглушки методов.

Границы поддержки нативного DEX/APK

Нативная трансляция DEX в настоящее время представляет собой строго первый вертикальный срез, а не универсальный конвертер Android-приложений. Протестированное подмножество — это стандартный DEX 035 с обычным целочисленным/ссылочным потоком управления, полями и вызовами, безопасно парными инициализациями new-instance/конструктора и базовыми массивами. Сгенерированные файлы классов проходят тестирование парсером и верификацию JVM, включая исполняемые пути ветвлений, полей, вызовов, конструкторов и int[].

Скачать инструмент