Si vous développez des applications Java, il est important de garder à l’esprit que vos classes sont facilement décompilables via un processus dit de reverse-engineering.
Le code source Java est compilé en byte code dans un fichier .class. La machine virtuelle ne requiert que ce dernier pour fonctionner. C’est du code compilé et non exécuté. Le problème étant qu’il est très facile d’obtenir le code source à partir d’un fichier .class compilé. Il est donc nécessaire d’avoir recourt à des outils qui évite cela. Ce sont des obfuscateurs de code. Il en existe pour tous les langages.
Il existe, entre autre, un obfuscateur nommé ProGuard. Il optimise, sécurise, et vérifie votre code. Il détecte et supprime les classes, méthodes, champs inutilisées rendant ainsi votre code plus rapide et de meilleur qualité.
Il est rapide et s’utilise directement en ligne de commande. Il existe également une interface graphique pour l’outil.
Même si l’utilisation de ce genre d’outils permet de sécurisé le code, il reste possible, à des personnes expertes dans le domaine, de décompiler et de comprendre le code. En dernier recourt, il est même possible de passer par un désassembleur ou un débugger directement en mémoire. Aucun programme informatique n’est donc sans failles. Obfusquer du code source ne permettra que de retarder les gens motivés.
ProGuard est un outil qui à le mérite d’être gratuit et de faire son travail correctement. Vous trouverez plus un compléments d’informations dans un article sur dzone.com.