Practical reverse engineering: x86, x64, arm, windows kernel, reversing tools, and obfuscation