Middle+
Ką manote apie kodo obfuskaciją ir kokius kodo apsaugos metodus laikote efektyviausiais?
sobes.tech AI
Atsakymas iš AI
Teigiamas. Obfuskacija didina atvirkštinio inžinerijos sudėtingumą, apsunkina kodo analizę išpuolių šaltinių.
Efektyviausi apsaugos metodai:
- Obfuskacija: Kodo logikos sumaišymas, klasių, metodų ir laukų pervardijimas. Įrankiai kaip R8/ProGuard.
- Šifravimas: Slaptų duomenų ir kritinių kodo dalių šifravimas.
- Kodo vientisumo patikrinimai: Kodo vientisumo tikrinimas vykdymo metu, siekiant aptikti pakeitimus.
- Raktų ir paslapčių paslėpimas: Slaptų duomenų saugojimas saugioje vietoje, pvz., naudojant Android Keystore.
- Apsauga nuo derinimo: JDWP derintuvo prisijungimo bandymų aptikimas ir prevencija.
- Root/jailbreak aptikimas: Funkcijų išjungimas arba išėjimas iš programos, jei aptinkamas pažeistas įrenginys.
Visapusiškas požiūris, jungiantis kelis metodus, užtikrina geriausią apsaugą.
Pavyzdys bazinės obfuskacijos naudojant R8:
# Išsaugoti visas klases, kurios išplečia Activity
-keep public class * extends android.app.Activity
# Užkirsti kelią anotacijų pašalinimui optimizacijos metu
-keepattributes *Annotation*
# Išsaugoti visas metodus ir laukus tėvų klasių, kurias grąžina ši funkcija
-keepclassmembers class foo.bar.Baz {
<fields>;
<methods>;
}
# Aiškiai pašalinti R.java failą
-dontwarn **R$*
-dontnote **R$*
-dontoptimize **R$*