Software reverse engineering is the process of recovering a software code from its binary and making changes in it.the software companies like Microsoft,Adobe etc are trying to protect there software's against the Copying or illegal distribution.They provide the online activation process.The protection of there software are there legal right but still people are trying to remove these constraint and redistribute or copy it. The process is done by reverse engineering.
This is illegal but upon they are good we know a lot of country in the world are said 3rd world countries the people of those countries are poor and have right to use those new things in the world, which exists so they use reverse engineering process and get a way to use it.
The Reverse engineering of software involves the study of software, which should be reversed there are some steps in reversing which are bellow.
I. Study of Software
II. Get information from Software
III. De-compiling the Software if possible
IV. Disassembling the Software
V. Making changes in the de-compiled/disassemble code
VI. Recompiling the changed code
VII. Executing and testing
If you are going to crack a platform based full compiled or instruction based binary the you have to knowledge of assembly language.if your binary is a VM(virtual Machine) based then it is easy you can just De-compile and you will see all the original code of the binary.like if it is Java .class or .jar then you will get the .java files We will discuss all of the type using the following sequence.
1. Java .jar and .class de-compilation and recompilation.
2. C# and VB assemblies(.exe and .dll) de-compilation and recompilation.
3. Android .apk de-compilation and recompilation.
4. Flash .swf files de-compilation and recompilation.
5. .Net based assemblies(.exe and .dll) disassembling and Assembling.
6. C++ generic files disassembling and Assembling.
7. Delphi files disassembling and Assembling.
By following the above sequence at the end you will be at the pretty sure to say your self a Software reverse engineering the first type would be an easy and going through toward the harder way here we will use a lot of open source softwares to do the above job you don’t have a need to buy a Paid tool but paid are also available try them by your self