Come decompilare un’app Android Apk

Recentemente, abbiamo pubblicato una guida su come aggiungere dipendenze solo per prodotti specifici. Dopo aver implementato i passaggi necessari, abbiamo voluto fare in modo che la finale .apk in realtà non contiene più classi indesiderate. In questo post, ti mostreremo come verificare quali classi e risorse sono in un apk.

Nota: questa guida è stata progettata per decompilare il proprio apk, e non il duro lavoro di altri sviluppatori. Pertanto, non abbiamo incluso alcun passaggio per decodificare o aggirare l’offuscamento del codice.

>

Preparazione: Installazione degli strumenti

Un apk Android è fondamentalmente una directory zippata, che contiene alcune risorse grezze (immagini, file di layout, ..) e un file classes.dex. Questo file contiene tutto il codice reale e ci interessa di più. Scarichiamo tutti gli strumenti di cui abbiamo bisogno:

  • Dovrai decomprimere l’apk. È possibile utilizzare sia la funzionalità integrata del sistema operativo, o installare il vostro preferito (un)archiviatore come 7-Zip.
  • Per invertire il file classes.dexin un .jar, è necessario scaricare lo strumento dex2jar.
  • Infine, per rendere il file.jar leggibile per l’occhio umano, scaricare ed eseguire JD-Gui.

Ottenere il codice indietro

Va bene, ora è il momento di fare il lavoro vero e proprio. Copia il tuo file apk in una directory in cui vuoi lavorare. Decomprimere l’apk utilizzando lo strumento di vostra scelta e si dovrebbe ottenere una directory con un paio di sottodirectory e un paio di file.

Decompresso .apk

Sentitevi liberi di sfogliare ilAndroidManifest.xml o ilres directory. Il pezzo più interessante è classes.dex. Quindi, passa allo strumento dex2jar scaricato e apri un nuovo terminale.

Se sei su Mac OS, esegui sh d2j-dex2jar.sh -f -o output.jar your_app_input.apk. Gli utenti Windows possono utilizzare il file.bat per creare il file.jar. Una volta eseguito lo strumento, passare al nuovo file .jar.

Visualizzazione del codice decompilato

Infine, avviare lo strumento scaricatoJD-GUI e utilizzarlo per aprire il file.jar.

Decompiled Code View con JD-GUI

È possibile sfogliare tutti i pacchetti e le classi, che sono nel vostro apk. Il codice è una versione spogliata e non contiene commenti o strutture ridondanti che stai vedendo nel tuo IDE. Ricorda, questa è la minimizzazione compilata della tua app. Tuttavia, si dovrebbe dare abbastanza informazioni per conoscere le basi della app. Ad esempio, ci ha aiutato a verificare che non ci siano più pacchetti relativi alla libreria admob nell’app.

Altre opzioni

Se hai solo bisogno di una rapida decompilazione, puoi utilizzare lo strumento online all’indirizzo www.decompileandroid.com/.

Per scopi di decompilazione più avanzati puoi dare un’occhiata ad apktool, che offre molti aiutanti aggiuntivi.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *