Source code obfuscation by mean of evolutionary algorithms - DUMAS - Dépôt Universitaire de Mémoires Après Soutenance Access content directly
Master Thesis Year : 2012

Source code obfuscation by mean of evolutionary algorithms


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.
Fichier principal
Vignette du fichier
Martinez.pdf (1.28 Mo) Télécharger le fichier

Dates and versions

dumas-00725330 , version 1 (24-08-2012)


  • HAL Id : dumas-00725330 , version 1


Sébastien Martinez. Source code obfuscation by mean of evolutionary algorithms. Programming Languages [cs.PL]. 2012. ⟨dumas-00725330⟩
583 View
1311 Download


Gmail Mastodon Facebook X LinkedIn More