Sobes.tech
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$*