18th Annual Computer Security Applications Conference
December 9-13, 2002
Las Vegas, Nevada

A Toolkit for Detecting and Analyzing Malicious Software

Michael Weber, Matthew Schmid, David Geyer and Michael Schatz
Cigital, Inc.

In this paper we present PEAT: The Portable Executable Analysis Toolkit. It is a software prototype designed to provide a selection of tools that an analyst may use in order to examine structural aspects of a Windows Portable Executable (PE) file, with the goal of determining whether malicious code has been inserted into an application after compilation. These tools rely on structural features of executables that are likely to indicate the presence of inserted malicious code. The underlying premise is that typical application programs are compiled into one binary, homogeneous from beginning to end with respect to certain structural features; any disruption of this homogeneity is a strong indicator that the binary has been tampered with. For example, it could now harbor a virus or a Trojan horse program. We present our investigation into structural feature analysis, the development of these ideas into the PEAT prototype, and results that illustrate PEAT's practical effectiveness.

Keywords: malicious code, viruses, Trojan horse programs, program understanding, binary analysis

Read Paper Read Paper (in PDF)