代码检测方法、装置、电子设备及可读存储介质制造方法及图纸

技术编号:34736698 阅读:28 留言:0更新日期:2022-08-31 18:27
本申请公开了一种代码检测方法、装置、电子设备及可读存储介质,其方法包括:对待检测代码进行数据预处理,得到所述待检测代码的数据信息,所述数据信息包括:抽象语法树、符号表、控制流图以及函数依赖关系;对所述控制流图进行数据流分析,得到所述待检测代码的语义信息;按照预设的安全规则,对所述数据信息和/或所述语义信息进行匹配检测,确定所述待检测代码的检测结果。本申请通过对代码语义信息的提取,同时通过安全规则的设置,实现了代码检测的个性化定制,满足了不同类型、不同业务逻辑的代码检测的需求;且安全规则易于管理、维护和升级,适用场景广泛,提高了代码检测效率。提高了代码检测效率。提高了代码检测效率。

【技术实现步骤摘要】
代码检测方法、装置、电子设备及可读存储介质


[0001]本申请涉及代码测试
,具体涉及一种代码检测方法、装置、电子设备及可读存储介质。

技术介绍

[0002]代码质量检测是软件开发中非常重要的环节,其主要为了发现代码中的漏洞,以进行补救。目前业内的代码检测工具是很多的,如Coverity工具、PC

Lint工具、Fortify SCA工具等等。
[0003]现有的代码检测工具对于通用的、规范的需求有较好的支持,但是对特定场景,定制化需求上有所欠缺,且不易于维护和升级。

技术实现思路

[0004]本申请实施例针对上述情况,提出一种代码检测方法、装置、电子设备及可读存储介质,本申请支持对安全规则进行个性化配置,满足定制化代码检测的需求,且代码检测工具易于维护和升级。
[0005]第一方面,本申请实施例提供了一种代码检测方法,包括:
[0006]对待检测代码进行数据预处理,得到所述待检测代码的数据信息,所述数据信息包括:抽象语法树、符号表、控制流图以及函数依赖关系;
[0007本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种代码检测方法,其特征在于,所述方法包括:对待检测代码进行数据预处理,得到所述待检测代码的数据信息,所述数据信息包括:抽象语法树、符号表、控制流图以及函数依赖关系;对所述控制流图进行数据流分析,得到所述待检测代码的语义信息;按照预设的安全规则,对所述数据信息和/或所述语义信息进行匹配检测,确定所述待检测代码的检测结果。2.根据权利要求1所述的方法,其特征在于,所述对待检测代码进行数据预处理,得到所述待检测代码的数据信息,包括:生成待检测代码的抽象语法树和符号表;遍历所述抽象语法树和所述符号表,生成所述待检测代码的控制流图;对所述抽象语法树进行依赖关系解析,确定所述待检测代码的函数依赖关系。3.根据权利要求2所述的方法,其特征在于,所述遍历所述抽象语法树和所述符号表,生成所述待检测代码的控制流图,包括:调用分析生成工具,遍历所述抽象语法树和所述符号表,生成所述待检测代码的控制流图,其中,所述控制流图包括由顶点节点和边节点组成的CFG类,所述顶点节点包括CFGNode类,以表示所述待检测代码的语句结点。4.根据权利要求1所述的方法,其特征在于,所述对所述数据信息进行数据流分析,得到所述待检测代码的语义信息,包括:调用数据流分析器,遍历所述抽象语法树,得到所述控制流图多个节点的传递函数以及对应的输入数据值;通过对所述待检测代码进行语义分析,将所述控制流图中各传递函数的输入数据值更新为输出数据值;循环执行所述调用数据流分析器,遍历所述抽象语法树,得到所述控制流图多个节点的传递函数以及对应的输入数据值,以及所述通过对所述待检测代码进行语义分析,将各传递函数的输入数据值更新为输出数据值的步骤数次;对更新后的控制流图进行语义提取,得到所述待检测代码的语义信息,所述语义信息至少包括指针别名信息和变量或对象状态信息。5.根据权利要求1所述的方法,其特征在于,所述按照预设的安全规则,对所述数据信息和/或所述语义信息进行匹配检测,确定所述待检测代码的检测结果,包括:遍历路径列表中的各路径中的各节点,其中所述路径列表是...

【专利技术属性】
技术研发人员:陆骁
申请(专利权)人:康键信息技术深圳有限公司
类型:发明
国别省市:

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

1