Automatic Static Unpacking of Malware Binaries
Kevin Coogan
Saumya Debray,
Tasneem Kaochar
Gregg Townsend
Department of Computer Science
University of Arizona
Tucson, AZ 85721, U.S.A.
Abstract
Current malware is often transmitted in packed or encrypted form to prevent
examination by anti-virus software. To analyze new malware, researchers
typically resort to dynamic code analysis techniques to unpack the code for
examination. Unfortunately, these dynamic techniques are susceptible to a
variety of anti-monitoring defenses, as well as "time bombs" or "logic
bombs," and can be slow and tedious to identify and disable. This paper
discusses an alternative approach that relies on static analysis techniques
to automate this process. Alias analysis can be used to identify the
existence of unpacking, static slicing can identify the unpacking code, and
control flow analysis can be used to identify and neutralize dynamic
defenses. The identified unpacking code can be instrumented and
transformed, then executed to perform the unpacking. We present a working
prototype that can handle a variety of malware binaries, packed with both
custom and commercial packers, and containing several examples of dynamic
defenses.