Sinon, vous trouverez peut être dans cet article quelques informations intéressantes.
Tout d'abord un bref rappel!
Le reverse engineering est une technique permettant de reconstituer le code source d'une application à partir de sa forme compilée telle que livrée à ses clients par un éditeur. La possession du code source permet de connaître le fonctionnement précis d'une application.
Une personne malveillante peut grâce à cette technique connaître les algorithmes utilisés par son concurrent et lui voler ses secrets. Outre les algorithmes, les identifiants de connexion à des ressources (bases de données, annuaires...) sont là aussi accessibles, d'où le risque de vol de mot de passe et d'accès frauduleux à des ressources protégées.
Face aux risques liés au reverse engineering quelles techniques permettent de cacher le code source d'une application ? L'une d'elles est l'obfuscation qui transforme le code source avant compilation de manière à le rendre illisible pour l'être humain.
L'aspect général du code source d'une application peut être obfusqué de la manière suivante:
L'aspect général du code source d'une application peut être obfusqué de la manière suivante:
- renommage de tous les identifiants
- suppression des commentaires
- élagage des déclarations d'API non utilisées
- suppression des règles de style (comme l'indentation)
- cryptage des chaînes de caractères pour cacher leur valeur.
Démonstration par l'image au travers d'un exemple... à suivre (plus ou moins)!
Voici quelques obfuscateurs (c'est une liste non exhaustive):
- JavaScript Obfuscator & Encoder de Stunnix pour le JavaScript
- Dotfuscator de PreEmptive Solutions pour .NET
- Retroguard for Java Obfuscation de Retrologic Systems pour Java

Le décompilateur Mocha peut être téléchargé ICI.
Le décompilateur Java Sothink peut être téléchargé ICI.
A bientôt...