基于系统调用和程序数据依赖的软件胎记的研究
作者单位:南京大学
学位级别:硕士
导师姓名:郑滔
授予年度:2014年
学科分类:08[工学] 0839[工学-网络空间安全] 081201[工学-计算机系统结构] 0812[工学-计算机科学与技术(可授工学、理学学位)]
主 题:软件胎记 DDG SCDG-DDGB 动态分析 软件知识产权
摘 要:随着软件技术和开源项目的飞速发展,软件剽窃行为越发的影响了软件产业的健康发展,给许多软件生产商带来了巨大的经济损失。在严峻的形势下,人们对软件知识产权的保护意识也越来越强,对阻止软件剽窃行为的需求也越来越迫切。与此同时,软件抄袭者仍在不断的发展用于隐藏抄袭行为的技术,这极大的增加了防御软件剽窃的难度。能够准确可靠的防御软件剽窃行为的技术亟待发展。目前防御软件剽窃的技术主要包括:软件加密、软件水印、代码混淆和软件胎记。其中软件胎记具有较好的抄袭检测性能及应用前景。迄今为止,已经有多种类型的软件胎记被提出,如Java程序软件胎记、WPP软件胎记、基于k-gram的软件胎记、基于API的软件胎记、基于系统调用的软件胎记。综合分析各种软件胎记的准确性、抗干扰性和适用范围,其中基于系统调用的软件胎记具有最佳的表现。然而它仍然存在着一些不足,如无法检测算法抄袭、误报率高等。为了解决上述问题,我们提出了基于系统调用和程序数据依赖的软件胎记。本文提出了基于系统调用和程序数据依赖的软件胎记(SCDG-DDGB),它在基于系统调用的软件胎记基础上进行改进,将系统调用和程序数据结合起来作为识别程序的特征。定义了程序数据及程序数据之间的依赖关系,并且定义了程序数据依赖图用于描述程序数据之间的依赖关系。通过将系统调用依赖图和程序数据依赖图结合起来,定义出了基于系统调用和程序数据依赖的软件胎记。此外,实现了从可执行文件中抽取该软件胎记的系统,并改进了用于比较软件胎记的算法。最后用实验证明了该软件胎记能够对算法抄袭进行检测,具有较高的可靠性,同时对于主流的混淆工具也有较高的抵抗能力,也能够降低检测的误报率。