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