论文部分内容阅读
随着信息化程度的不断提高,信息技术的应用范围越来越广泛。人们在享受信息化便利的同时,也面临着信息技术所带来的安全问题。由于软件本身具有易复制、易篡改和易散布等特点,加之经济利益的驱动,软件盗版已经成为软件安全所面临的最严重的问题之一。软件特征技术是为了保护软件知识产权发展起来的新方向,已经成为软件保护的重要技术手段。软件特征是程序本身所固有的一个特性或多个特性的集合,软件特征技术通过提取、比较从不同软件中提取出来的固有特征,刻画其相似程度,以此辨别盗版。本文分析了软件特征技术的研究现状,阐述了软件特征的相关概念及分类,比较了不同软件特征技术各自的优缺点,并确定以动态和静态相结合的联合软件特征作为研究重点。程序的执行过程实质上是程序对数据进行处理的过程,在数据处理的过程中数据的调用序列以及值变化的序列和程序的特征是紧密相关的。本文提取程序的数据属性作为其特征可以很好地表征该程序独一无二的特性,使其区分于其他软件的能力得到提高。本文所做的主要工作有:1、从静态和动态两个方面着手对程序的数据属性——常量和变量进行分析。对于常量,通过分析程序在特定输入下的动态执行过程,得到基于程序常量属性的子特征。对于变量,分别从静态和动态两个方面着手,分别得到基于程序变量属性的静态子特征和动态子特征。针对每一个子特征,提出合适的相似度计算方法。最后将三个子特征结合在一起,得到基于程序数据属性的联合软件特征。3、通过实验评估基于程序数据属性的联合软件特征的性能,评估内容分为可信性评估和鲁棒性评估。其中,可信性评估从误判性、独立性和相似性三个方面来进行。本文还从宏观角度进行统计性比较试验,将本文提出的软件特征与现有的两个经典特征WPP和TaNaMM进行对比来验证本文特征的性能优缺点。理论和实验结果均表明:该特征具有较高的可信性和鲁棒性。