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