Decompilatore Java
Il decompilatore
è un’utilità che aiuta ad analizzare e decompilare i codici byte Java e produrre da essi il codice sorgente. La decompilazione è l’esatto processo inverso del processo di compilazione. Il processo è vantaggioso quando non è disponibile alcuna fonte e possiamo eseguire il debug dell’utilizzo del codice sorgente dopo aver decompilato il codice in byte e analizzarne il comportamento.
Poiché lo sviluppo viene eseguito utilizzando Integrated Development Environment
(IDE) e quindi è vantaggioso avere un decompilatore
nell’IDE stesso. Cerca il decompilatore di stringhe nel mercato degli IDE disponibili gratuitamente, ad esempio Eclipse o Intellij.
Per IDE che è Intellij
, possiamo scaricare il plugin dal marketplace. Una volta che il plugin è in una posizione corretta, possiamo individuare il decompilatore nella barra laterale sinistra sotto il plugin Maven. Di seguito è riportato lo screenshot allegato per una migliore comprensione.
Il codice del decompilatore viene automaticamente convertito nel codice sorgente e possiamo individuarlo nella cartella di destinazione. Di seguito è riportato lo screenshot allegato per la comprensione.
Altri strumenti disponibili per convertire il codice byte in codici sorgente sono i seguenti.
Java Decompiler
è un servizio web online insieme a un’applicazione reale. Possiamo decompilare qualsiasi codice Java 5 e versioni successive utilizzando l’utilità. Il servizio fornisce varie opzioni in base alle quali possiamo selezionare il decompilatore di nostra scelta dall’elenco. Sotto questo, abbiamo JD-GUI
che è un’utilità grafica e aiuta a convertire i file .class
per ottenere il codice sorgente Java dallo stesso. JD-Eclipse
è un plugin IDE di eclipse che consente la decompilazione di un file di classe nell’IDE stesso. JD-Core
è un’altra utility open source che ricrea il codice sorgente dal codice byte.
Un’altra utility è Procyon
che si concentra principalmente sulla generazione e sull’analisi del codice. È un’utilità open source ed è fornita dalla licenza Apache
2. Consiste di librerie come framework principale, framework di espressioni, framework di riflessione, set di strumenti del compilatore e un decompilatore. Ha la sua utilità che facilita il processo di generazione del codice dal codice byte.
Per maggiori dettagli, visita il link GitHub -https://github.com/mstrobel/procyon
Il Krakatau
è un altro strumento open source per assemblare e disassemblare il codice java byte. Lo strumento consente agli utenti di trasformare il codice binario in formato testo. Consente persino agli utenti di riconvertire nuovamente il codice sorgente in codice byte. L’utilità è puramente uno script Python
, che viene eseguito quando eseguiamo il comando.
Maggiori dettagli sono sul link GitHub - https://github.com/Storyyeller/Krakatau
CFR
è un altro decompilatore Java che consente di decompilare il codice byte di Java fino alla versione 14. Il codice del decompilatore è puramente scritto in Java 6 ed è facile da eseguire. Possiamo eseguirlo tramite un comando che esegue il jar e prende un parametro qui, il nome della classe da decompilare.
Ulteriori dettagli sono al link- https://github.com/leibnitz27/cfr
Fernflower
è ancora un’altra utility disponibile che è ancora in fase di sviluppo. L’utilità è fornita da Apache
License 2. L’esecuzione del comando è semplice come eseguire un jar insieme ai parametri.
Per maggiori dettagli visita- https://github.com/fesh0r/fernflower
Il DJ Java Decompiler
è uno degli strumenti di utilità compatibili con Windows e le sue versioni successive. L’utilità è abbastanza potente da decompilare correttamente il codice dell’applet Java dal codice byte specificato. È un’applicazione Windows autonoma con un’interfaccia utente grafica ben definita.
Per maggiori dettagli visita- 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