[发明专利]开源代码检测方法、装置及计算机可读存储介质有效
| 申请号: | 201911035273.9 | 申请日: | 2019-10-29 |
| 公开(公告)号: | CN110990256B | 公开(公告)日: | 2023-09-05 |
| 发明(设计)人: | 李伟光 | 申请(专利权)人: | 中移(杭州)信息技术有限公司;中国移动通信集团有限公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36 |
| 代理公司: | 上海晨皓知识产权代理事务所(普通合伙) 31260 | 代理人: | 成丽杰 |
| 地址: | 310011 浙江省杭州*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 源代码 检测 方法 装置 计算机 可读 存储 介质 | ||
1.一种开源代码检测方法,其特征在于,所述方法包括:
接收开源代码实体,并建立开源代码实体的神经网络模型;
对所述神经网络模型进行训练;
在完成对所述神经网络模型的训练后,接收待检测的混源代码实体;
将所述混源代码实体按行进行分割,并为分割后的每行代码确定至少一个第二静态特征;
为确定的所述至少一个第二静态特征中的每个静态特征生成对应的第二SHA散列值;
将所述第二SHA散列值输入到所述神经网络模型进行计算,得出所述至少一个第二静态特征的输出概率;
根据所述输出概率判断所述混源代码实体与所述开源代码实体是否匹配。
2.根据权利要求1所述的开源代码检测方法,其特征在于,所述方法还包括步骤:
根据所述混源代码实体与所述开源代码实体的匹配结果,输出并显示所述混源代码的检索报告。
3.根据权利要求2所述的开源代码检测方法,其特征在于,所述检索报告至少显示下述信息中的一种:
混源代码的实体信息,该实体信息至少包括文件路径、文件名称和匹配概率;
与混源代码匹配的开源代码所对应的开源项目信息,该开源项目信息至少包括软件名称、协议类型及当前版本;
混源代码与开源代码的横向对比窗口;
误报按钮,以供用户在匹配结果出现误报时进行人工标记。
4.根据权利要求2所述的开源代码检测方法,其特征在于,所述建立开源代码实体的神经网络模型的步骤包括:
将开源代码实体按行进行分割;
为分割后的每行代码确定至少一个第一静态特征;
为确定的所述至少一个第一静态特征中的每个静态特征生成对应的第一安全散列算法(Secure Hash Algorithm,SHA)散列值;
将所述至少一个第一静态特征、对应的第一SHA散列值、开源代码实体组成N*M*J数组存入神经网络模型库;
以所述N*M*J数组作为参数建立所述神经网络模型,并将所述神经网络模型储存于所述神经网络模型库中以备调用。
5.根据权利要求4所述的开源代码检测方法,其特征在于,所述对所述神经网络模型进行训练的步骤包括:
获取代码训练样本数据;
使用所述代码训练样本数据对神经网络模型进行训练,并根据训练结果不断更新所述神经网络模型的网络结构和参数数值。
6.根据权利要求4所述的开源代码检测方法,其特征在于,所述方法还包括步骤:
接收用户对输出的匹配结果的人工标记,根据所述人工标记更新训练后的神经网络模型。
7.根据权利要求6所述的开源代码检测方法,其特征在于,所述接收用户对输出的匹配结果的人工标记,根据所述人工标记更新训练后的神经网络模型的步骤包括:
根据所述人工标记,更新所述神经网络模型库的N*M*J数组。
8.一种开源代码检测装置,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至7中任一所述的开源代码检测方法的步骤。
9.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一所述的开源代码检测方法的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中移(杭州)信息技术有限公司;中国移动通信集团有限公司,未经中移(杭州)信息技术有限公司;中国移动通信集团有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911035273.9/1.html,转载请声明来源钻瓜专利网。





