Ottieni il codice sorgente da un file .apk? [chiuso]


21

Avendo un file .apk, c'è un modo per ottenere il suo codice sorgente?


7
Prima di ciò, hai verificato se il pacchetto è open source?
ott--

Un .apk è semplicemente un file .zip. Ma sfortunatamente qualsiasi app creata per il 'rilascio' sarà probabilmente protetta da ProGuard .
Daniel López,

@MatthewRead L'Op chiede se potrebbe ottenere il codice da un'API e io ho risposto a come si chiama questo fenomeno e ai modi per impedire almeno di creare un'app simile. Non dice come impedire di ottenere il codice. Quindi sì, risponde alla domanda.
Essere umano,

Risposte:



11

Se sei fortunato e il tuo .apkfile non è stato protetto da Proguard o analogico, puoi usare lo strumento APK . È uno strumento per il reverse engineering di app Android binarie chiuse di terze parti.


Apktool genera solo Smali-Code, non codice Java - questa è una grande differenza.
Robert,

2

Da una delle wiki della comunità di Parnkul Garg in SO :


Procedura per la decodifica dei file .apk, metodo passo-passo:

Passo 1:

  1. Crea una nuova cartella e copia sul file .apk che vuoi decodificare.

  2. Ora rinominare l'estensione di questo file .apk in .zip (ad esempio rinominare da nomefile.apk in nomefile.zip) e salvarlo. Ora puoi accedere ai file classes.dex, ecc. A questo punto puoi vedere i file disegnabili ma non i file xml e java, quindi continua.

Passo 2:

  1. Ora estrai questo file .zip nella stessa cartella (o NEW FOLDER).

  2. Scarica dex2jar ed estrailo nella stessa cartella (o NUOVA CARTELLA).

  3. Spostare il file classes.dex nella cartella dex2jar.

  4. Ora apri il prompt dei comandi e cambia la directory in quella cartella (o NEW FOLDER). Quindi scrivere d2j-dex2jar classes.dexe premere invio. Ora hai il file classes.dex.dex2jar nella stessa cartella.

  5. Scarica il decompilatore java , fai doppio clic su jd-gui, fai clic sul file aperto e apri il file classes.dex.dex2jar da quella cartella: ora ottieni i file di classe.

  6. Salvare tutti questi file di classe (in jd-gui, fare clic su File -> Salva tutte le fonti) per nome src. A questo punto ottieni la fonte java ma i file .xml sono ancora illeggibili, quindi continua.

Passaggio 3:

Ora apri un'altra nuova cartella

  1. Inserisci il file .apk che vuoi decodificare

  2. Scarica l'ultima versione di apktool AND apktool install window (entrambi possono essere scaricati dallo stesso link) e posizionali nella stessa cartella

  3. Scarica framework-res.apk e mettilo nella stessa cartella (Non tutti i file apk hanno bisogno di questo file, ma non fa male)

  4. Apri una finestra di comando

  5. Passare alla directory principale di APKtool e digitare il comando seguente: apktool if framework-res.apk

  6. apktool d myApp.apk (dove myApp.apk indica il nome file che si desidera decodificare)

ora ottieni una cartella di file in quella cartella e puoi leggere facilmente i file xml dell'apk.

Step 4:

Non è un passaggio semplicemente copiare il contenuto di entrambe le cartelle (in questo caso entrambe le nuove cartelle) su quella singola

e goditi il ​​codice sorgente ...

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.