2011-08-22 6 views

risposta

3

Provare a decodificare la propria applicazione. Guarda cosa puoi leggere nel codice.

utilizzare le seguenti domande:

decompiling DEX into Java sourcecode

http://www.taranfx.com/decompile-reverse-engineer-android-apk

+1

Grazie per questo. Ho de-compilato due app diverse, una che ho offuscato e un'altra che non ho offuscato. Il codice di entrambe le app (non offuscato e offuscato) ha lo stesso aspetto. I nomi delle variabili sono stati modificati, ma i nomi delle classi e quant'altro rimangono gli stessi. È così che funziona l'offuscamento? Come mai il progetto che non ho offuscato ha cambiamenti nei nomi delle variabili? – dell116

+0

Dipende da come si imposta proguard per funzionare ... ma non ho molta esperienza con quello! –

11

Cercare dump.txt, mapping.txt, seeds.txt e usage.txt. Probabilmente si troveranno in una cartella proguard nella directory del progetto. Questi vengono creati quando ProGuard viene eseguito sul tuo codice.

Questi sono pieni di informazioni circa l'offuscamento, in particolare utile è mapping.txt che mostra ciò che ProGuard ha trasformato i vari nomi dei membri in.

+1

Ho una cartella ProGuard nella directory del progetto, ma ne contiene zilch .... niente lì ... devo presumere che ProGuard non abbia offuscato correttamente il mio codice? Questi file potrebbero essere in qualsiasi altra directory? – dell116

+0

C'è qualche cartella 'proguard' sotto il tuo progetto dovunque? In caso contrario, direi che probabilmente non è stato eseguito correttamente. –

+0

Sì..la cartella proguard è lì ... ma non ha contenuti .... Non sono riuscito a trovare nessuno dei file che hai menzionato ovunque sul mio disco rigido ... quindi qualcosa deve essersi rotto quando l'ho eseguito tramite proguard .... uh oh .... – dell116

0

DISCALIMER: Io non sono il proprietario di decompileandroid.com e io non sono pagato per promuoverlo. Sono uno sviluppatore, che è soddisfatto di questo servizio.

C'è in realtà un modo più semplice che acquisire diversi strumenti diversi e passare l'output di uno di essi all'altro (questo ovviamente offre un controllo migliore di ciò che sta succedendo). È possibile utilizzare il servizio

decompileandroid.com

Fondamentalmente si caricare e file .apk e lo fa tutti questi passaggi per voi. Quindi è possibile scaricare un file .zip, che contiene le fonti decompilate.

È possibile caricare prima la modalità di debug integrata in .apk, quindi caricare una modalità di rilascio incorporata .apk. Assicurati che il flag minifyEnabled sia impostato su true nel file build.gradle per la build di rilascio.

La differenza era abbastanza ovvia nel mio caso: la maggior parte delle mie classi erano denominate a, b, c, ecc. Nella build minificata.

+0

Yikes! Voglio dire, sono sicuro che conosci già le implicazioni del caricamento di una build debuggibile e non offuscata su un server web. Dopotutto, stiamo parlando dell'offuscamento in modo che una terza parte non possa leggere il tuo codice. Anche se questo sito sembra bello in superficie, non sono sicuro che mi fiderei. – dell116

+0

Sì, naturalmente nella maggior parte delle situazioni non vorresti caricare i tuoi APK su un server remoto. Soprattutto con progetti commerciali. Ho dato questa alternativa più facile. Nel mio caso si trattava di un progetto di test, quindi non avevo nulla di cui preoccuparmi. Ovviamente si può sempre caricare solo la versione offuscata, se anche questo non sarebbe un problema. In tal caso si vedrebbe solo quanto bene ha funzionato la confusione. –