论文部分内容阅读
计算机和互联网技术的飞速发展,使得计算机软件和网络服务得到了广泛应用。计算机软件的研发和维护需耗费大量人力物力,但大量的软件盗版和软件破解行为,使得软件开发者的利益受到严重侵害,因此如何保护软件版权和软件的核心技术日益成为困扰软件开发商以及整个软件产业发展的重要问题。目前主要有基于软件和基于硬件两种类型的软件保护方法,但其均有各自的局限性和不足。基于软件的保护方法众多,易于实施,成本低,但保护强度不高;基于硬件的保护方法保护强度较大,但受硬件限制不易实施且不便于用户使用,成本高。而基于虚拟机的软件保护方法是通过把关键代码转化为只能由虚拟机解释执行的虚拟机伪代码,并采用多样化处理,在加强了软件防破解和防盗版能力的同时,有效降低了软件保护的成本,增强了受保护软件的易用性,可有效的实现对软件的保护。本文以软件保护技术和虚拟化技术以及软件多样性技术为基础,展开对基于虚拟机的软件保护技术的研究。研究软件的攻击利益模型,从攻击角度深入研究与分析现有软件保护方法和软件攻击方法。引入虚拟化和多样化思想,将虚拟机技术和多样化思想应用到软件保护方法中,研究软件保护虚拟机技术和软件保护多样性技术,提出了基于虚拟机的软件保护模型。研究了软件保护虚拟机技术,研究软件保护虚拟机的设计方法,研究了虚拟机的体系架构、指令设计、多样性的P-code设计,以及虚拟机的编译和指令解释器的原理和设计,设计了一种基于精简指令的软件保护虚拟机SPVM(Register-based Software Protection Virtual Machine based on Reduced Instruction Sets)。给出了一个软件保护虚拟机系统VMDefender,介绍了系统各个模块组成和工作处理流程,分析了VMDefender各模块的设计与实现,通过实验表明基于虚拟机的软件保护技术可有效达到软件保护的目的。基于虚拟机的软件保护技术以虚拟机为平台,融合反静态分析、反动态跟踪、软件水印、代码混淆以及篡改抵制等技术,可提供一个综合的软件保护方案,具有广阔的发展前景。