关键词:
软件保护
软件胎记
加权k-gram
引用定值链
支持向量机
语义保持变换
摘要:
软件胎记作为软件中的固有属性,可用来对软件进行疑似盗版判定,从而对软件版权进行保护。本文针对软件胎记技术展开研究,在总结研究现状的基础上,提出了多种软件胎记的描述方法,具体而言,本文的研究成果主要包括以下三个方面:
1)针对k-gram静态软件胎记鲁棒性不高的问题,从k-gram碎片统计频率出发,计算所有k-gram碎片在不同语义保持变换下的平均变化率,以k-gram指令碎片抵抗语义保持变换强度作为权值来衡量指令碎片的重要程度,提出一种基于加权k-gram静态软件胎记。相比k-gram静态软件胎记和k-gram频率静态软件胎记,该胎记在抵抗语义保持变换攻击的性能上得到了有效地提升,且可信性仅少量降低。对于同种软件不同版本,同一类别不同软件之间的区分性能基本保持稳定。达到了较大幅度提高鲁棒性,少量或不降低可信性的要求。
2)针对基于k-gram思想的系列静态软件胎记对代码重排,冗余代码插入等语义保持变换抵抗程度低的问题,运用数据流分析技术,抽取对变量进行引用或定值的相关指令以及之间的依赖关系,提出一种基于“引用定值链”的静态软件胎记。其在一定程度上反映了程序语义,并对不影响数据流信息的语义保持变换抵抗效果优良。基于方法级别的相似度描述细化了比较粒度,增强了胎记对于模块盗版的检测和定位性能。
3)基于单一程序属性的软件胎记对于程序刻画具有局限性,相似性阈值设定依赖人工经验影响判定结果的准确性。针对这些问题,结合软件综合属性和机器学习分类的思想,提出一种基于多属性综合的静态软件胎记,并运用支持向量机进行分类判别。该研究思路通过从软件不同层次上分析和提取软件属性,对程序进行全面刻画,并通过SVM机器学习方法,克服了相似度比较模型及阈值选择时依赖人工经验的问题。最后,总结本文工作,并对下一步的研究进行了展望。