代码匹配分析方法、装置、电子设备及存储介质制造方法及图纸

技术编号:34177363 阅读:35 留言:0更新日期:2022-07-17 12:14
本申请公开了一种代码匹配分析方法、装置、电子设备及存储介质,其中方法包括:各源码文件包括若干行的代码,分别根据各行代码计算出对应的哈希信息,根据哈希信息建立对应的目录,目录中建立有对应的索引信息,索引信息记录有该行代码对应的组件信息和该行代码所处的行号信息;计算待分析包中各待分析文件的各行代码对应的哈希信息;根据各待分析文件的各行代码对应的哈希信息,寻找配对的目录;根据配对的各目录中索引信息对应的组件信息和行号信息,筛选组件信息相对应且行号信息连续排布的索引信息;根据筛选的索引信息确定待分析文件对应的匹配状况信息。本申请能够快速、准确对数量较多的代码进行匹配分析,提高检测覆盖率、匹配效率。匹配效率。匹配效率。

【技术实现步骤摘要】
代码匹配分析方法、装置、电子设备及存储介质


[0001]本申请涉及代码分析
,尤其涉及一种代码匹配分析方法、装置、电子设备及存储介质。

技术介绍

[0002]目前,自主研发的信息技术产品已成为我国信息技术产业的重要发展趋势。为了加速自主研发软件的安全化进程,不仅需要减少对非自研软件依赖引入,还需要对代码编制进行检测分析以减少安全隐患,因此需要对自主研发软件进行源码配对检测(如自研率的检测),能够分析出自主研发软件与其他开源组件的源码配对状况,便于软件的开发和维护。
[0003]然而,目前市面上对自主研发软件进行源码配对检测(如自研率的检测)的软件效率较低,不能快速、准确地对大量的开源组件的源码的数据信息进行处理分析、高效,同时匹配计算效率较低。

技术实现思路

[0004]本申请的目的是为解决上述部分技术问题的不足而提供一种代码匹配分析方法、装置、电子设备及存储介质,能够快速、准确对数量较多的代码进行匹配分析,提高检测覆盖率、匹配效率。
[0005]为了实现上述目的,本申请提供了一种代码匹配分析方法,其包括:
[0006]获取源码包,所述源码包包括若干源码文件;
[0007]解析所述源码包得到对应的所述源码文件,各所述源码文件包括若干行的代码,分别根据各行代码计算出对应的哈希信息,根据所述哈希信息建立对应的目录,对应的所述目录中建立有对应的索引信息,所述索引信息记录有该行代码对应的组件信息和该行代码所处的行号信息;
[0008]输入待分析包,并计算所述待分析包中各待分析文件的各行代码对应的哈希信息;
[0009]根据各待分析文件的各行代码对应的所述哈希信息,寻找配对的所述目录,并读取配对的所述目录中所述索引信息;
[0010]根据配对的各所述目录中所述索引信息对应的所述组件信息和所述行号信息,筛选所述组件信息相对应且所述行号信息连续排布的所述索引信息;
[0011]根据筛选的所述索引信息确定所述待分析文件对应的匹配状况信息。
[0012]可选地,所述“根据配对的各所述目录中所述索引信息对应的所述组件信息和所述行号信息,筛选所述组件信息相对应且所述行号信息连续排布的所述索引信息”包括:
[0013]根据筛选的同一所述组件信息下且行号连续排布的所述行号信息对应的所述索引信息,分别获取各所述组件信息对应连续排布的行号数量。
[0014]可选地,所述“获取各所述组件信息对应连续排布的行号数量”包括:
[0015]根据筛选的所述索引信息中,分别确定同一所述组件信息下,连续排布的所述行号信息的数量,以确定所述行号数量。
[0016]可选地,所述匹配状况信息包括匹配成功和匹配失败;
[0017]所述“根据筛选的所述索引信息确定所述待分析文件对应的匹配状况信息”包括:
[0018]将各所述组件信息对应连续排布的行号数量分别与预设判定数值进行比对;
[0019]若至少一所述行号数量大于预设判定数值,则所述待分析文件对应的匹配状况信息为匹配成功。
[0020]可选地,所述方法还包括:
[0021]所述匹配状况信息包括匹配成功和匹配失败;
[0022]确定所述待分析包中匹配成功的所述待分析文件的数量;
[0023]根据匹配成功的所述待分析文件的数量确定所述待分析包的匹配程度信息。
[0024]可选地,所述匹配程度信息包括自研率;
[0025]根据匹配成功的所述待分析文件的数量与所述待分析包中所述待分析文件的总数,计算得到对应的自研率。
[0026]可选地,所述“获取源码包”包括:
[0027]收集开源组件信息,所述开源组件信息包括代码仓库地址信息;
[0028]根据所述代码仓库地址信息下载相关的源码;
[0029]根据所述下载的源码得到所述源码包。
[0030]为了实现上述目的,本申请还提供一种代码匹配分析装置,其包括:
[0031]获取模块,所述获取模块用于获取源码包,所述源码包包括若干源码文件;
[0032]解析模块,所述解析模块用于解析所述源码包得到对应的所述源码文件,各所述源码文件包括若干行的代码,分别根据各行代码计算出对应的哈希信息,根据所述哈希信息建立对应的目录,对应的所述目录中建立有对应的索引信息,所述索引信息记录有该行代码对应的组件信息和该行代码所处的行号信息;
[0033]输入模块,所述输入模块用于输入待分析包,并计算所述待分析包中各待分析文件的各行代码对应的哈希信息;
[0034]配对模块,所述配对模块用于根据各待分析文件的各行代码对应的所述哈希信息,寻找配对的所述目录,并读取配对的所述目录中所述索引信息;
[0035]筛选模块,所述筛选模块用于根据配对的各所述目录中所述索引信息对应的所述组件信息和所述行号信息,筛选所述组件信息相对应且所述行号信息连续排布的所述索引信息;
[0036]计算模块,所述计算模块用于根据筛选的所述索引信息确定所述待分析文件对应的匹配状况信息。
[0037]为了实现上述目的,本申请还提供一种电子设备,其包括:
[0038]处理器;
[0039]存储器,其中存储有所述处理器的可执行指令;
[0040]其中,所述处理器配置为经由执行所述可执行指令来执行如上所述的代码匹配分析方法。
[0041]为了实现上述目的,本申请还提供一种计算机可读存储介质,其上存储有计算机
程序,其包括所述计算机程序被处理器执行时实现如上所述的代码匹配分析方法。
[0042]本申请还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行如上所述的代码匹配分析方法。
[0043]本申请获取并解析源码包以得到若干源码文件,接着根据源码文件中的各行代码分别计算出对应的哈希信息,并根据各哈希信息分别建立对应的目录,在各目录中分别建立有对应的索引信息,其中索引信息记录有该行代码对应的组件信息和该行代码所处的行号信息。在使用时,只需输入待分析包,并对待分析包计算以得到各待分析文件中的各行代码对应的哈希信息,根据各待分析文件的各行代码对应的哈希信息去寻找配对的目录,结合配对目录中索引信息,筛选组件信息相对应且行号信息连续排布的索引信息,最后根据筛选的索引信息确定待分析文件对应的匹配状况信息。本申请通过根据各行代码得到对应的哈希信息,在对待分析文件进行配对分析时,只需将待分析文件中代码对应的哈希信息与目录进行匹配,并结合索引信息中记录的组件信息和行号信息,快速筛选组件信息相对应且行号信息连续排布的索引信息,以确定待分析文件的匹配状况,因此能够快速、准确对数量较多的代码进行匹配分析,提高检测覆盖率、匹配效率。
附图说明
[0044]图1为本申请实施例代码匹本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种代码匹配分析方法,其特征在于,包括:获取源码包,所述源码包包括若干源码文件;解析所述源码包得到对应的所述源码文件,各所述源码文件包括若干行的代码,分别根据各行代码计算出对应的哈希信息,根据所述哈希信息建立对应的目录,对应的所述目录中建立有对应的索引信息,所述索引信息记录有该行代码对应的组件信息和该行代码所处的行号信息;输入待分析包,并计算所述待分析包中各待分析文件的各行代码对应的哈希信息;根据各待分析文件的各行代码对应的所述哈希信息,寻找配对的所述目录,并读取配对的所述目录中所述索引信息;根据配对的各所述目录中所述索引信息对应的所述组件信息和所述行号信息,筛选所述组件信息相对应且所述行号信息连续排布的所述索引信息;根据筛选的所述索引信息确定所述待分析文件对应的匹配状况信息。2.如权利要求1所述的代码匹配分析方法,其特征在于,所述“根据配对的各所述目录中所述索引信息对应的所述组件信息和所述行号信息,筛选所述组件信息相对应且所述行号信息连续排布的所述索引信息”包括:根据筛选的同一所述组件信息下且行号连续排布的所述行号信息对应的所述索引信息,分别获取各所述组件信息对应连续排布的行号数量。3.如权利要求2所述的代码匹配分析方法,其特征在于,所述“获取各所述组件信息对应连续排布的行号数量”包括:根据筛选的所述索引信息中,分别确定同一所述组件信息下,连续排布的所述行号信息的数量,以确定所述行号数量。4.如权利要求2所述的代码匹配分析方法,其特征在于,所述匹配状况信息包括匹配成功和匹配失败;所述“根据筛选的所述索引信息确定所述待分析文件对应的匹配状况信息”包括:将各所述组件信息对应连续排布的行号数量分别与预设判定数值进行比对;若至少一所述行号数量大于预设判定数值,则所述待分析文件对应的匹配状况信息为匹配成功。5.如权利要求1所述的代码匹配分析方法,其特征在于,还包括:所述匹配状况信息包括匹配成功和匹配失败;确定所述待分析包中匹配成功的所述待分析文件的数量;根据匹配成...

【专利技术属性】
技术研发人员:汪杰万振华王颉李华董燕
申请(专利权)人:深圳开源互联网安全技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1