Source code obfuscation by mean of evolutionary algorithms

Abstract : Usually, when talking about security, the matter is about protecting a computer from intrusions or malicious software. Software obfuscation allows to protect software from piracy by making it able to run without letting the user know its composition. To achieve this goal, distributing binaries instead of source code is not enough since debuggers and decompilers can be used to help get the secret algorithm or data structure one does not want to be known by the user. The solution would be having code that is impossible to understand for the user, but since this goal cannot be reached, the code will have to be complicated enough so that users wanting to get secret algorithms will either give up, either obtain the algorithm when it is obsolete (e.g. when a new, better version is available). Unlike regular compilation, a good obfuscated program cannot be obtained by applying a fixed sequence of transformation to the given original program. One has to find the sequence of transformations that fits the given program. In this context, the SHADOBF framework has been designed. Based on Evolutionary Algorithms (EAs), SHADOBF is used to find that sequence of transformation for any given program written in C. More precisely, extensions calculating obfuscations complexities have been added to the source-to-source compiler PIPS, obfuscating transformations were selected and the NSGA-II was implemented in order to optimize the six obfuscation complexities of programs. The conducted validations showed that using Multiple Objective Evolutionary Algorithms (MOEAs) to optimize all the obfuscation metrics gives better obfuscated programs than using single objective EAs to optimize one obfuscation metric. They also showed that considering the execution time of the program as a fitness parameter for the EAs helps obtaining an obfuscated program whose execution time is kept reasonable despite the obfuscating transformations that were applied to it.
Type de document :
Programming Languages [cs.PL]. 2012
Liste complète des métadonnées
Contributeur : Co-Responsables Du Mri V. Gouranton Et S. Blazy <>
Soumis le : vendredi 24 août 2012 - 16:46:52
Dernière modification le : mardi 5 avril 2016 - 01:05:31
Document(s) archivé(s) le : vendredi 16 décembre 2016 - 07:59:12



  • HAL Id : dumas-00725330, version 1



Sébastien Martinez. Source code obfuscation by mean of evolutionary algorithms. Programming Languages [cs.PL]. 2012. <dumas-00725330>



Consultations de
la notice


Téléchargements du document