Introduction: its useful life. The main aim of


Engineering is a process of redesigning an existing product to improve and
broaden its function, add quality and to increase its useful life. The main aim
of reverse engineering is to reduce manufacturing costs of the new product,
making it competitive in market. A systematic methodology for analyzing the
design of an existing device or system, either as an approach to study the
design or as a required for re-design. The duplication is done without the aid
of drawings, documentation or computer model. It is the process of analyzing a
software system to extract design and implementation information and create
representations of the system in another form or at a higher level of

We Will Write a Custom Essay Specifically
For You For Only $13.90/page!

order now

for Reverse Engineering:

The original manufacturer of a product no
longer produces a product.

The original supplier is unable or
unwilling to provide additional parts.

To strengthen the good features of a
product based on long-term usage of the product.

To analyze the good and bad features of
competitors product.

To explore new avenues to improve product
performance and features.

The Computer Aided Design (CAD) model is
not sufficient to support modifications or current manufacturing methods.

involved in Reverse Engineering:

In order to reverse engineer a product or component of
a system, engineers and researchers generally follow the following four stages.

Identifying the product or component which
will be reverse engineered.

Observing or disassembling the information
documenting how the original products work.

Implementing the technical data generated
by reverse engineering in a replica or modified version of the original.

Creating a new product

of Reverse Engineering:

Automotive industry

In mechanical field

Legacy application support

Military application

Malware analysis


Software cracking

Software development



Engineering Procedure:

reverse engineering process begins by extracting detailed design information,
and from that extracting a high level design abstraction. Detailed design
information is extracted from the source code and existing design documents.
This information includes structure charts, data descriptions and Package
definition language (PDL) to describe processing details. These are the
following procedure steps are discussed below:


Collect all possible information about the program.
Sources of information include source code, design documents and documentation for
system calls and external routines.


Review the collected information. This step allows the
person doing the recovery to become familiar with the system and its components.

the structure:

Identify the structure of the program and use this to
create a set of structure charts. Each node in the structure chart corresponds
to a routine called in the program.

Record functionality:

For each node in the structure chart, record the
processing done in the program routine corresponding to that node. A PDL can be
used to express the functionality of program routines.

data flow:

The recovered program structure and PDL can be
analyzed to identify data transformation in the software. These transformation
steps show the data processing done in the program.

control flow:

Identify the high level control structure of the
program and record it using control flow diagrams.

recovered design:

Review the recovered
design for consisting with available information and correctness. Identify any
missing items of information and attempt to locate them.

Supporting Tools:

These are the following tools are discussed below.

v  System monitoring Tools

Network activity, file access and register

v  Disassemblers

Translate binary code into assembly code

v  Debuggers

It is used in disassembling mode to set
break points and steps through program execution

v  De-compliers

Attempt to produce high level code from an
executable binary code

v  Hex Editors

Read executing program from RAM

Enable the editing of running hexadecimal

Advantages of Reverse Engineering:

These are the following advantages of reverse
engineering are given below.

Develop a systematic approach to thinking
about the engineering design of devices and systems.

Acquire a data bank of mechanical design

Reverse engineering typically starts with
measuring an existing object.

Computer aided design (CAD) models are
used for manufacturing or rapid prototyping applications.

We can work on a product without having
prior knowledge of the technology involved.

It is time consuming.

Disadvantages of Reverse Engineering:

These are the following disadvantages of reverse
engineering are given below.

Reverse engineering can be wrongly used to
acquire others technology illegally.

You can never really disassembler an
application fully to its original states before being complied.

It is very difficult to make anything of a
disassembled due to critical and important source code.

They load a ton of relevant code into the
application to throw off reverse engineers and make it even more difficult than
it already is to perform the reversal.

It is costly


Reverse engineering is a new research area among
software maintenance

Reverse engineering includes activities of
understanding the system and recovery information from system

Program understanding is the most important
subset of reverse engineering

Discovery of abstraction is key issue