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...
Bonne idée, j’aurais juste dit que « tout ce qui peut etre fait… peut etre defait » donc enlever le nom des vars/fct, oui, mais re-indenter, decoder les chaines de car etc ca s’automatise lorsqu’on a identifié l’obfuscateur utilisé …
RépondreSupprimerAvec Visual Studio il est possible d'obfusquer une application avec Dotfuscator.
RépondreSupprimer.NET Reflector (http://www.red-gate.com/products/reflector/index.htm) permet de décompiler et d'analyser les .NET assemblies.
A regarder de plus prêt...