Décompilateur Java
Le décompilateur
est un utilitaire qui permet d’analyser et de décompiler les bytecodes Java et de produire du code source à partir de ceux-ci. La décompilation est le processus inverse exact du processus de compilation. Le processus est bénéfique lorsqu’aucune source n’est disponible, et nous pouvons déboguer le code source à l’aide après avoir décompilé le byte code et analyser son comportement.
Étant donné que le développement se fait à l’aide de Integrated Development Environment
(IDE) et qu’il est donc avantageux d’avoir un decompiler
dans l’IDE lui-même. Recherchez le décompilateur de chaînes sur le marché des IDE disponibles gratuitement, par exemple Eclipse ou Intellij.
Pour l’IDE qui est Intellij
, nous pouvons télécharger le plugin depuis le marché. Une fois que le plugin se trouve au bon endroit, nous pouvons localiser le décompilateur dans la barre latérale gauche sous le plugin maven. Ci-dessous, la capture d’écran ci-jointe pour une meilleure compréhension.
Le code du décompilateur est automatiquement converti en code source et nous pouvons le localiser dans le dossier cible. Ci-dessous, la capture d’écran ci-jointe pour la compréhension.
Les autres outils disponibles pour convertir le byte code en codes source sont les suivants.
Java Decompiler
est un service Web en ligne avec une application réelle. Nous pouvons décompiler n’importe quel code de version Java 5 et supérieure à l’aide de l’utilitaire. Le service fournit diverses options sous lesquelles nous pouvons sélectionner le décompilateur de notre choix dans la liste. En dessous, nous avons JD-GUI
qui est un utilitaire graphique et aide à convertir les fichiers .class
pour obtenir le code source Java à partir du même. JD-Eclipse
est un plugin IDE eclipse qui permet la décompilation d’un fichier de classe dans l’IDE lui-même. JD-Core
est un autre utilitaire open source qui recrée le code source à partir du byte code.
Un autre utilitaire est Procyon
qui se concentre principalement sur la génération et l’analyse de code. Il s’agit d’un utilitaire open source fourni par la licence Apache 2. Il se compose de bibliothèques telles que le framework de base, le framework d’expressions, le framework de réflexion, l’ensemble d’outils du compilateur et un décompilateur. Il a son utilité qui facilite le processus de génération de code à partir du byte code.
Pour plus de détails, visitez le lien GitHub -https://github.com/mstrobel/procyon
Le Krakatau
est un outil open source de plus pour assembler et désassembler le byte code Java. L’outil permet aux utilisateurs de transformer le code binaire en format texte. Il permet même aux utilisateurs de reconvertir à nouveau le code source en byte code. L’utilitaire est purement un script Python
, qui s’exécute lorsque nous exécutons la commande.
Plus de détails sont sur le lien GitHub - https://github.com/Storyyeller/Krakatau
CFR
est un autre décompilateur Java qui permet de décompiler le byte code de Java jusqu’à la version 14. Le code du décompilateur est purement écrit en Java 6 et est facile à exécuter. Nous pouvons l’exécuter via une commande qui exécute le jar et prend un paramètre ici, le nom de la classe à décompiler.
Plus de détails sont sur le lien- https://github.com/leibnitz27/cfr
Fernflower
est encore un autre utilitaire de ce type disponible qui est encore en cours de développement. L’utilitaire est fourni par la licence Apache
2. La commande d’exécution est aussi simple que d’exécuter un fichier jar avec des paramètres.
Pour plus de détails, visitez- https://github.com/fesh0r/fernflower
Le DJ Java Decompiler
est l’un des outils utilitaires compatibles avec Windows et ses versions ultérieures. L’utilitaire est suffisamment puissant pour décompiler correctement le code de l’applet Java à partir du byte code donné. Il s’agit d’une application Windows autonome avec une interface utilisateur graphique bien définie.
Pour plus de détails, visitez- 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