What is dynamic reverse engineering and why do it?
Mainly, dynamic reverse engineering looks into code behaviors during execution.
There are multiple reasons this is more efficient than static reverse engineering:
- You can look at the variables while the program is executing.
- You can step through the code to better understand the different sections and steps.
- You can inspect the memory to extract things that are deciphered if you need to.
- In the case of self-modifying or dynamic code, you can directly inspect the modified code.
But the requirements for dynamic reverse engineering are also more stringent than for static reverse engineering:
- You need to have a platform that can execute the software (either real or emulated).
- The execution platform must allow you to debug the program (either with a hardware or software debugger).
- You need to have a basic understanding of how the software works to look into the execution flow.
- Most platforms...