Reverse-Engineering Software Behavior
Neil Walkinshaw, Department of Computer Science, The University of Leicester, Leicester, UK
Software systems are large and intricate, often constituting hundreds of components, where the source code may or may not be available. Fully understanding the runtime behavior of such a system is a daunting task. Over the past four decades, a range of semi-automated reverse-engineering techniques have been devised to fulfill (or assist with the fulfillment) of this goal. This chapter provides a broad overview of these techniques, incorporating elements of source code analysis, trace analysis, and model inference.
Reverse engineering; Software analysis; Source code; Software modeling; ...