Sobes.tech
Middle+

Ποια είναι η γνώμη σας σχετικά με την απόκρυψη κώδικα και ποια μέτρα προστασίας κώδικα θεωρείτε ότι είναι τα πιο αποτελεσματικά;

sobes.tech AI

Απάντηση από AI

Θετικό. Η απόκρυψη αυξάνει τη δυσκολία της αναστροφολογικής μηχανικής, καθιστώντας πιο δύσκολη την ανάλυση του κώδικα από επιτιθέμενους.

Οι πιο αποτελεσματικές μέθοδοι προστασίας:

  • Απόκρυψη: Μπερδεύει τη λογική του κώδικα, μετονομάζει κλάσεις, μεθόδους και πεδία. Εργαλεία όπως R8/ProGuard.
  • Κρυπτογράφηση: Κρυπτογραφεί ευαίσθητα δεδομένα και κρίσιμα τμήματα του κώδικα.
  • Ακεραιότητα κώδικα: Έλεγχοι ακεραιότητας κατά την εκτέλεση για ανίχνευση τροποποιήσεων.
  • Κρυψίματα κλειδιών και μυστικών: Αποθήκευση ευαίσθητων δεδομένων σε ασφαλές μέρος, π.χ. με Android Keystore.
  • Προστασία από αποσφαλμάτωση: Ανίχνευση και αντιμετώπιση προσπαθειών σύνδεσης αποσφαλματωτή JDWP.
  • Ανίχνευση root/jailbreak: Απενεργοποίηση λειτουργιών ή έξοδος από την εφαρμογή σε περίπτωση ανίχνευσης παραβιασμένης συσκευής.

Μια ολοκληρωμένη προσέγγιση που συνδυάζει πολλές μεθόδους παρέχει την καλύτερη προστασία.

Παράδειγμα βασικής απόκρυψης με R8:

# Διατήρηση όλων των κλάσεων που επεκτείνουν το Activity
-keep public class * extends android.app.Activity

# Αποτροπή διαγραφής των annotations από την βελτιστοποίηση.
-keepattributes *Annotation*

# Διατήρηση όλων των μεθόδων και πεδίων σε κλάσεις που επιστρέφονται από αυτήν τη μέθοδο.
-keepclassmembers class foo.bar.Baz {
  <fields>;
  <methods>;
}

# Ρητά διαγραφή του αρχείου R.java.
-dontwarn **R$*
-dontnote **R$*
-dontoptimize **R$*