[发明专利]源代码克隆识别方法及系统在审
申请号: | 202110317456.0 | 申请日: | 2021-03-25 |
公开(公告)号: | CN112698861A | 公开(公告)日: | 2021-04-23 |
发明(设计)人: | 汪杰;万振华;王颉;董燕;李华 | 申请(专利权)人: | 深圳开源互联网安全技术有限公司 |
主分类号: | G06F8/70 | 分类号: | G06F8/70 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 张艳美;赵贯杰 |
地址: | 518000 广东省深圳市龙华区龙华*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 源代码 克隆 识别 方法 系统 | ||
1.一种源代码克隆识别方法,其特征在于,包括:
收集并存储源码文件,以生成源码库;
采用降维算法分别对所述源码库中的每一所述源码文件进行分析处理,以生成若干分别与每一所述源码文件对应的包括若干位字节的第一字符串;
采用降维算法对目标代码文件进行分析处理,以生成与之对应的包括若干位字节的第二字符串;
将所述第二字符串分别与若干所述第一字符串进行匹配分析,根据预设要求,获得匹配度最高的N个所述第一字符串,N≥1;
对所述目标代码文件与上述匹配度最高的N个所述第一字符串所对应的源码文件中的代码进行比对,并根据预设敏感度输出比对结果。
2.根据权利要求1所述的源代码克隆识别方法,其特征在于,所述降维算法包括局部敏感哈希算法。
3.根据权利要求1所述的源代码克隆识别方法,其特征在于,源码库中所述源码文件的存储方法包括:
将属于同一类的不同版本代码所对应的所述源码文件存储在同一类目录下;
在所述类目录下,为每一所要存储的所述源码文件建立一文件存储目录,所述文件存储目录中还具有一记录文件,所述记录文件用于记录存储在该文件存储目录下的所述源码文件与其所属的类目录下所有版本代码所对应的版本号和路径信息;
检测当前所要存储的所述源码文件在当前所述类目录下是否已存储,如果是,放弃存储当前所要存储的所述源码文件,并在已存储的所述源码文件所对应的所述记录文件中添加与当前所要存储的源码文件所对应的版本号和路径信息。
4.根据权利要求3所述的源代码克隆识别方法,其特征在于,采用哈希码作为每一所述文件存储目录的文件名。
5.根据权利要求1所述的源代码克隆识别方法,其特征在于,采用降维算法对源码库中所述源码文件进行分析处理的方法包括;
将属于同一类的不同版本代码所对应的所述源码文件存储在同一类目录下;
在所述类目录下,为每一所要存储的所述源码文件建立一文件存储目录,并在新建立的所述文件存储目录中生成一更新文件,所述更新文件中具有文件更新标志;
实时检测所述源码库中任一所述文件存储目录下是否存在所述更新文件,如果是,采用降维算法对当前所述更新文件所在类目录下的所有所述源码文件进行分析处理,并消除当前所述更新文件。
6.一种源代码克隆识别系统,其特征在于,包括源码库建立单元、分析处理单元、第一比对单元和第二比对单元;
所述源码库建立单元,用于收集并存储源码文件,以生成源码库;
所述分析处理单元,用于采用降维算法分别对所述源码库中的每一所述源码文件进行分析处理,以生成若干分别与每一所述源码文件对应的包括若干位字节的第一字符串,且用于对目标代码文件进行分析处理,以生成与之对应的包括若干位字节的第二字符串;
所述第一比对单元,用于将所述第二字符串分别与若干所述第一字符串进行匹配分析,根据预设要求,获得匹配度最高的N个所述第一字符串,N≥1;
所述第二比对单元,用于对所述目标代码文件与所述第一比对单元得到的N个所述第一字符串所对应的源码文件中的代码进行比对,并根据预设敏感度输出比对结果。
7.根据权利要求6所述的源代码克隆识别系统,其特征在于,所述源码库建立单元还包括存储管理模块、记录文件生成模块和第一检测模块;
所述存储管理模块,用于将属于同一类的不同版本代码所对应的所述源码文件存储在同一类目录下,并在所述类目录下,为每一所要存储的所述源码文件建立一文件存储目录;
所述记录文件生成模块,用于在所述文件存储目录中生成一记录文件,所述记录文件用于记录存储在该文件存储目录下的所述源码文件与其所属的类目录下所有版本代码所对应的版本号和路径信息;
所述第一检测模块,用于检测当前所要存储的所述源码文件在当前所述类目录下是否已存储;
当所述第一检测模块检测到当前所要存储的所述源码文件已有存储时,所述存储管理模块放弃存储当前所要存储的所述源码文件,并在已存储的所述源码文件所对应的所述记录文件中添加与当前所要存储的源码文件所对应的版本号和路径信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳开源互联网安全技术有限公司,未经深圳开源互联网安全技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110317456.0/1.html,转载请声明来源钻瓜专利网。