Sobes.tech
Middle+

Kuidas te suhtute koodi obfuskatsiooni ja milliseid koodi kaitsemeetodeid pead kõige tõhusamaks?

sobes.tech AI

Vastus AI-lt

Positiivne. Obfuskatsioon suurendab tagasipööramise keerukust, muutes koodi analüüsi ründajatele raskemaks.

Kõige tõhusamad kaitsemeetodid:

  • Obfuskatsioon: Koodi loogika segamine, klasside, meetodite ja väljade ümbernimetamine. Tööriistad nagu R8/ProGuard.
  • Krüpteerimine: Sensitiivsete andmete ja kriitiliste koodiosade krüpteerimine.
  • Koodi terviklikkuse kontroll: Koodi terviklikkuse kontrollid jooksvalt, et avastada muudatusi.
  • Võtmete ja saladuste varjamine: Sensitiivsete andmete salvestamine turvalisse kohta, näiteks Android Keystore kasutades.
  • Kaitse debugeri vastu: JDWP debuggeri ühendamise katsete tuvastamine ja tõrjumine.
  • Root/jailbreak tuvastamine: Funktsioonide keelamine või rakendusest väljumine, kui avastatakse kompromiteeritud seade.

Kombineeritud lähenemine, mis ühendab mitmeid meetodeid, tagab parima kaitse.

Näide põhieobfuskatsioonist R8 abil:

# Hoia kõik klassid, mis laiendavad Activity
-keep public class * extends android.app.Activity

# Väldi annotatsioonide eemaldamist optimeerimise ajal
-keepattributes *Annotation*

# Hoia kõik meetodid ja väljad nende klasside sees, mida see meetod tagastab
-keepclassmembers class foo.bar.Baz {
  <fields>;
  <methods>;
}

# Eri viisil eemalda R.java fail
-dontwarn **R$*
-dontnote **R$*
-dontoptimize **R$*