Date Added: Jan 2012
In recent years, code obfuscation has attracted attention as a low cost approach to improving software security by making it difficult for attackers to understand the inner workings of proprietary software systems. This paper examines techniques for automatic deobfuscation of obfuscated programs, as a step towards reverse engineering such programs. The authors' results indicate that much of the effects of code obfuscation, designed to increase the difficulty of static analyses, can be defeated using simple combinations of straightforward static and dynamic analyses. Their results have applications to both software engineering and software security. In the context of software engineering, they show how dynamic analyses can be used to enhance reverse engineering, even for code that has been designed to be difficult to reverse engineer.