Introduction to software reverse engineering
Reverse engineering or back engineering is a process to deconstruct a software to analyse its internal working, design and architecture. It is often used by security professionals to analyse the working of any malware or virus or software testing team as a black box testing to identify any security flaws.
The process of reverse engineering varies depending on the case presented, but a very simple approach would be:
- Information gathering
- Decompilation or debugging
- Identification of relevant information
- Report generation
Information gather or better known as behavioral analysis is the very first step a reverser should follow before attempting anything else. This includes gathering of an idea how the program works or how it should be working in order to gain or understand the outer working or getting an overview of the area you are interested in.
For example, let’s take an example of a program which requires us to find out the valid keys in-order for us to use it.