Introduction: Software Protection: What, why, how. Setting up software analysis lab.State-of-the-art tools.Protocol for handling potentially malicious programs.Legal issues.Offensive and Defensive strategies - Offense – Motivation, Methods of attacking software protection.Defense: Methods for hiding information, purpose, algorithms in software. Program Analysis Static analysis: Control flow analysis, data flow analysis, dependence analysis. Dynamic analysis: Debugging, tracing, profiling, emulation. Static Code obfuscation - In-depth Semantics preserving obfuscating transformations, complicating control flow, opaque predicates, data encoding, breaking abstractions. Obfuscation – Theoretical Bounds Various impossibility results. Tamper roofing and Watermarking Definitions, Algorithms for Tamperproofing, Remote Tamperproofing, Watermarking Definitions,
Methods of Watermarking, Tamperproofing watermarks, Resilient watermarks, Stealth watermarks. Steganographic watermarks, Dynamic watermarking. Software Similarity Analysis:- Alternate methods for defeating obfuscations. K-gram based analysis, API-Based analysis, Tree-based Analysis, Graph-Based analysis, Metrics-Based Analysis.