The use of design patterns in a software system can provide strong indications about the rationale behind the system’s design. As a result, automating the detection of design pa...
Buffer overflows have been the most common form of security vulnerability in the past decade. A number of techniques have been proposed to address such attacks. Some are limited t...
In recent years, code obfuscation has attracted attention as a low cost approach to improving software security by making it difficult for attackers to understand the inner worki...
Software decay is a phenomenon that plagues aging software systems. While in recent years, there has been significant progress in the area of automatic detection of “code smells...
— Chuck is a new code browser that allows navigation of a code base along semantic structures, such as data-flow and higher-order control-flow relationships. Employing the fast...
Understanding a software system by just analyzing the structure of the system reveals only half of the picture, since the structure tells us only how the code is working but not w...
In this paper we present an infrastructure that supports interoperability among various reverse engineering tools and applications. We include an Application Programmer’s Interf...
Nicholas A. Kraft, Brian A. Malloy, James F. Power
It is a common understanding that identifying the same entity such as module, file, and function between revisions is important for software evolution related analysis. Most softw...
The architecture of many large software systems is rarely documented and if documented it is usually out of date. To support developers maintaining and evolving these systems, an ...
We apply static analysis and symbolic interpretation techniques to reverse engineer the semantics of legacy assembler code. We examine the case of IBM-1800 programs in detail. Fro...