Sobes.tech
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$*