Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
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.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Krakatau — Java-Decompiler, Assembler und Disassembler | Kitploit
Tools/GitHubGitHub/storyyeller/krakatau
Reverse EngineeringBinäranalyse
GitHubstoryyeller/krakatau

Krakatau

Java-Decompiler, Assembler und Disassembler

Repository anzeigen
2.2k23710vor 5 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Krakatau bietet einen Assembler und Disassembler für Java-Bytecode, mit dem Sie binäre Klassendateien in ein menschenlesbares Textformat umwandeln, Änderungen vornehmen und wieder in eine Klassendatei zurückkonvertieren können – selbst für verschleierten Code. Sie können auch eigene Klassendateien von Grund auf erstellen, indem Sie Bytecode manuell schreiben, und Low-Level-Details von Java-Binärdateien untersuchen und vergleichen. Im Gegensatz zu javap kann der Krakatau-Disassembler selbst stark verschleierten Code verarbeiten, und die disassemblierte Ausgabe kann wieder zu einer Klassendatei zusammengesetzt werden.

Krakatau bietet zudem einen Decompiler zum Umwandeln von Java-Binärdateien in lesbaren Quellcode. Anders als andere Decompiler wurde der Krakatau-Decompiler speziell für die Arbeit mit verschleiertem Code entwickelt und kann problemlos Tricks verarbeiten, die andere Decompiler zum Scheitern bringen. Allerdings unterstützt der Krakatau-Decompiler einige Java-8+-Features wie Lambdas nicht, weshalb er am besten mit älterem Code funktioniert.

Die Assembler-Syntax von Krakatau ist größtenteils eine Obermenge der Jasmin-Syntax mit einigen kleineren Inkompatibilitäten. Im Gegensatz zu Jasmin unterstützt Krakatau jedoch die vollständige Java-19-Bytecode-Spezifikation und sogar einige undokumentierte Funktionen älterer JVM-Versionen. Eine Übersicht über die Assembler-Syntax finden Sie im Tutorial oder in der vollständigen Spezifikation.

Installation

Zuerst müssen Sie Rust und Cargo installieren. Klonen Sie dann dieses Repository und führen Sie cargo build --release aus. Dies erzeugt eine Binärdatei in target/release/krak2, die Sie direkt aufrufen, zu PATH hinzufügen, symbolisch verlinken usw. können.

Disassemblierung

Der Disassembler hat zwei Modi: Standard und Roundtrip. Der Standard-Modus ist auf Lesbarkeit und einfache Änderbarkeit der resultierenden Assemblery-Dateien optimiert. Bei erneuter Assemblierung entstehen Klassendateien, die aus Sicht der JVM-Spezifikation im Verhalten äquivalent zum Original sind, jedoch nicht zwingend bitweise identisch (z. B. können die Einträge des Konstantenpools neu angeordnet sein). Der Roundtrip-Modus erzeugt eine Ausgabe, die zu bitweise identischen Klassendateien reassembliert werden kann, was jedoch bedeutet, dass die Assemblery-Dateien Low-Level-Kodierungsinformationen bewahren, die sie schwerer lesbar machen, wie z. B. die exakte Reihenfolge der Konstantenpools. Es wird empfohlen, den Roundtrip-Modus zu verwenden, wenn Sie mit Code arbeiten, der auf nicht standardmäßigen Attributen basiert, wie z. B. CLDC-Code oder Scala-Code.

Beispielverwendung:

root@kitploit:~
krak2 dis --out temp RecordTest.class

krak2 dis --out disassembled.zip --roundtrip r0lling-challenge.jar

Sie können entweder eine einzelne Klassendatei oder eine gesamte JAR-Datei disassemblieren. Wenn der Eingabedateiname auf .jar oder .zip endet, wird sie als JAR-Datei behandelt und jede .class-Datei darin disassembliert.

Die Option --out steuert den Ausgabeort. Wenn der Wert von --out ein Verzeichnis ist, wird die Ausgabe in einzelnen Dateien unter diesem Verzeichnis abgelegt. Wenn der Wert von --out auf .jar oder .zip endet, wird die Ausgabe in einer einzelnen ZIP-Datei an diesem Ort abgelegt. Wenn der Wert von --out auf .j endet, wird die Ausgabe in diese Datei geschrieben (beachten Sie, dass eine einzelne .j-Datei mehrere Klassen enthalten kann – alle Klassen werden disassembliert und nacheinander in dieselbe Datei geschrieben). Wenn die Option --out ganz weggelassen wird, werden die disassemblierten Klassen auf die Standardausgabe geschrieben.

Um im oben beschriebenen Roundtrip-Modus zu disassemblieren, übergeben Sie die Option --roundtrip (oder kurz -r).

Assemblierung

Der Krakatau-Assembler ermöglicht es Ihnen, Java-Bytecode in einem menschenfreundlichen, textbasierten Format zu schreiben und in binäre Java-Klassendateien umzuwandeln.

root@kitploit:~
krak2 asm --out temp Krakatau/tests/assembler/good/strictfp.j

Sie können entweder eine einzelne .j-Datei oder eine gesamte JAR-Datei assemblieren. Wenn der Eingabedateiname auf .jar oder .zip endet, wird sie als ZIP-Archiv behandelt und jede .j-Datei darin assembliert.

Die Option --out steuert den Ausgabeort. Wenn der Wert von --out ein Verzeichnis ist, wird die Ausgabe in einzelnen Dateien unter diesem Verzeichnis abgelegt. Wenn der Wert von --out auf .jar oder .zip endet, wird die Ausgabe in einer einzelnen ZIP-Datei an diesem Ort abgelegt. Wenn der Wert von --out auf .class endet, wird die einzelne Ausgabeklassendatei in diese Datei geschrieben (falls die Eingabe mehrere Klassen enthält, wird in diesem Fall ein Fehler ausgegeben).

Dekompilierung

Der v2-Decompiler befindet sich noch in der Entwicklung. Für die Dekompilierung müssen Sie derzeit Krakatau v1 verwenden.

Tool herunterladen