Sobes.tech
Middle+

Ինչպե՞ս եք վերաբերվում կոդի օբֆուսիկացիային և ինչ մեթոդներ եք համարում առավել արդյունավետ կոդի պաշտպանության համար։

sobes.tech AI

Պատասխան AI-ից

Դրական։ Օբֆուսիկացիան բարձրացնում է հակադարձ ինժեներիայի բարդությունը, դժվարացնելով կոդի վերլուծությունը հարձակումների կողմից։

Ամենաարդյունավետ պաշտպանական մեթոդները՝

  • Օբֆուսիկացիա: Կոդի տրամաբանության խառնաշփոթ, դասարանների, մեթոդների և դաշտերի անվանումների փոփոխություն։ Օգտակար գործիքներ՝ R8/ProGuard։
  • Կոդի ծածկում: Հասցենային տվյալների և կարևոր մասերի ծածկում։
  • Կոդի ամբողջականության ստուգում: Կատարվում է գործարկման ժամանակ՝ փոփոխությունները հայտնաբերելու համար։
  • Բանալի և գաղտնիքների թաքցում: Հասցենային տվյալները պահվում են անվտանգ վայրում՝ օրինակ՝ Android Keystore։
  • Պաշտպանություն դեբագերի դեմ: Հետեւում և կանխում է JDWP դեբագերի միացման փորձերը։
  • Root/jailbreak հայտնաբերում: Ֆունկցիոնալության անջատում կամ ծրագրից դուրս գալ՝ եթե հայտնաբերվում է խախտված սարք։

Կոմպլեքս մոտեցում՝ մի քանի մեթոդների համադրությամբ՝ ապահովում է լավագույն պաշտպանությունը։

Օրինակ՝ R8-ի միջոցով հիմնական օբֆուսիկացիա:

# Պահպանել բոլոր դասերը, որոնք ընդլայնում են Activity
-keep public class * extends android.app.Activity

# Արգելել օպտիմիզացիայի ժամանակ նշումների հեռացումը
-keepattributes *Annotation*

# Պահպանել բոլոր մեթոդներն ու դաշտերը, որոնք վերադառնում են այս մեթոդից
-keepclassmembers class foo.bar.Baz {
  <fields>;
  <methods>;
}

# Մասնավորապես հեռացնել R.java ֆայլը
-dontwarn **R$*
-dontnote **R$*
-dontoptimize **R$*