Middle+
Kod obfuscasyonu hakkında ne düşünüyorsunuz ve sizin en etkili olduğunu düşündüğünüz kod koruma yöntemleri nelerdir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Pozitif. Obfuscation, tersine mühendislik zorluğunu artırır ve saldırganların kodu analiz etmesini zorlaştırır.
En etkili koruma yöntemleri:
- Obfuscation: Kod mantığını karıştırmak, sınıf, yöntem ve alanların isimlerini değiştirmek. R8/ProGuard gibi araçlar.
- Şifreleme: Hassas verilerin ve kritik kod bölümlerinin şifrelenmesi.
- Kod bütünlüğü: Çalışma sırasında kod bütünlüğü kontrolleri yaparak değişiklikleri tespit etme.
- Anahtarlar ve gizli bilgilerin gizlenmesi: Hassas verileri güvenli bir yerde saklama, örneğin Android Keystore kullanmak.
- Hata ayıklayıcıdan koruma: JDWP hata ayıklayıcı bağlantı girişimlerini tespit etme ve önleme.
- Root/jailbreak tespiti: Güvenilir olmayan cihazlarda fonksiyonları devre dışı bırakma veya uygulamadan çıkma.
Birden fazla yöntemi birleştiren kapsamlı bir yaklaşım en iyi korumayı sağlar.
R8 kullanarak temel obfuscation örneği:
# Tüm Activity genişleten sınıfları koru
-keep public class * extends android.app.Activity
# Anotasyonların kaldırılmasını engelle
-keepattributes *Annotation*
# Bu yöntemin döndürdüğü sınıflardaki tüm metod ve alanları koru
-keepclassmembers class foo.bar.Baz {
<fields>;
<methods>;
}
# R.java dosyasını açıkça kaldır
-dontwarn **R$*
-dontnote **R$*
-dontoptimize **R$*