X hits on this document





9 / 120

1 Introduction

From very early on in life we engage in constant investigation of existing things

to understand how and even why they work. The practice of Software Reverse

Engineering (SRE) calls upon this investigative nature when one needs to learn how and

why, often in the absence of adequate documentation, an existing piece of software—

helpful or malicious—works. The sections that follow cover the most popular uses of

SRE and, to some degree, the importance of imparting knowledge of them to those who

write, test, and maintain software. More formally, SRE can be described as the practice

of analyzing a software system to create abstractions that identify the individual

components and their dependencies, and, if possible, the overall system architecture [1],

[2]. Once the components and design of an existing system have been recovered, it

becomes possible to repair and even enhance them.

Events in recent history have caused SRE to become a very active area of

research. In the early nineties, the Y2K problem spurred the need for the development of

tools that could read large amounts of source or binary code for the 2-digit year

vulnerability [2]. Shortly after the preparation for the Y2K problem, in the mid to late

nineties, the adoption of the Internet by businesses and organizations brought about the

need to understand in-house legacy systems so that the information held within them

could be made available on the Web [3]. The desire for businesses to expand to the

Internet for what was promised to be limitless potential for new revenue caused the

creation of many Business to Consumer (B2C) web sites.


Document info
Document views503
Page views504
Page last viewedSat Jan 21 02:41:33 UTC 2017