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
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
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:
In mechanical field
Legacy application support
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.
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.
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.
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.
Identify the high level control structure of the
program and record it using control flow diagrams.
Review the recovered
design for consisting with available information and correctness. Identify any
missing items of information and attempt to locate them.
These are the following tools are discussed below.
v System monitoring Tools
Network activity, file access and register
Translate binary code into assembly code
It is used in disassembling mode to set
break points and steps through program execution
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
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