[发明专利]基于动态指令依赖图胎记的软件局部抄袭检测方法有效
申请号: | 201711072012.5 | 申请日: | 2017-11-03 |
公开(公告)号: | CN108399321B | 公开(公告)日: | 2021-05-18 |
发明(设计)人: | 田振洲;王忠民;陈彦萍;张恒山;夏虹;刘烃;郑庆华 | 申请(专利权)人: | 西安邮电大学 |
主分类号: | G06F21/16 | 分类号: | G06F21/16 |
代理公司: | 西安通大专利代理有限责任公司 61200 | 代理人: | 田洲 |
地址: | 710062 *** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 动态 指令 依赖 胎记 软件 局部 抄袭 检测 方法 | ||
本发明提出了一种基于动态指令依赖图胎记的软件局部抄袭检测方法,包括:1)利用动态插桩,对待分析程序进行指令级监控,捕获每个函数的指令轨迹;2)对记录每个函数的动态指令轨迹,开展数据依赖和控制依赖分析,构建动态指令依赖图胎记;3)计算指令依赖图胎记间的相似性,实现函数间相似性的度量;4)基于给定阈值,为原告程序中的每个函数构建可疑函数表;5)提取程序的静态函数调用图,在调用依赖关系引导下,进行可疑函数精准的一一配对;6)基于调用依赖关系,装配匹配的函数对生成抄袭证据图,度量涉嫌抄袭部分的比例。本发明通过构建函数级胎记,实现对局部抄袭的检测;本发明首次提出抄袭证据图的概念,可极大增强证据效力。
技术领域
本发明涉及软件动态行为分析及软件抄袭检测领域,特别涉及一种基于动态指令依赖图胎记的软件局部抄袭检测方法。
背景技术
从无到有开发一款软件的时间和人力成本十分昂贵,因而项目开发过程中复用既有代码的情况十分常见。开源软件社区如GitHub、SourceForge以及社交编程网站如CodeShare等的蓬勃发展,带来了软件工业的繁荣。然而,伴随而来的软件抄袭问题亦日趋严重,滥用他人代码的情况屡见不鲜,由此导致的软件侵权案件频频发生。如“绿坝”软件被曝抄袭CyberSitter 的大量代码,其不良图像过滤文件cximage.dll、CImage.dll和xcore.dll等也均包含大量OpenCV 的代码;近期柚子科技的产品APICloud涉嫌抄袭数字天堂DCloud的大量代码陷入侵权案中,司法鉴定报告证实其不仅直接挪用了DCloud的dll文件,还抄袭了DCloud的真机运行、边改边看等功能的大量源码。在不计代价和开销的情况下,抄袭者可利用任何当下可行的手段、技术和资源达到抄袭的目的,使得研究实用的软件抄袭检测方法非常具有挑战性。
软件胎记是从软件代码或执行过程中抽取出的一些不易改变且可唯一地对软件身份进行标识的特征;胎记技术通过衡量胎记的相似性判定软件间可能存在的抄袭。依据胎记生成方式,可以分为静态和动态两种。前者静态分析程序的代码,基于程序的词法、语法或结构特性生成胎记;后者则具体地执行软件,利用捕获的执行轨迹信息,或分析轨迹中各要素间的控制和数据依赖关系等构建胎记,能更贴切地刻画软件的行为和语义。尽管现有方法在一定程度上解决了抄袭检测的问题,但还存在一系列的局限性,包括:
1)很多方法只能应用于源码存在的情形,很多情况下程序源码是无法获取的,特别是商业软件的抄袭,为躲避检测通常以可执行文件的形式发布。除非司法机关介入,被告往往不会轻易交出其源码,而且在法律诉讼中,被告可以以举证责任在原告为由拖延或拒不交出源码。
2)为增加检测难度,抄袭者往往会借助当下众多自动化的代码混淆/迷乱技术和工具,在保证程序语义不变的前提下,通过改变程序控制结构、引入垃圾代码、调整代码布局等混淆方式,轻易地生成与原程序看起来非常不一样的代码。特别地,除非可事先对软件进行脱壳处理,加壳混淆方式会有效地挫败基于静态分析的检测方法。总体而言,现有方法对抗复杂代码混淆的能力依然较弱。
3)被告软件(抄袭方)对原告软件(被抄袭方)的抄袭可简单归纳为两种形式,一是将原告的所有代码挪为己用,即整体抄袭;二是仅挪用原告的部分代码,即局部抄袭,如APICloud 侵权案中,被告只挪用了DCloud的代码提示、真机运行、边改边看等功能模块。而现有胎记技术主要对程序的整体行为和语义进行建模,仅给出原被告软件的整体相似性或抄袭与否的判定。然而,现实中更普遍的情况是局部抄袭,被告可能是挪用了原告的几个功能模块,也可能是仅仅的几个核心函数。因而,简单输出原被告的相似性意义不大,更重要的是要准确度量出抄袭的比例,找准涉嫌抄袭部分在原被告软件中的对应关系,并向用户提供表达和解释力更强、甚至具备一定证据效力的局部抄袭检测结果的组织和呈现方式。
因此针对上述问题,需研究一种更好的检测软件抄袭的方法。它应当能够直接作用于二进制目标程序,可对抗当下主流的自动化代码混淆技术,特别是要有效支持软件局部抄袭的检测。
发明内容
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安邮电大学,未经西安邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711072012.5/2.html,转载请声明来源钻瓜专利网。