every step of forward engineering, information is lost
so reverse engineering is getting back that lost information
what is lost in transition between design and code?(strips out)
- comments
- variable names
- function names
- structure(classes, structs, etc)data
- sometimes, entire algorithm(optimization)
so how do we got all this information back?!
example:
we have this very simple program called hello, then we compile

lets see whats happen if we compile it, we can using cpp for this
as you can see the comment “//variable name” is strips out. cpp also shows what we include it in that code which is <stdio.h>
also if we compile/convert it tinto assembly code
the variable my_name which is store character array[1024] is gone, and now it is just memory reference(lost data type also)
lea rax, -1024[rbp]