代码匹配方法、装置、电子设备和存储介质与流程

文档序号:35976710发布日期:2023-11-09 19:40阅读:38来源:国知局
代码匹配方法、装置、电子设备和存储介质与流程

本申请涉及人工智能,尤其涉及一种代码匹配方法、装置、电子设备和存储介质。


背景技术:

1、逆向分析是软件安全领域中的重要任务之一,在逆向分析过程中,需要对程序代码进行分析,如分析程序机器语言的具体含义,目前通常采用逆向分析工具将程序机器语言转换为伪代码,但伪代码缺少变量名等关键信息,可读性差,因此更希望直接得到程序机器语言对应的源代码,以获取详细的代码信息。

2、相关技术中通常提取二进制代码等机器语言和源代码中具有抗编译优化特性的代码特征串,如字符串、导出函数、字符串数组和全局常量数组等,然后基于代码特征串进行二进制代码和源代码间的匹配。然而,由于不同伪代码或源代码间广泛存在特征串复用,以及对作用一致的高度语义化建模采用不同编写方式等问题,代码特征串匹配方法的误匹配率高,准确性较差,无法满足逆向分析要求。因此,需提供一种改进的代码匹配方案,以提高匹配准确率和逆行分析结果的可靠性。


技术实现思路

1、本申请提供了一种代码匹配方法、装置、设备和存储介质,可以显著提高代码匹配的准确率和可靠性。

2、一方面,本申请提供了一种代码匹配方法,所述方法包括:

3、获取待识别程序对应的待识别伪代码;

4、基于所述待识别伪代码在源代码特征库中进行相似代码搜索,得到所述待识别伪代码对应的多条候选源代码;

5、将所述多条候选源代码分别与所述待识别伪代码进行组合,得到多个代码对;

6、对所述多个代码对进行分类识别处理,得到分类识别结果,所述分类识别结果表征所述多个代码对中的候选源代码与所述待识别伪代码间的同源概率;

7、基于所述分类识别结果从所述多条候选源代码中确定出与所述待识别程序匹配的目标源代码。

8、另一方面提供了一种代码匹配装置,所述装置包括:

9、伪代码获取模块:用于获取待识别程序对应的待识别伪代码;

10、相似代码搜索模块:用于基于所述待识别伪代码在源代码特征库中进行相似代码搜索,得到所述待识别伪代码对应的多条候选源代码;

11、代码组合模块:用于将所述多条候选源代码分别与所述待识别伪代码进行组合,得到多个代码对;

12、分类识别模块:用于对所述多个代码对进行分类识别处理,得到分类识别结果,所述分类识别结果表征所述多个代码对中的候选源代码与所述待识别伪代码间的同源概率;

13、源代码确定模块:用于基于所述分类识别结果从所述多条候选源代码中确定出与所述待识别程序匹配的目标源代码。

14、另一方面提供了一种计算机设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如上述的代码匹配方法。

15、另一方面提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如上述的代码匹配方法。

16、另一方面提供了一种服务器,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如上述的代码匹配方法。

17、另一方面提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如上述的代码匹配方法。

18、另一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令被处理器执行时实现如上述的代码匹配方法。

19、本申请提供的代码匹配方法、装置、设备、存储介质、服务器、终端、计算机程序和计算机程序产品,具有如下技术效果:

20、本申请的技术方案通过获取待识别程序对应的待识别伪代码;基于待识别伪代码在源代码特征库中进行相似代码搜索,得到伪代码特征对应的多条候选源代码;将多条候选源代码分别与待识别伪代码进行组合,得到多个代码对;对多个代码对进行分类识别处理,得到分类识别结果,分类识别结果表征多个代码对中的候选源代码与待识别伪代码间的同源概率;基于分类识别结果从多条候选源代码中确定出与待识别程序匹配的目标源代码。通过该技术方案,基于源代码特征和伪代码特征进行代码理解、匹配及分类识别,可以对整体代码进行宏观语义的相似性判断,不受代码文本语言、细节语法和复杂匹配规则的限制,能够实现伪代码和源代码间的跨语言文本精准匹配,并且,先基于代码特征进行候选源代码筛选,然后进行候选源代码与待识别伪代码间的分类识别,能够兼顾召回准确率和分类准确率的优化,显著提高代码匹配精度,降低系统部署难度。



技术特征:

1.一种代码匹配方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述基于所述待识别伪代码在源代码特征库中进行相似代码搜索,得到所述待识别伪代码对应的多条候选源代码包括:

3.根据权利要求2所述的方法,其特征在于,所述方法还包括:

4.根据权利要求3所述的方法,其特征在于,所述获取召回训练样本集包括:

5.根据权利要求1所述的方法,其特征在于,所述方法还包括:

6.根据权利要求5所述的方法,其特征在于,所述获取精排训练样本集包括:

7.根据权利要求2-6中任一项所述的方法,其特征在于,所述基于所述至少一种伪代码特征在所述源代码特征库中进行相似代码搜索,得到所述至少一种伪代码特征对应的初始源代码包括:

8.根据权利要求1-6中任一项所述的方法,其特征在于,所述基于所述分类识别结果从所述多条候选源代码中确定出与所述待识别程序匹配的目标源代码包括:

9.根据权利要求1-6中任一项所述的方法,其特征在于,所述对所述多个代码对进行分类识别处理,得到分类识别结果包括:

10.一种代码匹配装置,其特征在于,所述装置包括:

11.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如权利要求1-9中任一项所述的代码匹配方法。

12.一种计算机设备,其特征在于,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如权利要求1-9中任一项所述的代码匹配方法。

13.一种计算机程序产品或计算机程序,其特征在于,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令被处理器执行时实现如权利要求1-9中任一项所述的代码匹配方法。


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

技术研发人员:屠子睿
受保护的技术使用者:深圳市腾讯网域计算机网络有限公司
技术研发日:
技术公布日:2024/1/16
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1