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