对抗软件盗版、篡改和恶意逆向工程的理论、技巧和工具近十年来,人们在软件防盗版和防篡改技术的研发上取得了重大进展。这些技术在保护软件开发人员的知识产权方面具有不可替代的作用。无论是研究人员、在校学生,还是开发人员,要了解这些技术及其能提供的安全级别和可能引发的性能开销,都可以从本书获得权威、全面的参考资料。Christian Collberg和Jasvir Nagra在书中详尽地介绍了相关技术,涵盖了计算机科学的各个相关领域,包括密码学、隐写术、水印、软件度量、逆向工程和编译优化等。本书通过大量的示例代码,向读者展示了代码混淆、软件水印、代码防篡改和“胎记”技术等保护算法的实现方式,并且从理论和实践两个角度探讨了这些技术的局限。涵盖的内容攻击者和防御者用来分析程序的各种主要方法代码混淆技术,用于提高程序被分析和理解的难度软件水印和指纹,用于标识软件开发者并追踪盗版代码防篡改技术,用于检测和响应非法修改代码和数据的行为,从而保护软件动态水印和动态混淆技术,用于阻止软件的非法复制软件相似性分析和“胎记”算法,用于检测代码剽窃硬件技术,用于保护软件及各类媒体免遭盗版和篡改在分布式系统中,检测远端不可信平台上运行的软件是否被篡改代码混淆技术在理论上的局限性