Abstract

Back to Distinguished Lecture Series
Thomas Reps
University of Wisconsin and GrammaTech, Inc.
LWYSINWYX: What You See Is Not What You eXecute

Computers do not execute source-code programs; they execute machine-code programs that are generated from source code. Consequently, some of the elements relevant to understanding the program's capabilities and potential flaws may not be visible in a program's source code. This can be due to layout choices made by the compiler or optimizer, or because transformations have been applied subsequent to compilation (e.g., to make the code run faster or to insert software protections). We call this the WYSINWYX phenomenon (pronounced ``wiz-in-wicks''): What You See [in source code] Is Not What You eXecute.

Not only can this create a mismatch between what a programmer intends and what is actually executed by the processor, it can cause analyses that are performed on source code -- the approach followed by most program-analysis tools -- to fail to detect bugs and security vulnerabilities. To address this issue, we have developed methods to analyze machine code using a variety of dynamic, static, and symbolic techniques.

Joint work with G. Balakrishnan (NEC), J. Lim (UW), A. Lal (UW), D. Gopan (GrammaTech, Inc.), and T. Teitelbaum (Cornell and GrammaTech, Inc.).




Department of Computer Science • Stony Brook University, Stony Brook, NY 11794-4400 • 631-632-8470 or 631-632-8471