Today i will teach you basics of Reverse Engineering and in further hacking classes we will discuss it in depth with practical reverse engineering examples.
Today
 we will discuss what is reverse engineering? How its useful for ethical
 hacks? Common terms used in reverse engineering. In next post i will 
share the best reverse engineering software's and tools that i normally use to reverse engineer any program, software or windows file. So friends, lets start our hacking class of reverse engineering.
What is Reverse Engineering?
Have you ever noticed, Nokia or Iphone made an application and after few days you find that on Samsung or any other mobile device. Its nothing that difficult, its called reverse engineering.
  They decode their programs to get the basic structure of the original 
 program and then following the structure codes their own and sometimes 
 doesn't even happen just make some code changes and uses them.
According to Wikipedia "Reverse engineering
 is the process of  discovering the technological principles of a 
device, object or system  through analysis of its structure, function 
and operation. It often  involves taking something (e.g., a mechanical 
device, electronic  component, biological, chemical or organic matter or
 software program)  apart and analyzing its workings in detail to be 
used in maintenance, or  to try to make a new device or program that 
does the same thing without  using or simply duplicating (without 
understanding) the original".
Ahh..
 more technology related. I will explain you in better way. As the name 
suggest reverse engineer means if have something already made, in 
computer field say exe installer
 file. Now what reverse engineering  is, decoding the exe in such as 
fashion that we will get original  source code or some what near to it. 
Consider an example, you have a  wall made of bricks, here bricks are 
base material to build the wall.  Now what we want to do is we want to 
obtain all the bricks from the  wall. Similarly we have an executable or
 dll file and we know programs  are made from coding only, so source 
codes are base material in building  executable. So we want to obtain 
the source code from the executable or  some what near to it. As when 
you break wall also to get the bricks  some bricks are also got broken 
and that's all depend type of material  used to fix or mend bricks to 
make the wall. Similarly the retrieval of  source code from executable 
depends upon how securely software is being  packed and type of 
cryptography or packer is used by its designer.
I hope now you have got what exactly reverse engineering is...
What is the use or benefit of Reverse Engineering?
I
 can guarantee most of internet users use cracks or keygens or patches. 
 Have you ever tried to understand how they are made. Ahhh... I know you
  haven't. So let me give you clear information. All the keygens or  
cracks or patches of software's are made by technique called Reverse 
Engineering. Oops... I was going to tell the benefits.. what i am 
telling...negative features... But these are features of reverse 
engineering my friends and most commonly used by all famous 
organizations as its a part of their Program promoting methodolgy.
Other Beneficial Uses of Reverse Engineering:
- Product analysis: To examine how a product works
- Removal of copy protection, circumvention of access restrictions.
- Security auditing.
- Extremely useful when you lost documentation.
- Academic/learning purposes.
- Competitive technical intelligence (understand what your competitor is actually doing, versus what they say they are doing).
- Last but not the least..Learning: learn from others' mistakes. Do not make the same mistakes that others have already made and subsequently corrected.
Common Terms Used in Reverse Engineering:
1. Debugger
2. Deassembler
3. Decompiler
4. Packers or Unpackers
5. Program Obfuscation
6. Hex Editing
7. Cryptography
I
 will explain these terms in detail in my next article. Till then you  
can explore these topics on internet so that you will have some prior  
knowledge of Reverse Engineering terms.
Note:
 Reverse Engineering articles will going to be more advanced and  
technology oriented which surely requires prior knowledge of Assembly  
language specially registers and accumulators and several reverse 
engineering commands like JMP, DCL etc..
 
No comments:
Post a Comment