On the Effectiveness of Source Code Transformations for Binary Obfuscation

Matias Madou, Bertrand Anckaert, Bruno De Bus and Koen De Bosschere
Department of Electronics and Information Systems
Ghent University
St Pietersnieuwstraat 41
B-9000 Ghent, Belgium

Jan Cappaert and Bart Preneel
Department of Electrical Engineering Katholieke Universiteit of Leuven
Kasteelpark Arenberg 10
B-3001 Heverlee, Belgium

Abstract
Obfuscation is gaining momentum as a protection mechanism for the intellectual property contained within or encapsulated by software. Usually, one of the following three directions is followed: source code obfuscation is achieved through source code transformations, Java bytecode obfuscation through transformations on the bytecode, and binary obfuscation through binary rewriting. In this paper, we study the effectiveness of source code transformations for binary obfuscation. The transformations applied by several existing source code obfuscators are empirically shown to have no impact on the stripped binary after compilation. Subsequently, we study which source code transformations are robust enough to percolate through the compiler into the binary.