Introduction: its useful life. The main aim of

Introduction:

                                Reverse
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
abstraction.

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


order now

Reasons
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.

Stages
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

Application
of Reverse Engineering:

·        
Automotive industry

·        
In mechanical field

·        
Legacy application support

·        
Military application

·        
Malware analysis

·        
Security

·        
Software cracking

·        
Software development

 

 

Reverse
Engineering Procedure:

                                                                                                                                The
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
information:

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

Examine
information:

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

Extract
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.

Record
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.

Record
control flow:

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

Review
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
access

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
code

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
solution.

·        
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

Conclusion:

·        
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