Middle+
Qual è la tua opinione sull'offuscamento del codice e quali metodi di protezione del codice ritieni siano i più efficaci?
sobes.tech AI
Risposta dell'AI
Positivo. L'offuscamento aumenta la complessità dell'ingegneria inversa, rendendo più difficile l'analisi del codice da parte degli attaccanti.
I metodi di protezione più efficaci:
- Offuscamento: Confondere la logica del codice, rinominare classi, metodi e campi. Strumenti come R8/ProGuard.
- Crittografia: Crittografare dati sensibili e parti critiche del codice.
- Integrità del codice: Verifiche di integrità del codice durante l'esecuzione per rilevare modifiche.
- Nascondere chiavi e segreti: Conservare dati sensibili in luoghi sicuri, ad esempio usando Android Keystore.
- Protezione contro il debugger: Rilevare e contrastare tentativi di collegare debugger JDWP.
- Rilevamento di root/jailbreak: Disabilitare funzionalità o uscire dall'applicazione se viene rilevato un dispositivo compromesso.
Un approccio completo che combina più metodi garantisce la migliore protezione.
Esempio di offuscamento di base con R8:
# Conserva tutte le classi che estendono Activity
-keep public class * extends android.app.Activity
# Impedisce che l'ottimizzazione rimuova le annotazioni.
-keepattributes *Annotation*
# Conserva tutti i metodi e campi delle classi restituiti da questo metodo.
-keepclassmembers class foo.bar.Baz {
<fields>;
<methods>;
}
# Rimuove esplicitamente il file R.java.
-dontwarn **R$*
-dontnote **R$*
-dontoptimize **R$*