[发明专利]基于静态胎记的软件抄袭检测方法有效
申请号: | 201811092227.8 | 申请日: | 2018-09-19 |
公开(公告)号: | CN109241706B | 公开(公告)日: | 2021-04-30 |
发明(设计)人: | 王曙燕;孙家泽;赵鹏飞 | 申请(专利权)人: | 西安邮电大学 |
主分类号: | G06F21/12 | 分类号: | G06F21/12;G06F21/16 |
代理公司: | 北京汇信合知识产权代理有限公司 11335 | 代理人: | 吴甘棠 |
地址: | 710061 陕西*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 静态 胎记 软件 抄袭 检测 方法 | ||
基于静态胎记的软件抄袭检测方法,针对原来抄袭检测方法抗迷惑性和可信性较低而提出的,首先选定源程序和可疑程序,并确定迭代深度;对源程序和可疑程序进行分析得到元数据,从元数据中提取API调用信息和方法的指令执行序列,以API调用信息和方法的指令序列作为输入产生静态程序胎记,通过对两个程序的程序胎记对比,得到两个程序胎记之间的相似度,通过对比相似度最终给出是否抄袭的结论。本发明在指令序列的对比上没有采用传统的k‑gram算法,而是采用LCS算法,并且在软件胎记的生成上综合了API调用和指令序列两个方面的因素。最终得到的软件胎记在保证可信性的前提下抗迷惑性有显著提高。
技术领域
本发明涉及程序特征发现以及软件版权保护领域,对两个不同开发者发布的程序通过提取其静态胎记进行对比计算其发布程序之间相似度大小,以判断两程序之间是否存在抄袭现象,是一种软件抄袭检测的方法;
背景技术
伴随着计算机技术以及计算机网络的迅猛发展,软件已经成为我们日常生活中不可或缺的一部分,并且为人们的生活带来了极大的便利以及数以亿万记的经济效益;然而软件作为一种数字产品在有着传输便利性的同时也为其版权保护带来了相当的难度,许多别有用心的人可以轻易地在网络上获得目标软件并且通过一些技术手段来将其破解并且以低廉的价格再发行出去,为软件的开发者带来重大损失;
在这种现状之下,许多相关学者以及工作人员已经在做有关软件保护的研究,思路大致可以说从软件和硬件两方面来对程序进行加密和保护;若从硬件方面来进行保护,主流有三种手段,一是将程序写入可携带设备,如光盘或加密狗等等,由人对硬件进行保管;二是将程序绑定于CPU之上,一个CPU唯一对应于一个程序,这种方法对于CPU的制造有一定的要求;三是在CPU中增加一个解密单元,对于要执行的程序预先进行加密,只有在执行到程序时再由解密单元进行解密来运行;基于硬件的程序保护大多需要购买专门的硬件,将程序与硬件配合才可以正确执行;若从软件方面进行保护,主流大致有代码加壳,代码混淆,软件水印,软件胎记等技术;
而静态软件胎记提取技术与其他技术相比较之下主要有以下两点优势,第一,其技术主要是对源码或中间码进行分析而无需额外插入任何代码,减少人为插入代码导致程序被恶意分析的可能性;第二,与同类的动态提取软件胎记技术相比较之下,这种方法可以更全面的覆盖软件的全部执行过程,而动态执行通常只能覆盖软件的一部分执行路径,增强了胎记的可信度,并且若软件需要频繁交互,提取动态胎记所花费的时间与用户体验代价要比静态胎记大得多;这两方面优势保证了静态软件胎记技术在盗版检测,代码抄袭等方面的实用性;
但目前来说静态软件胎记的提取主要有以下难点,第一,大部分的静态软件胎记在面对代码迷惑时表现的非常一般,有的甚至不具备抗迷惑能力;第二,在可以程序的获取上,基本只能拿到其二进制代码或中间代码而无法拿到源代码,这样许多依赖源代码才能够使用的胎记提取,如基于关键词的胎记提取,就无法使用;
针对以上情况,需要找到一种更好的软件胎记提取方法,这种方法生成的胎记在具有可信性的同时应兼具有一定的抗迷惑性,不限制于某特定平台或语言,且可以处理多种形式的文件;
发明内容
本发明要解决的问题是:提出一种新的静态软件胎记提取办法,以克服现有软件胎记的抗迷惑性弱,检测结果不准确的缺陷;
本发明的目的通过以下技术手段实现:
基于静态胎记的软件抄袭检测方法,包括以下步骤:
步骤一、由用户指定源工程PA和PA中的源类A以及可疑工程PB和PB中的可疑类B,再选定迭代深度d{d≥0};
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安邮电大学,未经西安邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811092227.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种软件授权方法及系统
- 下一篇:应用程序的混淆方法、装置和服务器