Anda di halaman 1dari 19

WHAT IS IT?

 Reverse engineering (RE) is the


process of taking something (a
device, an electrical component, a
software program, etc.) apart and
analyzing its workings in
detail, usually with the intention
to construct a new device or
program that does the same thing
without actually copying anything
from the original.
How does reverse engineering differ
from other types of engineering
 The most traditional method of the development of a technology is referred
to as "forward engineering". By contrast, reverse engineering begins with final
product, and works backward to recreate the engineering concepts by
analyzing the design of the system and the interrelationships of its
components.

 Value engineering refers to the creation of an improved system or product to


the one originally analyzed, the goal of reverse engineering itself is the
improved documentation of how the original product works by uncovering the
underlying design.
What is disassembly or decompilation of
a computer software program?
 In the development of software, the source is translated into object (binary)
code. programmer's instructions, including commentary, notations, and
specifications, are not included in the translation from source to object code
(the assembly or compilation).

 Disassembly or recompilation reverses this process by reading the object code


of the program and translating them into source code

 Not all reverse engineering efforts require "decompilation" of software. Some


"black box" reverse engineering is done by characterizing software through
observation of its interaction with system components, other software, and
other (external) systems through networks.
PreProcessing

Int main(){ Push ebp 0101 0101


Return 0; Mov esp,ebp 1000 1001 1110 0101
} Push ecx 0101 0001

Assembly Machine
C++ Code Compiler Assembler
Code Code
Reverse

Assembly
Machine Code Dis Assembler
code
What is the difference between source
code and object code?

 Source code is the computer language for software


programmers

 Object code is the computer language for computers.


Reverse Engineering types

 In the first case


source code is already available for the software, but higher-level aspects of the
program, perhaps poorly documented or documented but no longer valid, are
discovered

 In the second case:


there is no source code available for the software, and any efforts towards
discovering one possible source code for the software are regarded as reverse
engineering.
This second usage to avoid copyright infringement.
What stages are involved in the reverse
engineering process?
 Identifying the product or component which will be reverse engineered
 Observing or disassembling the information documenting how the original
product works
 Implementing the technical data generated by reverse engineering in a
replica or modified version of the original
 Creating a new product (and, perhaps, introducing it into the market)
Reverse Engineering Tools

 Disassemblers or Debuggers

 Hex Editors
Disassemblers

 A disassembler is used to convert


binary code into assembly code
and also used to extract strings,
imported and exported functions,
libraries etc. The disassemblers
convert the machine language into
a user-friendly format. There are
different dissemblers that
specialize in certain things.
Disassemblers

IDA pro OllyDbg


Hex Editors

 These editors allow the binary to


be viewed in the editor and change
it as per the requirements of the
software. There are different types
of hex editors available that are
used for different functions.
Hex Editors

HexEdit WinHex
What are the different uses of reverse
engineering?
 security auditing
 Understanding how a product works more comprehensively
 Investigating and correcting errors and limitations in existing programs
 Making products and systems compatible so they can work together or share
data
 Evaluating one's own product to understand its limitations
 Determining whether someone else has literally copied elements of one's own
technology
 Creating documentation for the operation of a product whose manufacturer is
unresponsive to customer service requests
Is reverse engineering legal?

 "the competitive reality of reverse engineering may act as a spur to the


inventor, creating an incentive to develop inventions that meet the rigorous
requirements of patentability."
ANY QUESTIONS?
THANKS

Anda mungkin juga menyukai