reverse engineering dept. of ict, mit, manipal. aspects to be covered introduction to reverse...

19
Reverse Engineering Dept. of I&CT, MIT, Manipal

Upload: curtis-chapman

Post on 19-Jan-2018

214 views

Category:

Documents


0 download

DESCRIPTION

Introduction What is Reverse Engineering ? The process of analyzing a system to (i)identify the system's components and their inter-relationships and (ii) to create representation of the system in another form. Also called as “going backwards through development cycle.” Reverse Engineering Dept. of I&CT, MIT, Manipal

TRANSCRIPT

Page 1: Reverse Engineering Dept. of ICT, MIT, Manipal. Aspects To Be Covered Introduction to reverse engineering. Comparison between reverse and forward engineering

Reverse Engineering

Dept. of I&CT, MIT, Manipal

Page 2: Reverse Engineering Dept. of ICT, MIT, Manipal. Aspects To Be Covered Introduction to reverse engineering. Comparison between reverse and forward engineering

Aspects To Be Covered

• Introduction to reverse engineering.• Comparison between reverse and forward

engineering.

• Reverse engineering process.

• Approaches for reverse engineering.

• Other areas of application.

• Legal issues.

Dept. of I&CT, MIT, Manipal

Reverse Engineering

Page 3: Reverse Engineering Dept. of ICT, MIT, Manipal. Aspects To Be Covered Introduction to reverse engineering. Comparison between reverse and forward engineering

Introduction

• What is Reverse Engineering ?The process of analyzing a system to

(i) identify the system's components and their inter-relationships and

(ii) to create representation of the system in another form.

• Also called as “going backwards through development cycle.”

Reverse Engineering

Dept. of I&CT, MIT, Manipal

Page 4: Reverse Engineering Dept. of ICT, MIT, Manipal. Aspects To Be Covered Introduction to reverse engineering. Comparison between reverse and forward engineering

Objectives

1. Re-documentation

A process to derive the design or speciation of a system from its source

code.

2. Design RecoveryDesign recovery aims at recreating design abstractions from the source

code, existing documentation, experts' knowledge and any other source of

information.

Reverse Engineering

Dept. of I&CT, MIT, Manipal

Page 5: Reverse Engineering Dept. of ICT, MIT, Manipal. Aspects To Be Covered Introduction to reverse engineering. Comparison between reverse and forward engineering

Reverse v/s forward engineering

Reverse Engineering

Dept. of I&CT, MIT, Manipal

Requirements

Analysis

Design

Implementation

Forward engineering

Reverse engineering

Page 6: Reverse Engineering Dept. of ICT, MIT, Manipal. Aspects To Be Covered Introduction to reverse engineering. Comparison between reverse and forward engineering

Reverse Engineering Process

1. Information Extraction

2. Abstraction

Dept. of I&CT, MIT, Manipal

Reverse Engineering

Page 7: Reverse Engineering Dept. of ICT, MIT, Manipal. Aspects To Be Covered Introduction to reverse engineering. Comparison between reverse and forward engineering

Use Of Reverse Engineering

• Transforming obsolete products into useful ones by adapting them to new systems and platforms.

• Some features of the system needs to be refined out.

• It can be use if there is no adequate documentation of the original design.

• Investigating and correcting errors and limitations in existing programs.

• Studying the design principles of a product as part of an education in engineering.

• Understanding how a product works.

Reverse Engineering

Dept. of I&CT, MIT, Manipal

Page 8: Reverse Engineering Dept. of ICT, MIT, Manipal. Aspects To Be Covered Introduction to reverse engineering. Comparison between reverse and forward engineering

Approaches To Reverse Engineering

• White Box Analysis

• Black Box Analysis

• Gray Box Analysis

Dept. of I&CT, MIT, Manipal

Reverse Engineering

Page 9: Reverse Engineering Dept. of ICT, MIT, Manipal. Aspects To Be Covered Introduction to reverse engineering. Comparison between reverse and forward engineering

White Box Analysis

• Involves analysis of source code.

• For e.g. decompiling a binary code to get the source code

is a kind of white box analysis.

• Effective for finding programming and implementation

errors in software.

Reverse Engineering

Dept. of I&CT, MIT, Manipal

Page 10: Reverse Engineering Dept. of ICT, MIT, Manipal. Aspects To Be Covered Introduction to reverse engineering. Comparison between reverse and forward engineering

Black Box Analysis

• Black box analysis refers to analyzing a running

program by probing it with various inputs.

• This can be used to test for the security issues of the

system.

Reverse Engineering

Dept. of I&CT, MIT, Manipal

Page 11: Reverse Engineering Dept. of ICT, MIT, Manipal. Aspects To Be Covered Introduction to reverse engineering. Comparison between reverse and forward engineering

Gray Box Analysis

• Gray box analysis combines white box techniques

with black box input testing.

• A good example of a simple gray box analysis is

running a target program within a debugger and then

supplying particular sets of inputs to the program.

Reverse Engineering

Dept. of I&CT, MIT, Manipal

Page 12: Reverse Engineering Dept. of ICT, MIT, Manipal. Aspects To Be Covered Introduction to reverse engineering. Comparison between reverse and forward engineering

Code Reverse Engineering

• Reverse engineering focuses at reverse engineering at

code level.

• For reverse engineering code is a reliable source of

information.

• Limitation : the code does not contain all the

information that is needed.

Reverse Engineering

Dept. of I&CT, MIT, Manipal

Page 13: Reverse Engineering Dept. of ICT, MIT, Manipal. Aspects To Be Covered Introduction to reverse engineering. Comparison between reverse and forward engineering

Data Reverse Engineering

• Data reverse engineering tackles the question of what information

is stored and how this information can be used.

• Data reverse engineering techniques can also be used to assess the

overall quality of software systems.

• Consists of 2 main activities :

1. Data Analysis

2. Conceptual Abstraction

Reverse Engineering

Dept. of I&CT, MIT, Manipal

Page 14: Reverse Engineering Dept. of ICT, MIT, Manipal. Aspects To Be Covered Introduction to reverse engineering. Comparison between reverse and forward engineering

Data Analysis

• The analysis activity aims to recover an up-to-date

logical data model that is structurally complete and

semantically annotated.

• Computer-aided reverse engineering tools can be

used for data analysis.

Reverse Engineering

Dept. of I&CT, MIT, Manipal

Page 15: Reverse Engineering Dept. of ICT, MIT, Manipal. Aspects To Be Covered Introduction to reverse engineering. Comparison between reverse and forward engineering

Conceptual Abstraction

• Conceptual abstraction aims to map the logical data model derived

from data analysis to an equivalent conceptual design.

• ER-Diagrams or Object Oriented data models can be used to

represent the design.

• Several tools support data abstraction but has following limitations :

1. Iteration

2. Bidirectional Mapping Process

3. Research Direction

Reverse Engineering

Dept. of I&CT, MIT, Manipal

Page 16: Reverse Engineering Dept. of ICT, MIT, Manipal. Aspects To Be Covered Introduction to reverse engineering. Comparison between reverse and forward engineering

Reverse engineering can also be used for

• Military applications

• Mechanical Devices

Reverse Engineering

Dept. of I&CT, MIT, Manipal

Page 17: Reverse Engineering Dept. of ICT, MIT, Manipal. Aspects To Be Covered Introduction to reverse engineering. Comparison between reverse and forward engineering

Legal Issues

• Reverse engineering has been held a legitimate form of

discovery.

• The law regarding reverse engineering in the computer

software and hardware context is less clear due to :

1. Anti reverse engineering licensing provisions.

2. Prohibition on the circumvention of technologies

embedded within protection measures.

Reverse Engineering

Dept. of I&CT, MIT, Manipal

Page 18: Reverse Engineering Dept. of ICT, MIT, Manipal. Aspects To Be Covered Introduction to reverse engineering. Comparison between reverse and forward engineering

References

[1] P. Aiken. Data Reverse Engineering: Slaying the Legacy Dragon. McGraw- Hill.

[2] http://www.jenkins.eu/articles/reverse-engineering.asp

[3] http ://www.en.wikipedia.org/wiki/ReverseEngineering

[4] http://www.chillingeects.org/reverse/faq.cgi

Page 19: Reverse Engineering Dept. of ICT, MIT, Manipal. Aspects To Be Covered Introduction to reverse engineering. Comparison between reverse and forward engineering

THANK YOU