Java-Decompiler

Rashmi Patidar 11 Juli 2021
Java-Decompiler

Der decompiler ist ein Dienstprogramm, das hilft, die Java-Bytecodes zu analysieren, zu dekompilieren und daraus Quellcode zu erzeugen. Dekompilieren ist der genaue umgekehrte Prozess des Kompilierungsprozesses. Der Prozess ist von Vorteil, wenn keine Quelle verfügbar ist, und wir können den verwendenden Quellcode nach der Dekompilierung des Bytecodes debuggen und sein Verhalten analysieren.

Da die Entwicklung mit Integrated Development Environment(IDE) erfolgt, ist es von Vorteil, einen decompiler in der IDE selbst zu haben. Suchen Sie nach dem String-Decompiler auf dem Marktplatz der frei verfügbaren IDEs, beispielsweise Eclipse oder Intellij.

Für die IDE, die Intellij ist, können wir das Plugin vom Marktplatz herunterladen. Sobald das Plugin an der richtigen Stelle ist, können wir den Decompiler in der linken Seitenleiste unter dem Maven-Plugin finden. Unten ist der angehängte Screenshot zum besseren Verständnis.

Decompiler-Plugin in Intellij

Der Decompiler-Code wird automatisch in den Quellcode konvertiert und wir können ihn im Zielordner finden. Unten ist der Screenshot zum Verständnis angehängt.

Quellcode nach Dekompilierung im Zielordner

Andere verfügbare Tools zum Konvertieren von Bytecode in Quellcodes sind wie folgt.

Java Decompiler ist ein Online-Webdienst zusammen mit einer eigentlichen Anwendung. Wir können jeden Code der Java 5 und höher mit dem Dienstprogramm dekompilieren. Der Dienst bietet verschiedene Optionen, unter denen wir den Decompiler unserer Wahl aus der Liste auswählen können. Darunter befindet sich JD-GUI, ein grafisches Dienstprogramm, das hilft, die .class-Dateien zu konvertieren, um daraus Java-Quellcode zu erhalten. JD-Eclipse ist ein Eclipse-IDE-Plugin, das die Dekompilierung einer Klassendatei in der IDE selbst ermöglicht. JD-Core ist ein weiteres Open-Source-Dienstprogramm, das Quellcode aus dem Bytecode neu erstellt.

Ein weiteres Dienstprogramm ist Procyon, das sich hauptsächlich auf die Codegenerierung und -analyse konzentriert. Es ist ein Open-Source-Dienstprogramm und wird unter der Apache-Lizenz 2 bereitgestellt. Es besteht aus Bibliotheken wie dem Kern-Framework, dem Expressions-Framework, dem Reflection-Framework, dem Compiler-Toolset und einem Decompiler. Es hat seinen Nutzen, der den Prozess der Codegenerierung aus dem Bytecode erleichtert.

Weitere Informationen finden Sie unter dem GitHub-Link -https://github.com/mstrobel/procyon

Das Krakatau ist ein weiteres Open-Source-Tool zum Assemblieren und Disassemblieren des Java-Byte-Codes. Das Tool ermöglicht es Benutzern, Binärcode in Textformat umzuwandeln. Es ermöglicht Benutzern sogar, den Quellcode wieder in den Bytecode umzuwandeln. Das Dienstprogramm ist ein reines Python-Skript, das ausgeführt wird, wenn wir den Befehl ausführen.

Weitere Details gibt es über den GitHub-Link - https://github.com/Storyyeller/Krakatau

CFR ist ein weiterer Java-Decompiler, der es erlaubt, den Byte-Code von Java bis Version 14 zu dekompilieren. Der Decompiler-Code ist rein in Java 6 geschrieben und einfach auszuführen. Wir können es über einen Befehl ausführen, der das jar ausführt und hier einen Parameter übernimmt, den Klassennamen, der dekompiliert werden soll.

Weitere Details sind über den Link- https://github.com/leibnitz27/cfr

Fernflower ist ein weiteres solches verfügbares Dienstprogramm, das sich noch in der Entwicklung befindet. Das Dienstprogramm wird von der Apache-Lizenz 2 bereitgestellt. Der Ausführungsbefehl ist so einfach wie das Ausführen eines Jar zusammen mit Parametern.

Weitere Informationen finden Sie unter- https://github.com/fesh0r/fernflower

Der DJ Java Decompiler ist eines der Dienstprogramme, die mit Windows und den nachfolgenden Versionen kompatibel sind. Das Dienstprogramm ist leistungsstark genug, um den Java-Applet-Code aus dem angegebenen Byte-Code korrekt zu dekompilieren. Es ist eine eigenständige Windows-Anwendung mit einer klar definierten grafischen Benutzeroberfläche.

Weitere Informationen finden Sie unter- http://www.neshkov.com/

Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn