Reverse Engineering, Memory Hacking and Software Protection