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$*