Secondo questo link: http://developer.android.com/guide/developing/tools/proguard.html, essi affermano:Proguard non offuscando le applicazioni Android
ProGuard rende l'applicazione più difficile da decodificare, è importante che lo si utilizza quando l'applicazione utilizza funzioni che sono sensibili alle sicurezza come quando si concedono in licenza le proprie applicazioni.
Ma non è vero! Sto utilizzando la più recente Proguard (4.7) incluso nel anteprima 4. ADT 17 Io uso Proguard durante l'esportazione la mia app con l'aggiunta di
proguard.config=proguard-android.txt
Nelle mie project.properties (Proguard-android.txt è solo la configurazione di default incluso in ADT 17).
Ma posso facilmente decodificare il mio apk, riportandola al suo codice originale utilizzando questi passaggi:
Usa apk-strumento per estrarre l'apk.
Usa smali per convertire i file in una .smali .dex (si Smali puntare alla cartella contenente i file .smali, normalmente all'interno/src/com/[companyname]/[appname])
Usa dex2jar per convertire il file .dex risultante in un .jar
Usa JD-GUI per visualizzare il file .jar risultante
Quindi la mia domanda è: sto facendo qualcosa di sbagliato? O il proguard è completamente inutile nel codice offuscante?
Dice solo più difficile per il reverse-engineer, ma non è impossibile farlo come quello che hai fatto. Vedo che le persone lo usano principalmente per ridurre la dimensione del codice. –
haha Mi piacerebbe conoscere la loro definizione di "facile" allora. Qualsiasi app può essere decodificata in 4 comandi! Potrei addestrare una scimmia per farlo. –
Giusto per chiarire, che cosa stai vedendo in 'jd-gui', e cosa ti aspetti di vedere? Vedi il codice originale come, approssimativamente, come lo hai compilato? Stai vedendo i nomi delle variabili originali nei tuoi metodi, ecc.? –