reverse engineering - padma dasari. reverse engineering engineering is the profession involved in...

12
Reverse Engineering - Padma Dasari

Upload: allyson-robinson

Post on 13-Dec-2015

218 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Reverse Engineering - Padma Dasari. Reverse Engineering Engineering is the profession involved in designing, manufacturing, constructing, and maintaining

Reverse Engineering- Padma Dasari

Page 2: Reverse Engineering - Padma Dasari. Reverse Engineering Engineering is the profession involved in designing, manufacturing, constructing, and maintaining

Reverse Engineering

Engineering is the profession involved in designing, manufacturing, constructing, and maintaining of products, systems, and structures.

The process of duplicating an existing component, subassembly, or product, without the aid of drawings, documentation, or computer model is known as reverse engineering.

• Software Reverse engineering is taking apart an object/program to see how it works in order to duplicate or enhance the object.

• Technically, Software reverse engineering involves reversing a program's machine code, into the source code.

Page 3: Reverse Engineering - Padma Dasari. Reverse Engineering Engineering is the profession involved in designing, manufacturing, constructing, and maintaining

Reverse engineering can be viewed as the process of analyzing a system to:

• Identify the system's components and their interrelationships• Create representations of the system in another form or a higher

level of abstraction • Create the physical representation of that system • physics is an attempt to reverse Engineering the Universe.• Molecular Biology is an attempt to reverse Engineering the

genetic code.

Reverse Engineering

Page 4: Reverse Engineering - Padma Dasari. Reverse Engineering Engineering is the profession involved in designing, manufacturing, constructing, and maintaining

Why do Reverse Engineering?

• Consider a piece of software for which no one has yet bothered to write a manual or piece of software with undocumented features.

• An Artifacts are broken and we want to understand its structure so we can fix it.

• An Artifacts is old and clunky and want to replace with newer and sleeker version.

• Want to steal/replicate our competitors’ ideas.

Page 5: Reverse Engineering - Padma Dasari. Reverse Engineering Engineering is the profession involved in designing, manufacturing, constructing, and maintaining

Analyze piece of code in order to figure out how expensive it would be to make some proposed change.

we can use two techniques.

1. Hierarchical Regular Expression

2. Island grammars.

Reverse Engineering

Page 6: Reverse Engineering - Padma Dasari. Reverse Engineering Engineering is the profession involved in designing, manufacturing, constructing, and maintaining

Hierarchical Regular Expression– Lightweight analysis – Regular Expression

• (aUb)* aaabba (aUb)*

Hierarchical Regular Expression

Page 7: Reverse Engineering - Padma Dasari. Reverse Engineering Engineering is the profession involved in designing, manufacturing, constructing, and maintaining

[ <type> ] <functionName> \ ( [ {<formalArg> }1 ] \ ) [ { <type> <argDecl> ; }1 ] \{

<calledFunctionName> \ ( [ { <parm> }1 ] \)

Hierarchical Regular Expression

Page 8: Reverse Engineering - Padma Dasari. Reverse Engineering Engineering is the profession involved in designing, manufacturing, constructing, and maintaining

Reasons for reverse engineering a part or product:• The original manufacturer of a product no longer produces a

product • There is inadequate documentation of the original design • The original manufacturer no longer exists, but a customer

needs the product • The original design documentation has been lost or never

existed • Some bad features of a product need to be designed out.• 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

Is it legal? What are reasons!!

Page 9: Reverse Engineering - Padma Dasari. Reverse Engineering Engineering is the profession involved in designing, manufacturing, constructing, and maintaining

Instant Messaging:

The instant messaging marketplace is current fragmented among a lot of different networks:

• AOL Instant Messenger • MSN Messenger• Yahoo Messenger• Google Talk and • others.

Instant Messaging or IM

Page 10: Reverse Engineering - Padma Dasari. Reverse Engineering Engineering is the profession involved in designing, manufacturing, constructing, and maintaining

Although these IM companies have periodically discussed making their networks interoperable, at present none of them are, despite the fact that they’ve been on the market for years.

Ex: AOL, Yahoo, MSN has been there for years and no sharing among these networks.

Needs many IM applications instead of one application software

-Software reverse engineering come to rescue.

IM: [No] Networking

Page 11: Reverse Engineering - Padma Dasari. Reverse Engineering Engineering is the profession involved in designing, manufacturing, constructing, and maintaining

Reasons for reverse engineering a part or product:• An open source project called Fire built a Mac OS X

application that can access all four networks (and some others). That means that I can run one program and have access to all four networks

Details about Fire software can be found at

http://fire.sourceforge.net/

Reverse Engineering

Page 12: Reverse Engineering - Padma Dasari. Reverse Engineering Engineering is the profession involved in designing, manufacturing, constructing, and maintaining

• The Compilation Process • Gathering Info • Determining Program Behavior • Determining Interesting Functions • Understanding Assembly• Debugging • Executable formats • Code Modification • Network Application Interception• Tools

Scientific Methods- Steps