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

技术编号:39324146 阅读:14 留言:0更新日期:2023-11-12 16:03
本申请提供了一种代码匹配方法、装置、电子设备和存储介质,涉及人工智能技术领域,可以应用于云技术、人工智能、智慧交通、辅助驾驶等各种场景,方法包括获取待识别程序对应的待识别伪代码;基于待识别伪代码在源代码特征库中进行相似代码搜索,得到待识别伪代码对应的多条候选源代码;将多条候选源代码分别与待识别伪代码进行组合,得到多个代码对;对多个代码对进行分类识别处理,得到分类识别结果,分类识别结果表征多个代码对中的候选源代码与待识别伪代码间的同源概率;基于分类识别结果从多条候选源代码中确定出与待识别程序匹配的目标源代码。本申请能够有效提高代码匹配精度,降低系统部署难度。降低系统部署难度。降低系统部署难度。

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


[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]图1是本申请实施例提供的一种应用环境的示意图;
[0026]图2是本申请实施例提供的一种代码匹配方法的流程示意图;
[0027]图3是本申请实施例提供的另一种代码匹配方法的流程示意图;
[0028]图4是本申请实施例提供的另一种代码匹配方法的流程示意图;
[0029]图5是本申请实施例提供的另一种代码匹配方法的流程示意图;
[0030]图6是本申请实施例提供的另一种代码匹配方法的流程示意图;
[0031]图7是本申请实施例提供的另一种代码匹配方法的流程示意图;
[0032]图8是本申请实施例提供的另一种代码匹配方法的流程示意图;
[0033]图9是本申请实施例提供的一种代码精排模型的框架示意图;
[0034]图10是本申请实施例提供的另一种代码精排模型的框架示意图;
[0035]图11是本申请实施例提供的另一种代码匹配方法的流程原理图;
[0036]图12是本申请实施例提供一种代码匹配装置的框架示意图;
[0037]图13是本申请实施例提供的一种代码匹配方法的电子设备的硬件结构框图。
具体实施方式
[0038]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0039]需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种代码匹配方法,其特征在于,所述方法包括:获取待识别程序对应的待识别伪代码;基于所述待识别伪代码在源代码特征库中进行相似代码搜索,得到所述待识别伪代码对应的多条候选源代码;将所述多条候选源代码分别与所述待识别伪代码进行组合,得到多个代码对;对所述多个代码对进行分类识别处理,得到分类识别结果,所述分类识别结果表征所述多个代码对中的候选源代码与所述待识别伪代码间的同源概率;基于所述分类识别结果从所述多条候选源代码中确定出与所述待识别程序匹配的目标源代码。2.根据权利要求1所述的方法,其特征在于,所述基于所述待识别伪代码在源代码特征库中进行相似代码搜索,得到所述待识别伪代码对应的多条候选源代码包括:基于至少一种代码召回模型分别对所述待识别伪代码进行特征提取,得到至少一种伪代码特征;基于所述至少一种伪代码特征在所述源代码特征库中进行相似代码搜索,得到所述至少一种伪代码特征对应的初始源代码;对所述至少一种伪代码特征对应的初始源代码进行去重处理,得到所述多条候选源代码。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:获取召回训练样本集,所述召回训练样本集包括样本伪代码,以及所述样伪代码对应的正样本源代码和负样本源代码;以所述样本伪代码,以及所述样伪代码对应的正样本源代码和负样本源代码作为第一预训练模型的输入,基于自监督对比学习方法对所述第一预训练模型进行正负样本源代码分类的约束训练,得到所述代码召回模型。4.根据权利要求3所述的方法,其特征在于,所述获取召回训练样本集包括:获取样本代码集,所述样本代码集包括样本源代码,以及与所述样本源代码匹配的至少一条样本伪代码,其中,与所述样本源代码匹配的至少一条样本伪代码对应至少一种编译类型的机器语言文本;以与所述至少一条样本伪代码匹配的样本源代码作为所述正样本源代码,以与所述至少一条样本伪代码不匹配的样本源代码作为所述负样本源代码,对所述样本代码集进行三元组采样,得到多个样本三元组;基于所述多个样本三元组构建所述召回训练样本集。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取精排训练样本集,所述精排训练样本集包括正样本代码对、负样本代码对和对应的样本对标签;以所述正样本代码对和所述负样本代码对作为第二预训练模型的输入,以所述样本对标签作为期望输出,对所述第二预训练模型进行正负样本对分类的约束训练,得到代码精排模型;所述对所述多个代码对进行分类识别处理,得到分类识别结果包括:基于代码精排模型对所述多个代码对进行分类识别处理,得到所述分类识别结果。
6.根据权利要求5所述的方法,其特征在于,所述获取精排训练样本集包括:基于代码召回模型和样本代码集中的每一样本源代码对所述样本代码集中的样本伪代码进行召回,得到所述每一样本源代码对应的参考伪代码集;将所述每一样本源代码分别与所述参考伪代码集中的样本伪代码进行组合,得到正样本代码对和负样本代码对;基于所述正样本代码对和所述负样本代码对构建所述精排训练样本集。7.根据权利要求2

6中任一项所...

【专利技术属性】
技术研发人员:屠子睿
申请(专利权)人:深圳市腾讯网域计算机网络有限公司
类型:发明
国别省市:

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

1