The University of Arizona
banner image

  Deobfuscation: Reverse Engineering Obfuscated Code

Sharath Udupa   Saumya Debray  
Department of Computer Science
University of Arizona
Tucson, AZ 85721, U.S.A.

Matias Madou
Department of Electronics and Information Systems
University of Ghent
B-9000 Ghent, Belgium

 

Abstract
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. Our 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. Our results have applications to both software engineering and software security. In the context of software engineering, we show how dynamic analyses can be used to enhance reverse engineering, even for code that has been designed to be difficult to reverse engineer. For software security, our results serve as an attack model for code obfuscators, and can help with the development of obfuscation techniques that are more resilient to straightforward reverse engineering.