Masquer des secrets dans du code Android obscurci
Lors de l'obscurcissement du code Android avec des outils comme ProGuard, il est courant de découvrir que les chaînes sensibles restent visibles après la décompilation . Pour répondre à ce problème, voici quelques stratégies pour dissimuler les chaînes aux regards indiscrets :
Encodage et cryptage
ProGuard ne fournit pas de mécanismes pour masquer les chaînes. Envisagez plutôt de mettre en œuvre vos propres méthodes de codage ou de cryptage. Pour l'obscurité de base, l'encodage à l'aide de méthodes telles que Base64 peut suffire. Pour une protection plus rigoureuse, chiffrez les chaînes à l'aide de chiffrements symétriques comme AES via des classes comme javax.crypto.Cipher.
N'oubliez pas que le chiffrement des chaînes nécessite de stocker la clé de chiffrement dans l'application, ce qui peut compromettre la sécurité.
Exemple :
Avant :
<code class="java">public class Foo { private String mySecret = "http://example.com"; }</code>
Après :
<code class="java">public class Foo { private String encrypted = "<manually created encrypted string>"; private String key = "<key used for encryption"; private String mySecret = MyDecryptUtil.decrypt(encrypted, key); }</code>
Chaînes de classe R
Les chaînes de classe R que vous mentionnez (par exemple, 2130903058) sont des références aux ID de ressources. Ce ne sont pas des nombres aléatoires mais pointent plutôt vers des ressources telles que des fichiers de mise en page. Lors de l'obfuscation, les références aux ressources sont remplacées par ces identifiants pour réduire la taille du code.
Lors de la décompilation du code, la classe R peut ne pas être présente car sa structure interne est mutilée par des obfuscateurs. Cependant, les identifiants représentent toujours les références de ressources d'origine.
DRM tiers
Envisagez d'utiliser une solution dédiée de gestion des droits numériques (DRM) au lieu de mettre en œuvre votre propre protection. mesures. Google propose un service de licence pour Android qui peut être plus sécurisé que les solutions personnalisées.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!