Transcript
Page 1: An introduction to Reverse Engineering

Meher Anand

VNIT-ACM Student Chapter

Page 2: An introduction to Reverse Engineering

No pre-requisite knowledge is expected

Page 3: An introduction to Reverse Engineering

Hardware Digital circuits are binary, they can understand

only 0 and 1 Modern day processors are made from transistors,

millions of them Work in time of the order of 10-9 seconds

Page 4: An introduction to Reverse Engineering

Evolution of Prog. Lang. Machine language – consists of 0s and 1s only Very hard to read and debug Time consuming Low level language Platform dependent

Page 5: An introduction to Reverse Engineering

Evolution of Prog. Lang. (contd) Assembly language – consists of mnemonics and

opcodes Ex:- MOV A,B Better readability but not sufficient Hard to debug but better than machine code Low level language Platform dependent

Page 6: An introduction to Reverse Engineering

Evolution of Prog. Lang. (contd) High level languages – English-like constructs,

definitions, declarations. Easier to read, debug and maintain Ex- C++, C#, Basic, Java etc. Platform independent

Page 7: An introduction to Reverse Engineering

Process of compilationPreprocessed

codePreprocessorSource Code

ParserParse Tree

Translator

Assembly AssemblerObject Code

LinkerExecutable

Code

Page 8: An introduction to Reverse Engineering

Where does reversing fit in??? Executable files are in the form of binary machine code Machine code and assembly code are interchangeable as they

bear a one-to-one relationship Dis-assemblers are used to convert machine code into

assembly language

Page 9: An introduction to Reverse Engineering

Our approach Take a disassembler – we will be using Olly Debugger Debug the code – process of executing instructions one by

one, following the line of flow (as the program would have done normally) while watching the values of the variables

Figure out ways to overcome the problem

Page 10: An introduction to Reverse Engineering

A word of caution Legality issues Never reverse-engineer any software product which restricts

it in the End User License Agreement (EULA)

Page 11: An introduction to Reverse Engineering

Resources Olly debugger, tutorials on reversing and other essential

tools available for download on http://acm.vnit.ac.in/ Register on V-Live for updates

Page 12: An introduction to Reverse Engineering

DEMO


Top Related