Sobes.tech
Middle+

Kako gledate na obfuskaciju koda i koje metode zaštite koda smatrate najučinkovitijima?

sobes.tech АИ

Одговор од АИ

Pozitivno. Obfuscacija povećava složenost reverznog inženjerstva, otežavajući analizu koda od strane napadača.

Najefikasnije metode zaštite:

  • Obfuscacija: Zbunjuje logiku koda, preimenuje klase, metode i polja. Alati poput R8/ProGuard.
  • Šifrovanje: Šifruje osetljive podatke i kritične delove koda.
  • Integritet koda: Provere integriteta koda tokom izvršavanja radi otkrivanja modifikacija.
  • Skrivanje ključeva i tajni: Čuvanje osetljivih podataka na sigurnom mestu, na primer korišćenjem Android Keystore.
  • Zaštita od debugera: Otkrivanje i suzbijanje pokušaja povezivanja JDWP debuggera.
  • Detekcija root/jailbreak: Onemogućavanje funkcija ili izlazak iz aplikacije pri otkrivanju kompromitovanog uređaja.

Kombinovan pristup koji koristi više metoda pruža najbolju zaštitu.

Primer osnovne obfuskacije pomoću R8:

# Čuvajte sve klase koje proširuju Activity
-keep public class * extends android.app.Activity

# Sprečite uklanjanje anotacija od strane optimizacije.
-keepattributes *Annotation*

# Čuvajte sve metode i polja u klasama koje vraća ova metoda.
-keepclassmembers class foo.bar.Baz {
  <fields>;
  <methods>;
}

# Eksplicitno uklonite R.java fajl.
-dontwarn **R$*
-dontnote **R$*
-dontoptimize **R$*