Middle+
Quelle est votre opinion sur l'obfuscation du code et quels méthodes de protection du code pensez-vous être les plus efficaces?
sobes.tech IA
Réponse de l'IA
Positif. L'obfuscation augmente la complexité de l'ingénierie inverse, rendant l'analyse du code plus difficile pour les attaquants.
Les méthodes de protection les plus efficaces :
- Obfuscation : Embrouiller la logique du code, renommer les classes, méthodes et champs. Outils comme R8/ProGuard.
- Chiffrement : Chiffrer les données sensibles et les parties critiques du code.
- Intégrité du code : Vérifications d'intégrité du code lors de l'exécution pour détecter les modifications.
- Cacher les clés et secrets : Stocker les données sensibles dans un endroit sécurisé, par exemple en utilisant Android Keystore.
- Protection contre le débogueur : Détection et contre-mesures contre les tentatives de connexion d'un débogueur JDWP.
- Détection du root/jailbreak : Désactiver des fonctionnalités ou quitter l'application en cas de détection d'un appareil compromis.
Une approche globale combinant plusieurs méthodes offre la meilleure protection.
Exemple d'obfuscation de base avec R8 :
# Conserver toutes les classes qui étendent Activity
-keep public class * extends android.app.Activity
# Empêcher l'optimisation de supprimer les annotations.
-keepattributes *Annotation*
# Conserver toutes les méthodes et champs des classes retournées par cette méthode.
-keepclassmembers class foo.bar.Baz {
<fields>;
<methods>;
}
# Supprimer explicitement le fichier R.java.
-dontwarn **R$*
-dontnote **R$*
-dontoptimize **R$*