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.
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.
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 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