Come estrarre il codice sorgente da un apk
Quante volte avresti voluto vedere il codice con cui è sviluppata un’applicazione scaricata dal Play Store o un semplice e comune file .apk?
Bene, con questo metodo, farlo sarà semplicissimo. Vediamo dunque insieme come estrarre il codice sorgente da un apk.
Come estrarre il codice sorgente da un apk
Prima di iniziare volevo precisare che ricavare il codice sorgente non funzionerà per tutte le applicazioni, questo è dovuto ad una corretta “protezione” del codice. Ti ricordo, inoltre, di usare questo sistema nel rispetto degli altri sviluppatori Android che Tuttoapp vuole tutelare come da sua filosofia. Ricordo, a tal proposito, che Android Studio, proprio per proteggere i codici sorgente, mette a disposizione la libreria proguard.
Ma cominciamo subito con la guida su come estrarre il codice sorgente da un apk. Farlo è un gioco da ragazzi, basterà avere il giusto materiale e risulterà facilissimo!
File da scaricare
I file da scaricare saranno fondamentali per la corretta visualizzazione del codice, in quanto avremo a che fare con un estensione file “.dex” che dovrà essere aperto e letto: sarà impossibile farlo senza questi due file.
I file saranno i seguenti:
- Dex2Jar: software che servirà per la conversione vera e propria del file con estensione .dex a .java (.jar).
- JD-GUI: software per decompilare il file .java (.jar) creato con il software subito sopra.
La guida – Come estrarre il codice sorgente da un apk
Prima di continuare con la guida vorrei ribadire che il procedimento in questione ha un mero scopo illustrativo in quanto quest’ultimo spiega come estrarre il codice sorgente da un apk ed effettuare un semplice reversing.
Ricordo, inoltre, che usufruire di un procedimento di reverse per modificare l’applicazione in modo da inserirne virus, trojan o qualsiasi altro codice nocivo per chi ne fa uso, viene considerato un procedimento illegale.
Installazione del file apk
Il primo procedimento da effettuare sarà quello di installare un qualsiasi file .apk. Ricordo che, per i dispositivi che presentano i permessi di root, l’operazione di esportare i file apk sarà possibile senza utilizzare altri passaggi.
Chi possiede un dispositivo senza permessi di root, invece, dovrà scaricare il file apk da qualsiasi sito (consiglio apkmirror.com).
Una volta installato l’applicazione nel formato .apk siamo pronti per iniziare il reverse vero e proprio.
Cominciamo subito!
Operazione di Reverse
La prima cosa da fare sarà aprire il file APK con un qualsiasi archivio (.rar o .zip) poiché il tipo di file in questione non è altro che un insieme di file inseriti in un archivio.
Una volta aperto il file apk, segui questi semplici passaggi:
- Scarica il software Dex2Jar prima elencato.
- Estrai la cartella Dex2jar nel desktop.
- Copia TUTTI i file con estensione .dex (rinominati Classes) nella cartella di Dex2Jar.
- Trascina i file Classes sul file “d2j-dex2jar.bat“(Cambierà il formato da .dex a .jar).
- Scarica il software JD-GUI prima elencato.
- Estrai JD-GUI nel desktop.
- Apri JD-GUI e clicca su “Open“.
- Seleziona i file .jar prima convertiti.
- Complimenti! Hai finito la procedura su come estrarre il codice sorgente da un apk.
Ricordo ancora una volta che questa procedura funziona solo con le applicazioni che non hanno utilizzato la protezione del codice sorgente. Quindi, non si assicura il corretto funzionamento per TUTTI i file apk.
Cosa pensi di circa questa procedura?
Ti è servita questa guida? Hai provato a fare questo procedimento? Faccelo sapere nei commenti!
Bella storia Luca Storia
Ho una domanda perchè mi da errore quando vado nel cmd digito cd poi il percorso dove è contenuto il file mi si apre Jd-Gui in automatico e mi dice errore
Io ho.estratto il file apk con win rar ho estratto il file apk di clash royale sul dekstop poi ho estratto gli altri due file sul dekstop poi sono andato in cmd e ho digitato cd percorso fileclasses-dex2jar.jar e poi mi si apre in automatico Jd-Gui e mi da errore
Faccio tutti i passaggi ma non mi trasforma il file classes.dex in .jar . come posso fare? Riguarda il fatto che non ho Java installato nel mio computer?
Si, prova ad installare l’ultima versione di Java e fammi sapere 🙂
Danilo.
ottenendo il codice sorgente di un file apk android secondo te posso andare su phone gap e tradurlo come un file ipa dal codice sorgente android?
Salve, sto cercando di eseguire questa guida. Arrivato al passaggio 4 (trascinare il file “classes.dex”) non avviene nulla, e di conseguenza non si crea nessun file in formato .jar. Come mai?
Ho provato ad eseguire il file “d2j-dex2jar.bat” tramite cmd, ma mi viene fuori il seguente messaggio:
“java” non è riconosciuto come comando interno o esterno, un programma eseguibile o un file batch.
Grazie
Probabilmente non hai Java oppure non è configurato bene. Prova con una Java SDK.
La procedura è chiara, ma non essendo un programmatore ma un semplice utilizzatore di apk,come potrebbe essermi utile? E’ sempre meglio essere aggiornati su tutto, ma prima di tutto mi domando l’uso che potrei farne di questa conoscenza di cui onestamente non ne conoscevo neanche l’esistenza.
Caro Enzo,
dubito in realtà che possa ricavarne benefici se non sei uno sviluppatore.
A presto,
Giovan Giuseppe