ProGuard fornisce il nome di offuscamento: può sostituire i nomi originali di classi, metodi e campi con nomi brevi e privi di significato. DexGuard fornisce inoltre la crittografia delle stringhe e la crittografia delle classi. Il termine crittografia può essere fonte di confusione in questo contesto, dal momento che questi sono tipi di offuscamento sostanzialmente più aggressivi. Stringhe e classi designate sono memorizzate in una forma crittografata volutamente complessa e decodificate in fase di runtime con chiavi e algoritmi necessariamente disponibili per l'applicazione. In un certo senso, il mercato di Google Play può crittografare intere applicazioni per Android 4.1. L'ambiente runtime quindi decrittografa l'applicazione prima che venga eseguita, in modo controllato.
(Io sono l'autore di ProGuard e DexGuard - sentitevi liberi di entrare in contatto, se siete interessati)
fonte
2012-11-07 23:21:48
Ciao! Grazie per la tua risposta! Sì, mi sono confuso con la definizione di crittografia in DexGuard. Fondamentalmente, la mia comprensione è che la crittografia trasforma i dati con l'uso di una chiave segreta. Tuttavia, se un'applicazione Android è crittografata, Dalvik non sarà in grado di comprendere l'applicazione crittografata poiché Dalvik non contiene un decryptor per l'applicazione. A meno che, naturalmente, non sia presente un decryptor all'interno dell'applicazione insieme alla chiave. In questo modo, la classe verrà decodificata dall'applicazione stessa prima di essere eseguita da Dalvik. È così che funziona DexGuard? – Arci
Posso utilizzare DexGuard insieme all'encyption di Google Play per Android 4.1? Inoltre, si consiglia di utilizzare DexGuard insieme a Proguard? Ho notato sulla pagina di Proguard che DexGuard non ha classi di preverifica. Come posso anticipare le classi se userò DexGuard? Grazie! : D – Arci
corretto. Sì, dall'esterno, un'applicazione elaborata sembra ancora come qualsiasi altra applicazione; Google Play può ancora crittografarlo. No, non è necessario combinare ProGuard e DexGuard, poiché DexGuard fornisce già la funzionalità di ProGuard. La pre-verifica è richiesta solo per Java Micro Edition e Java 6, non per Android. –