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..
0 comments:
Post a Comment