A Next-Generation Platform for Analyzing Executables
T. Reps, G. Balakrishnan, J. Lim, and T. Teitelbaum
In recent years, there has been a growing need for tools that an
analyst can use to understand the workings of COTS components,
plugins, mobile code, and DLLs, as well as memory snapshots of worms
and virus-infected code. Static analysis provides techniques that can
help with such problems; however, there are several obstacles that
must be overcome:
(Click here to access the paper:
PostScript,
PDF,
(c) Springer-Verlag.)
We have developed static-analysis algorithms to recover
information about the contents of memory locations and how they are
manipulated by an executable. By combining these analyses with
facilities provided by the IDAPro and CodeSurfer toolkits, we have
created CodeSurfer/x86, a prototype tool for browsing, inspecting, and
analyzing x86 executables. From an x86 executable, CodeSurfer/x86
recovers intermediate representations that are similar to what would
be created by a compiler for a program written in a high-level
language. CodeSurfer/x86 also supports a scripting language, as well
as several kinds of sophisticated pattern-matching capabilities.
These facilities provide a platform for the development of additional
tools for analyzing the security properties of executables.