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