Sobes.tech
Middle+

Ce părere aveți despre obfuscația codului și care metode de protecție a codului considerați că sunt cele mai eficiente?

sobes.tech AI

Răspuns de la AI

Pozitiv. Obfuscația crește dificultatea ingineriei inverse, îngreunând analiza codului de către atacatori.

Cele mai eficiente metode de protecție:

  • Obfuscație: Confuzie a logicii codului, redenumirea claselor, metodelor și câmpurilor. Instrumente precum R8/ProGuard.
  • Criptare: Criptarea datelor sensibile și a părților critice ale codului.
  • Integritatea codului: Verificări de integritate ale codului în timpul execuției pentru a detecta modificări.
  • Ascunderea cheilor și secretelor: Stocarea datelor sensibile într-un loc sigur, de exemplu, utilizând Android Keystore.
  • Protecție împotriva debugger-ului: Detectarea și contracararea încercărilor de conectare a debugger-ului JDWP.
  • Detectarea root/jailbreak: Dezactivarea funcționalităților sau ieșirea din aplicație la detectarea unui dispozitiv compromis.

O abordare cuprinzătoare, care combină mai multe metode, asigură cea mai bună protecție.

Exemplu de obfuscare de bază cu R8:

# Păstrează toate clasele care extind Activity
-keep public class * extends android.app.Activity

# Previne eliminarea anotărilor de către optimizare.
-keepattributes *Annotation*

# Păstrează toate metodele și câmpurile din clasele returnate de această metodă.
-keepclassmembers class foo.bar.Baz {
  <fields>;
  <methods>;
}

# Elimină explicit fișierul R.java.
-dontwarn **R$*
-dontnote **R$*
-dontoptimize **R$*