x86 Software Reverse-Engineering Cracking and Counter-Measures