Full Program »
Code Obfuscation Against Symbolic Execution Attacks
This paper addresses the problem of characterizing the resilience of code obfuscation transformations against automated symbolic execution attacks, complementing existing works that measure the potency of obfuscation transformations against human-assisted attacks through user studies. We evaluated our approach over 5000 different C programs, which have each been obfuscated using existing implementations of obfuscation transformations. The results show that many existing obfuscation transformations, such as virtualization, stand little chance of withstanding symbolic-execution based deobfuscation. A crucial and perhaps surprising observation we make is that symbolic-execution based deobfuscators can easily deobfuscate transformations that preserve program semantics. On the other hand, we present new obfuscation transformations that change program behavior in subtle yet acceptable ways, and show that they can render symbolic-execution based deobfuscation analysis ineffective in practice.
Author(s):
Sebastian Banescu
Technisch Universität München
Germany
Christian Collberg
University of Arizona
United States
Vijay Ganesh
University of Waterloo
Canada
Zack Newsham
University of Waterloo
Canada
Alexander Pretschner
Technisch Universität München
Germany