[发明专利]一种基于串匹配和特征匹配的开源代码检测方法在审
申请号: | 201810807404.X | 申请日: | 2018-07-21 |
公开(公告)号: | CN109062792A | 公开(公告)日: | 2018-12-21 |
发明(设计)人: | 李必信;杨安奇;周颖;王璐璐;廖力 | 申请(专利权)人: | 东南大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 南京众联专利代理有限公司 32206 | 代理人: | 杜静静 |
地址: | 210096 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 代码检测 特征匹配 串匹配 匹配 字符串匹配算法 软件开发项目 公共子串 结构度量 内存消耗 搜索空间 计数法 混源 数据库 重用 开发 检测 优化 应用 | ||
1.一种基于串匹配和特征匹配的开源代码检测方法,其特征在于,所述方法包括以下步骤:步骤一:代码特征提取;步骤二:基于特征匹配的开源代码检测;步骤三:基于串匹配的开源代码检测。
2.根据权利要求1所述的基于串匹配和特征匹配的开源代码检测方法,其特征在于,所述步骤一:代码特征提取,具体操作如下,获取源代码文件、解析源代码文件、将源代码文件依据函数进行切分、提取相应代码文件中的统计特征和函数级别的结构特征、将相应的基本统计特征存入相应代码文件的特征库中。
3.根据权利要求2所述的基于串匹配和特征匹配的开源代码检测方法,其特征在于,所述步骤一的获取源代码文件包括从开源代码库中获取源代码文件。
4.根据权利要求3所述的基于串匹配和特征匹配的开源代码检测方法,其特征在于,所述步骤二基于特征匹配的开源代码检测,具体如下,
获取待匹配的代码文件;
搜索其特征库获取相应的特征信息;
基于迭代计算与人工比对的方法进行特征筛选;
将筛选后的特征组成特征向量与特征库中相应的特征向量做欧氏距离度量;
选取度量值小于设定阈值的文件代码作为搜索的候选集。
5.根据权利要求4所述的基于串匹配和特征匹配的开源代码检测方法,其特征在于,所述步骤三基于串匹配的开源代码检测,具体如下,以候选集为搜索空间,
步骤1:将源程序进行词法分析,将其转化成token串标识;
步骤2:利用一些语法规则,以基本的程序块为单位将标记序列划分为若干段,创建一个标记数据库;
步骤3:使用RKR-GST字符串匹配算法,得出每段的匹配串;
步骤4:将较小的相邻片段组合成较大的重复代码片段,并判断此代码是否为误检;
步骤5:输出最终检测到的开源代码。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东南大学,未经东南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810807404.X/1.html,转载请声明来源钻瓜专利网。