[发明专利]适用于大规模样本的程序源代码相似度检测方法有效

专利信息
申请号: 202010068918.5 申请日: 2020-01-21
公开(公告)号: CN111290784B 公开(公告)日: 2021-08-24
发明(设计)人: 万寒;刘康旭;高小鹏 申请(专利权)人: 北京航空航天大学
主分类号: G06F8/75 分类号: G06F8/75;G06F8/77
代理公司: 北京永创新实专利事务所 11121 代理人: 祗志洁
地址: 100191*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 适用于 大规模 样本 程序 源代码 相似 检测 方法
【权利要求书】:

1.一种适用于大规模样本的程序源代码相似度检测方法,其特征在于,包括:

步骤1,对输入的程序源代码进行预处理,删除与程序逻辑无关的干扰信息;若进行模块级相似度检测,执行步骤2,否则,进行工程级相似度检测,直接转步骤3执行;

所述的预处理包括:对输入的程序工程源文件中的不包含程序源代码的文件删除;对每个源代码文件,删除所有注释信息,并将所有头文件内容展开;将源代码文件中的不同形式表示的整数型常量统一为十进制表示;将源代码中的全部空格符号、制表符以及除换行符外的所有不可见字符移除;

步骤2,将经过步骤1处理后的程序源代码样本按照模块进行切分,划分后的每个源代码区段为模块级的待检测样本,进入步骤3执行;根据模块定义语法规则,对步骤1预处理后的程序源代码进行代码区段划分,每个代码区段的内容为程序源代码中原始工程中对应模块内部的程序语句,不包含模块定义及端口定义语句;使用“原始样本编号”和“区块对应模块名”对所有划分后所得到的代码区段进行标识;

步骤3:对于每个模块级的待检测样本或工程级的待检测样本,使用以下3种方法中的任意一种提取文本特征,并计算文本特征的权重;

方法1:n元语法提取,具体步骤为:对于样本中的每个源代码行,设源代码行的长度为m,自行首开始,按照固定的宽度n,以1为步长,将该行切分成(m-n+1)个长度为n的文本特征;m、n均为正整数,且n小于m;

方法2:哈希取模提取,具体步骤为:对于方法1所提取的文本特征,使用相同的哈希函数逐一计算哈希值,将所得的哈希值与固定的常数k进行取模运算,保留计算结果等于0的文本特征,舍弃计算结果不等于0的文本特征;k为正整数;

方法3:滑动窗口提取,具体步骤为:通过方法1对每行源代码提取一个文本特征序列,按照固定的窗口大小k,自文本特征序列头部选取k个文本特征,以相同的哈希函数计算窗口内各文本特征的哈希值,将窗口内哈希值最小的文本特征保留,剩余文本特征丢弃;以1为步长,对文本特征序列自头部向尾部移动窗口,以相同的哈希函数计算窗口内各文本特征的哈希值,保留窗口内哈希值最小的文本特征,若哈希值最小的特征已在此前的窗口中被选取,则不再重复选取该特征,每个窗口内选出至多一个文本特征;k为正整数;

对每个待检测样本,在计算得到样本中所有源代码行的文本特征序列后,对每个文本特征,计算该文本特征在待检测样本的所有文本特征序列中出现的频次,作为该文本特征的权重;

步骤4:对于每个待检测样本,对步骤3提取的文本特征序列及特征权重序列,计算样本的局部敏感哈希值,作为待检测样本的特征向量;

步骤5:建立t张有序表(T1,T2,…,Tt),有序表Ti中的元素是由步骤4中所得到的全部样本的特征向量应用排列规则πi变换产生;对每个有序表Ti有一个排列规则πi,排列规则πi是将样本的特征向量中指定的二进制位移至最高位,设移动的二进制位组成高位pi;i=1,2,…t;

对待检测样本的特征向量执行相应的排列规则πi,得到从有序表Ti中找出高位pi与完全相同的样本,i=1,2,…t;分别计算所找出的每个样本X的特征向量与的汉明距离,若汉明距离满足检测敏感度的要求,将样本X加入匹配结果集合M中;集合M中的样本就是检测出来的特征向量所对应样本的相似样本。

2.根据权利要求1所述的方法,其特征在于,所述的步骤2中,对Verilog HDL程序源代码,按照模块定义语法规则划分代码区段;对非面向对象的程序语言的源代码,将方法作为检测的基本单元,按照基本单元划分代码区段;对面向对象的程序语言,将类作为检测的基本单元,按照类划分代码区段。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202010068918.5/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top