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

技术编号:36690775 阅读:25 留言:0更新日期:2023-02-27 19:57
本说明书实施例提供一种代码分析方法,包括:获取待分析代码的历史运行数据;其中,所述历史运行数据包括所述待分析代码在运行过程中所调用的函数,以及所述函数之间的调用关系;基于待分析代码在运行过程中所调用的函数,以及所述函数之间的调用关系,生成函数调用图;对所述待分析代码进行静态分析,并在所述静态分析过程中,如果待分析的目标函数存在多个可调用的函数时,查询所述函数调用图,确定与所述待分析的目标函数存在调用关系的函数,并基于查询的结果进一步完成针对所述目标函数的静态分析。上述方案不仅易于实现、容易部署,还可以通过在静态分析过程中通过查询函数调用图来提升准确度。数调用图来提升准确度。数调用图来提升准确度。

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


[0001]本说明书涉及计算机
,尤其涉及一种代码分析方法、装置、电子设备及存储介质。

技术介绍

[0002]代码,是程序员使用开发工具所支持的语言写出来的源文件,是一组有序的数字或字母的排列,是代表客观实体及其属性的符号。程序员通过编写代码,可以实现相应的功能,比如通过编写代码执行数据统计任务。
[0003]然而,由于代码需要以规定的语法编写才能正常运行,如果出现语法错误,将导致代码无法执行,也就无法实现相应的功能。并且,由于代码通常多而复杂,代码在执行过程中很可能存在无法预知的漏洞,很可能带来非常严重的后果,比如目前大家对自己的隐私数据越来越关注,一旦因为代码漏洞导致用户隐私数据泄露,不仅影响了用户的隐私安全,更会对公司造成无法挽回的负面影响。
[0004]因此,为了确保代码的稳定性和可靠性,降低代码错误导致的风险,在编写出代码之后,还需要进行代码分析,对代码进行各种检测。

技术实现思路

[0005]有鉴于此,本说明书一个或多个实施例提供一种代码分析方法、装置本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种代码分析方法,包括:获取待分析代码的历史运行数据;其中,所述历史运行数据包括所述待分析代码在运行过程中所调用的函数,以及所述函数之间的调用关系;基于待分析代码在运行过程中所调用的函数,以及所述函数之间的调用关系,生成函数调用图;对所述待分析代码进行静态分析,并在所述静态分析过程中,如果待分析的目标函数存在多个可调用的函数时,查询所述函数调用图,确定与所述待分析的目标函数存在调用关系的函数,并基于查询的结果进一步完成针对所述目标函数的静态分析。2.根据权利要求1所述的方法,在基于待分析代码在运行过程中所调用的函数,以及所述函数之间的调用关系,生成函数调用图之前,所述方法还包括:运行植入在所述待分析代码中的插桩代码,收集所述待分析代码的历史运行数据。3.根据权利要求2所述的方法,所述历史运行数据包括所述待分析代码在历史运行过程中产生的上下文数据。4.根据权利要求1所述的方法,所述基于待分析代码在运行过程中所调用的函数,以及所述函数之间的调用关系,生成函数调用图,包括:基于所述待分析代码在运行过程中所调用的函数,以及所述函数之间的调用关系,确定所述待分析代码中在运行过程中所调用函数对应的调用路径,并对经过相同调用路径的函数进行聚合,生成所述函数调用图。5.根据权利要求1所述的方法,在所述静态分析过程中,如果待分析的目标函数存在多个可调用的函数时,查询所述函数调用图,确定与所述待分析的目标函数存在调用关系的函数,并基于查询的结果进一步完成针对所述目标函数的静态分析,包括:在所述静态分析过程中,如果待分析的目标函数为预设函数,并且所述预...

【专利技术属性】
技术研发人员:吴迪宇刘江潮刘洁瑞郑恒杰狄鹏
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:

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

1