[发明专利]代码克隆检测方法、装置、终端设备与可读存储介质在审
| 申请号: | 202211101209.8 | 申请日: | 2022-09-08 |
| 公开(公告)号: | CN115951891A | 公开(公告)日: | 2023-04-11 |
| 发明(设计)人: | 万振华 | 申请(专利权)人: | 深圳开源互联网安全技术有限公司 |
| 主分类号: | G06F8/41 | 分类号: | G06F8/41 |
| 代理公司: | 深圳市恒程创新知识产权代理有限公司 44542 | 代理人: | 李晶 |
| 地址: | 518000 广东省深圳市龙华区民治*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 代码 克隆 检测 方法 装置 终端设备 可读 存储 介质 | ||
1.一种代码克隆检测方法,其特征在于,所述代码克隆检测方法包括以下步骤:
当接收到提取指令时,获取源码文件;
对所述源码文件进行分析,得到所述源码文件对应的函数体信息;
基于所述函数体信息,从所述源码文件中确定至少一个子函数体;
通过预置匹配规则,对所述子函数体进行提取,得到至少一个函数字符串,并基于所述函数字符串进行代码克隆检测。
2.如权利要求1所述代码克隆检测方法,其特征在于,所述对所述源码文件进行分析,得到所述源码文件对应的函数体信息的步骤包括:
当接收到扫描指令时,通过预置扫描工具对所述源码文件进行扫描,获取所述源码文件中的函数体信息。
3.如权利要求2所述代码克隆检测方法,其特征在于,所述基于所述函数体信息,从所述源码文件中确定至少一个子函数体的步骤包括:
获取所述函数体信息中的起始行及结束行;
基于所述起始行及所述结束行,从所述源码文件通过截取得到至少一个子函数体。
4.如权利要求1所述代码克隆检测方法,其特征在于,所述通过预置匹配规则,对所述子函数体进行提取,得到至少一个函数字符串的步骤包括:
获取所述子函数体中的字符串;
通过所述预置匹配规则,对所述字符串进行匹配提取,得到至少一个第一函数字符串;
通过所述预置匹配规则,对所述第一函数字符串进行匹配过滤,得到至少一个第二函数字符串,将所述第二函数字符串作为所述函数字符串。
5.如权利要求4所述代码克隆检测方法,其特征在于,所述通过所述预置匹配规则,对所述字符串进行匹配提取,得到至少一个第一函数字符串,通过所述预置匹配规则,对所述第一函数字符串进行匹配过滤,得到至少一个第二函数字符串,将所述第二函数字符串作为所述函数字符串的步骤包括:
识别所述字符串中的第一特征符号;
在所述字符串中,提取所述第一特征符号之间的字符,得到所述第一函数字符串;
识别所述第一函数字符串中的第二特征字符串;
在所述第一函数字符串中,过滤所述第二特征字符串,并将过滤后的所述第二函数字符串作为所述函数字符串。
6.如权利要求5所述代码克隆检测方法,其特征在于,在所述第一函数字符串中,过滤所述第二特征字符串,并将过滤后的所述第一函数字符串作为所述函数字符串的步骤之后,还包括:
获取所述函数字符串的字体格式;
将所述字体格式与预设格式比对,若所述比对的结果为不一致,则对所述字体格式对应的所述函数字符串进行格式转换。
7.如权利要求1所述代码克隆检测方法,其特征在于,所述通过预置匹配规则,对所述子函数体进行提取,得到至少一个函数字符串的步骤之后,还包括:
为所述函数字符串生成特征标识;
基于所述函数体信息及所述特征标识,为所述函数字符串生成索引标识。
8.一种代码克隆检测装置,其特征在于,所述代码克隆检测装置包括:
获取模块,用于当接收到提取指令时,获取源码文件;
分析模块,用于对所述源码文件进行分析,得到所述源码文件对应的函数体信息;
确定模块,用于基于所述函数体信息,从所述源码文件中确定至少一个子函数体;
提取模块,用于通过预置匹配规则,对所述子函数体进行提取,得到至少一个函数字符串。
9.一种终端设备,其特征在于,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的代码克隆检测程序,所述代码克隆检测程序被所述处理器执行时实现如权利要求1-7中任一项所述的代码克隆检测方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有代码克隆检测程序,所述代码克隆检测程序被处理器执行时实现如权利要求1-7中任一项所述的代码克隆检测方法的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳开源互联网安全技术有限公司,未经深圳开源互联网安全技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211101209.8/1.html,转载请声明来源钻瓜专利网。





