Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
javajive — Reiner-Go Java-Decompiler und Serialisierungsoperator | Kitploit
Tools/GitHubGitHub/yaklang/javajive
Statische AnalyseCode-AnalyseReverse EngineeringScripting & AutomatisierungMalware-AnalyseDienstprogramme & FrameworksBinäranalyse
GitHubyaklang/javajive

javajive

Reiner-Go Java-Decompiler und Serialisierungsoperator

Repository anzeigen
276109vor 7h 55mVon Kitploit geprüft
Webseite

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

JavaJive — Pure-Go Java Toolkit: Decompile, Class Parse, Serialization

JavaJive

CI Pages Go Reference License: MIT

English | 简体中文 | Website

Ein portables, reines Go-Java-Toolkit — extrahiert und verschlankt aus yaklang — mit Fokus auf vier Dinge:

  • Decompile — .class / .jar / .war / .zip → lesbarer Java-Quellcode.
  • Translate DEX — natives .dex / .apk → deterministisches .jar oder direkt zu lesbarem Java-Quellcode, ohne ein externes dex2jar-Tool aufzurufen.
  • Parse classes — die Struktur einer .class-Datei inspizieren (Konstantenpool, Felder, Methoden, Version, Zugriffsflags).
  • (De)serialize — das Wire-Format der Java-Serialisierung (ObjectStream) bytegenau parsen und erneut marshallen sowie nach/von JSON konvertieren.

Konzipiert für Portabilität und Einbettung:

  • Reines Go, einzelne Binärdatei — kein JDK, kein cgo, keine ANTLR-Runtime, keine nativen Bibliotheken. Cross-Compilation für linux / macOS / windows auf amd64 und arm64.
  • Ein Import — ein einheitliches javajive-Fassadenpaket umschließt alle vier Fähigkeiten; die Unterpakete bleiben für fortgeschrittene Nutzung verfügbar.
  • Erstklassige CLI — decompile-, dex2jar-, classinfo- und serial- Unterbefehle, aufgebaut auf der Standardbibliothek.
  • Gegen ein echtes JDK gegengeprüft — CI kompiliert echte .class / .jar und JDK-serialisierte Blobs mit javac/java und verifiziert JavaJive dagegen (siehe HARNESS-WORKFLOW.md).
  • Verschlankter Abhängigkeitsgraph — utils / codec / log / go-funk sind als minimaler, eigenständiger internal/-Kern neu implementiert.

Validierung von v0.4.0

Der vollständige 38-JAR-Differenz-Audit verzeichnet null dokumentierte Regressionen gegenüber der festen Baseline: alle 20 zuvor kompilier-sauberen JARs bleiben erhalten und 26 kompilieren nun vollständig. Baseline-Defekte und 4 bestehende Methoden-Stubs bleiben sichtbar. Siehe die Ergebnisse pro JAR und Reproduktion.

250 isolierte semantische Round Trips erfassen Kompilierung, JVM-Verifikation, Stubs und Laufzeitgleichheit getrennt; ursprüngliche Anwendungsklassen fehlen in neu gebauten Classpaths. CI führt den semantischen Audit auf JDK 17 und 21, den vollständigen historischen Vergleich sowie die OS/Go- und Race-Matrizen aus. Diese Prüfungen beweisen nicht die Äquivalenz jeder Bibliotheksmethode. Siehe die Implementierung und verbleibende Grenzen.

Historische Benchmarks (v0.3.0)

Die folgenden Zahlen wurden für v0.3.0 am 2026-09-05 gemeldet. Sie sind keine Abnahmeergebnisse der aktuellen Version und kein Beweis für Verhaltensgleichheit.

Gemessen an 34 realen JARs (18.759 abgeflachte Einheiten) über decompile → javac --release 8 Rekompilierung → Neupaketierung → JVM-Verifikation:

  • 100 % unit-saubere Rate — 18.759 / 18.759 abgeflachte Units (Outer$Inner.java) kompilieren mit null javac-Fehlern neu, und 0 Syntaxfehler über alle 34 Jars (eine CI-erzwungene harte Zusicherung, sodass sich kein Typfehler hinter einem Lexer-Fehler verstecken kann).
  • Alle 34 Bibliotheken vollständig round-trip — dekompilieren → neu kompilieren → neu paketieren → externe JVM -Xverify:all-Verifikation pro Klasse besteht durchgängig (der Codec ist unter einem Call-Differential byte-identisch zum Original-Jar). Festgeschrieben in provenClean.
  • 14 / 14 selbst gehostete Algorithmen (MD5 · SHA-256 · CRC32 · quicksort · Base64 · HeapSort · KMP · SwitchFSM · TryFinally · UnionFind · DiamondTryCatch · DiamondTryFinally · ForContinue · ComputeIfAbsent) round-trip byte-für-byte.
  • #1 in einem fairen 3-Wege-Vergleich auf dem ursprünglichen 8-Jar-Set — saubere Unit-Rate 100 % vs. Vineflower 1.10.1 (90,8 %) und CFR 0.152 (79,8 %); gewinnt alle 8 Jars gegen beide.

Siehe BENCHMARK.md für die vollständige Methodik, Tabellen pro Jar und Reproduktionsbefehle.

Install

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

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

Oder aus dem Quellcode erstellen:

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

Erfordert 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

Dekompilieren

# 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

Die Eingabe wird anhand der Magic-Bytes statt anhand der Dateinamenerweiterung erkannt. Die Ausgabe ist eine reproduzierbare JAR. dex2jar bricht die vollständige Konvertierung bei jeder nicht unterstützten oder fehlerhaften Klasse oder Methode ab; es schreibt eine temporäre Datei im selben Verzeichnis, bevor es das Ziel ersetzt, und setzt niemals Methoden-Stubs ein.

Grenzen der nativen DEX/APK-Unterstützung

Die native DEX-Übersetzung ist derzeit ein strenger erster vertikaler Ausschnitt, kein allgemeiner Android-Anwendungskonverter. Die getestete Teilmenge ist Standard-DEX 035 mit gewöhnlichem Integer-/Referenz-Kontrollfluss, Feldern und Invokes, sicher gepaarter new-instance/Konstruktor-Initialisierung und einfachen Arrays. Generierte Klassendateien werden parser-getestet und JVM-verifiziert, einschließlich ausführbarer Branch-, Feld-, Invoke-, Konstruktor- und int[]-Pfade.

Noch nicht unterstützt: try/catch- und Monitor-Operationen; float-, long- und double-Werte oder -Opcodes; Switches, Payload-Instruktionen und gefüllte Arrays; DEX 038+ dynamische Invokes und Methodenkonstanten; Annotationen und Debug-Metadaten; CompactDex; sowie APK-Ressourcen oder native Bibliotheken. APK-Eingabe bedeutet, dass nur kanonisch benannte classes.dex-, classes2.dex-, ...-Einträge übersetzt werden. Alle ausgewählten DEX-Dateien müssen transaktional erfolgreich sein, andernfalls wird keine JAR erzeugt.

classinfo

Tool herunterladen