基于信息增益的软件特征技术研究
【摘要】:软件产品是一种具有易复制、易篡改、易散布等特性的数字产品,使得软件盗版蕴含着巨大的经济利益。针对软件盗版在我国呈现猖獗势头,软件版权保护技术成为近年来软件开发商和学术界的研究热点。软件特征技术以自身所固有的属性或属性集作为研究对象,并采用特定的方法将其提取出来作为软件产品的唯一标识,是软件版权保护的重要手段之一。本文首先对软件特征技术的研究现状进行论述,在现有技术的基础上,然后针对SKB(Static k-gram based Software Birthmark)特征鲁棒性差的问题,利用信息检索时文本分类进行特征选择的思想,引入了一种新的软件特征选择方法--信息增益;最后又针对信息增益方法自身存在的问题和不足提出了解决方案。具体内容包括:(1)本文构建由盗版软件类别和无版权争议的软件类别组成的软件集,首先对软件集中每个软件进行静态分析,采用k-gram算法进行软件特征提取,由此得到的特征碎片集合维度高,采用信息增益方法对特征碎片集进行筛选和降维,去除冗余碎片,减少计算量,有效提升软件特征的整体性能。(2)信息增益方法选取的是在两类软件集中频数差别大的特征碎片,因此具有高信息增益的特征碎片是整个特征碎片集中具有最高区分度的碎片。但此方法仅考虑特征碎片在某类别中出现的样本数,忽视了特征碎片具体在软件样本中出现的频数,影响结果的精准度。其次,特征碎片的信息增益值越大,说明特征碎片在两类软件集中出现的频数差别越大,这将导致最终选出的特征碎片集可能会出现分布不平衡的问题。针对这些不足本文还考虑特征碎片类别频率(在所属类别中出现的频率)这一影响因子,对传统信息增益方法进行了改进。(3)进行设计实验,从可信性和鲁棒性两个方面对特征选择算法进行评估,并与两个典型的软件特征技术WPP特征和TaNaMM特征进行比较。从实验结果可以看出,本文提出的基于信息增益的软件特征,具有很高的可信性和鲁棒性,可以有效的检测软件盗版。