Overview of software tamper-proofing, watermarking, and hiding, software protection attack and defense strategies, disassembly and reverse engineering, static and dynamic program analysis, code transformation and obfuscation theory and algorithms, game theory of attack and defense.