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