论文部分内容阅读
随着软件产业的飞速发展,软件安全问题日益突出,软件知识产权保护的呼声变得更加高涨,从而更激起了人们对软件保护技术的研究热潮。防篡改技术、代码混淆、软件加密、软件水印和数字指纹等都是目前比较常用的软件保护技术。代码混淆技术是一种保留语义的程序变换技术,使得变换后的程序和原程序相比在功能和行为上相同或相近,但使变换后的程序复杂度高、可读性差,增加了攻击者分析程序的难度,使攻击者难以获取有价值的信息,从而达到保护软件的目的。本文针对代码混淆技术在脚本源程序中的应用进行作了较为深入的研究,根据常见的多态混淆算法设计原理,证明了基于脚本的混淆算法的等价性,并提出了面向PHP脚本语言的多态混淆算法实现方案。在此基础上,本文又提出了通用的基于脚本加密的代码自动混淆系统框架模型,并给出了代码混淆系统的形式化描述,该混淆系统主要包括用户接口模块、预处理模块、混淆算法管理模块及混淆算法执行模块四部分组成,此系统实现了混淆算法的集中管理及动态选择调用的功能。为了深入分析混淆转换的性能指标,本文拟分别从转换的正确性、多态性、可读性、隐蔽性、额外执行开销和不确定度进行了理论分析和实验测试,重点对程序不确定度作了详细研究,给出了程序不确定度测量的数学计算方法和具体实现方案。本文可为基于脚本的多态混淆算法的进一步研究提供参考。