[发明专利]一种基于频繁模式挖掘的多线程程序抄袭检测方法有效
申请号: | 201910818878.9 | 申请日: | 2019-08-30 |
公开(公告)号: | CN110532739B | 公开(公告)日: | 2021-04-30 |
发明(设计)人: | 田振洲;王清;高聪;王忠民;陈彦萍;张恒山 | 申请(专利权)人: | 西安邮电大学 |
主分类号: | G06F21/14 | 分类号: | G06F21/14 |
代理公司: | 西安通大专利代理有限责任公司 61200 | 代理人: | 孟大帅 |
地址: | 710121 陕西*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 频繁 模式 挖掘 多线程 程序 抄袭 检测 方法 | ||
1.一种基于频繁模式挖掘的多线程程序抄袭检测方法,其特征在于,包括以下步骤:
S1,对待分析程序实施动态监控,捕获其在某输入I下的动态执行轨迹;
S2,利用k-gram算法处理步骤S1获得的执行轨迹,生成模式候选集;
S3,利用频繁模式挖掘算法处理步骤S2获得的模式候选集,生成频繁模式集;将Hash处理后的频繁模式及频率构成的键值对集合,作为待分析程序在输入I下的线程感知胎记;
S4,按照步骤S1至步骤S3,分别生成原告程序和被告程序对应输入I的线程感知胎记,计算二者在输入I下的线程感知胎记间的相似性;
S5,提供多个不同的输入并重复步骤S4,依次得到原告和被告程序在对应输入下胎记的相似性,取相似性的均值作为原告和被告程序的相似性,输出相似值并依据检测阈值给出抄袭判定;
其中,步骤S1中,捕获其在某输入I下的动态执行轨迹的具体方式包括:
对待检测程序p,使用同一输入I执行程序m次,通过监控捕获在输入I下的执行轨迹集其中,si表示第i次执行对应的执行轨迹;步骤S1中,对待分析程序实施动态监控的方法具体包括:利用Pin动态插桩框架植入监控代码,捕获程序执行过程中的系统调用,记录由系统调用构成的执行轨迹,轨迹形式为ID#NAME#RVAL;其中,ID表示系统调用号,NAME为系统调用名,RVAL为系统调用的返回值;
步骤S2中,模式候选集生成方法具体包括:
对于中的每条执行轨迹si,首先依据RVAL字段和ID字段过滤去除执行轨迹中的干扰项,获得过滤后的执行轨迹;
然后迭代利用k-gram算法切分过滤后的执行轨迹,依次得到特定k值下的短序列集gramk(si),合并所有短序列集得执行轨迹si的模式候选集
最后迭代处理轨迹集中的每条执行轨迹,合并所有轨迹的模式候选集,得待分析程序p在输入I下的模式候选集
2.根据权利要求1所述的一种基于频繁模式挖掘的多线程程序抄袭检测方法,其特征在于,步骤S3中,线程感知胎记的生成方法包括:
首先,利用频繁模式挖掘算法,处理生成频繁模式集其中,fi表示通过频繁模式挖掘得到的某一频繁模式;
然后,对所有频繁模式依次进行Hash处理,将频繁模式的Hash值及其频度构成的键值对集合作为程序p对应输入I的线程感知胎记;其中,hs(fi)和sp(fi)分别表示频繁模式fi的hash值和频度。
3.根据权利要求2所述的一种基于频繁模式挖掘的多线程程序抄袭检测方法,其特征在于,步骤S4中,线程感知胎记的相似性计算方法包括:
给定原告程序p和被告程序q在输入I下的线程感胎记和采用公式(1)实现胎记相似性计算:
式(1)中,len返回频繁模式的长度,KSet返回键值对集合中的所有键,Val返回键值对集合中特定键的值,ci为所有键的交集CSet中的某一元素,αi为中所有键的集合中的某一元素,βi为中所有键的集合中的某一元素。
4.根据权利要求3所述的一种基于频繁模式挖掘的多线程程序抄袭检测方法,其特征在于,还包括:提供多个不同的输入并重复步骤S1至步骤S4,依次得到原告和被告程序在对应输入下胎记的相似性,取相似性的均值作为原告和被告程序的相似性;
此时采用公式(2)实现程序相似性计算:
其中,表示程序输入的集合。
5.根据权利要求4所述的一种基于频繁模式挖掘的多线程程序抄袭检测方法,其特征在于,以公式(3)为抄袭判定标准:
其中,ε为预设判定阈值。
6.根据权利要求1至5中任一项所述的一种基于频繁模式挖掘的多线程程序抄袭检测方法,其特征在于,依据RVAL字段和ID字段过滤去除执行轨迹中的干扰项的过程中,干扰项识别原则为:
对于执行轨迹中的每一项,如果其RVAL字段的值为0xffffffff,表明该项对应的系统调用未成功,被认定为干扰项;
或者,系统调用ID为45,系统调用名为brk,被认定为干扰项;系统调用ID为90,系统调用名为mmap,被认定为干扰项;系统调用ID为91,系统调用名为munmap,被认定为干扰项;系统调用ID为192,系统调用名为mmap2,被认定为干扰项;系统调用ID为219,系统调用名为madvise,被认定为干扰项;系统调用ID为240,系统调用名为futex,被认定为干扰项。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安邮电大学,未经西安邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910818878.9/1.html,转载请声明来源钻瓜专利网。