Maison  >  Article  >  Java  >  Comment puis-je masquer efficacement les chaînes sensibles dans le code Android obscurci après la décompilation ?

Comment puis-je masquer efficacement les chaînes sensibles dans le code Android obscurci après la décompilation ?

DDD
DDDoriginal
2024-10-28 11:41:02414parcourir

How can I effectively hide sensitive strings in obfuscated Android code after decompilation?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn