web-dev-qa-db-fra.com

Proguard fonctionne-t-il pour obscurcir les constantes de chaînes statiques?

Proguard fonctionnera-t-il pour obscurcir les constantes de chaînes statiques?

39
Code Droid

ProGuard n'obscurcit pas les constantes de chaîne, comme mentionné dans sa FAQ . Son frère spécialisé de source fermée plus récent pour Android, DexGuard , fournit des techniques de protection d'application supplémentaires, comme le cryptage de chaîne et le cryptage de classe.

(Je suis le développeur de ProGuard et DexGuard)

66
Eric Lafortune

Non, ProGuard ne crypte pas les constantes de chaînes ( Proguard FAQ Link )

Mais il existe des produits commerciaux qui vous aideront à cela. Je recommanderais le Stringer Java Obfuscator car il a les vérification du contexte d'appel et des fonctions de contrôle d'intégrité ce qui rend la rétro-ingénierie aussi difficile que possible.IMHO Stringer est le meilleur chiffreur de chaînes pour Java et Android Android sur le marché aujourd'hui).

Voir aussi Allatori Java Obfuscator .

N.B. Je suis PDG de Licel LLC. Développeur de Stringer Java Obfuscator.

11
Ivan Kinash

Ce que ProGuard fait (s'il est correctement configuré pour le faire), ce sont des constantes de chaîne en ligne. Cela n'aurait pas beaucoup de sens de les brouiller, pensez-y, une constante de chaîne pourrait être utilisée pour représenter un message à l'utilisateur, et à quoi cela servirait-il s'il était obscurci?

8
Óscar López

Sur la base de ma lecture des options d'obscurcissement dans le manuel, la réponse est non.

L'obscurcissement des littéraux de chaîne est théoriquement possible, mais il serait nécessaire d'utiliser un chargeur de classe spécial qui désobscurcit les littéraux de chaîne lorsqu'ils sont lus à partir du fichier de classe. Ce serait délicat. En plus de cela, cela ne fait pas grand-chose, car quelqu'un peut facilement récupérer les chaînes d'origine en exécutant votre application avec un débogueur Java attaché.

3
Stephen C