Objectif de l'obfuscation
L'objectif de l'obfuscation consiste à créer une confusion. Ainsi, la capacité de l'esprit humain à comprendre des concepts intellectuels complexes s'en trouve amoindrie. Remarquez que ce précepte ne dit rien sur la modification de la logique exécutable ; celle-ci est simplement représentée de façon incompréhensible. Lorsqu'un obfuscateur correctement écrit est exécuté sur les instructions lisibles d'un programme, il est donc probable que la sortie sera confuse non seulement pour l'interpréteur humain mais également pour le décompilateur. Ainsi, si la logique exécutable a été conservée, les sémantiques inversées ont été rendues non déterministes. Par conséquent, toute tentative d'ingénierie à rebours des instructions afin d'obtenir un « dialecte de programmation » tel que C# ou VB risque d'échouer, car la traduction est ambiguë. Une obfuscation profonde crée une multitude de possibilités de décompilation, dont certaines peuvent générer une logique incorrecte lors de la recompilation. Le décompilateur, en tant qu'ordinateur, n'a aucun moyen de savoir quelles possibilités peuvent être recompilées avec des sémantiques valides. L'homme écrit et utilise des décompilateurs afin d'automatiser les algorithmes de décompilation qui sont trop complexes à suivre pour l'esprit humain. Il est donc juste de dire qu'un obfuscateur qui parvient à semer la confusion pour un décompilateur posera encore plus de problèmes à un être humain qui tenterait la même opération.
Les obfuscateurs primitifs attribuent un nouveau nom illisible aux identificateurs trouvés dans le code. Ils peuvent utiliser des techniques de hachage ou décaler de façon arithmétique le jeu de caractères en caractères illisibles ou non imprimables. Bien qu'efficaces superficiellement, il est évident que ces techniques réversibles n'offrent qu'une protection limitée. Les outils d'obfuscation de PreEmptive vont bien au-delà de cette approche primitive visant à renommer les identificateurs. En effet, ils utilisent des moyens ingénieux pour « créer la confusion », de sorte qu'il est presque impossible de violer la propriété intellectuelle relative à ces programmes ; les efforts qui permettraient d'y parvenir ne seraient d'ailleurs pas justifiés.
© 2002-2007 PreEmptive Solutions. Tous droits réservés.