[发明专利]静态代码检测方法和静态代码检测系统、存储设备有效
申请号: | 201810637058.5 | 申请日: | 2018-06-20 |
公开(公告)号: | CN108897678B | 公开(公告)日: | 2021-10-15 |
发明(设计)人: | 杨学红 | 申请(专利权)人: | 中国联合网络通信集团有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京天昊联合知识产权代理有限公司 11112 | 代理人: | 彭瑞欣;罗瑞芝 |
地址: | 100033 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 静态 代码 检测 方法 系统 存储 设备 | ||
1.一种静态代码检测方法,其特征在于,包括步骤:
对静态代码进行处理,提取变量信息,建立相关变量集合;其中,通过变量关联或别名分析,将赋值语句或函数调用产生的不同形式的变量归类在一起;
根据可能产生缺陷的变量进行缺陷归类,建立缺陷集,所述缺陷集至少包括一个缺陷子集,每一所述缺陷子集包括一个与变量相关的根节点缺陷;
根据所述缺陷子集中所述根节点缺陷的误报状况,确认缺陷;
其中,建立缺陷集的步骤包括:将具有依赖性的变量可能引起的相关缺陷归为一类,建立同类缺陷子集,多个所述缺陷子集形成所述缺陷集;其中,确认缺陷的步骤包括:根据缺陷关联性进行缺陷误报确认,若所述缺陷子集中根节点缺陷为误报,则所述缺陷子集中与所述根节点缺陷相关的所有缺陷均为误报;并且,确认缺陷的步骤还包括:若所述缺陷子集中根节点缺陷并非为误报,则向下追溯所述缺陷子集的中间节点,若某一所述中间节点缺陷为误报,则所述缺陷子集中与所述中间节点缺陷向下相关的所有缺陷均为误报;否则,确认所述缺陷子集中不存在缺陷。
2.根据权利要求1所述的静态代码检测方法,其特征在于,建立相关变量集合的步骤包括:
对静态代码进行词法分析、语义处理;
根据与变量名相关的名称,建立所述相关变量集合。
3.根据权利要求2所述的静态代码检测方法,其特征在于,对静态代码进行词法分析为:采用自动化业务流程组合语言进行分析,得到一个文档对象模型树,基于该文档对象模型树生成控制流图;
语义处理为:在所述控制流图的基础上生成定义使用链。
4.根据权利要求2所述的静态代码检测方法,其特征在于,建立相关变量集合的步骤还包括:根据与变量名相关名称的赋值函数或函数调用关系,进行别名分析,建立所述相关变量集合。
5.一种静态代码检测系统,其特征在于,包括变量提取模块、缺陷归类模块和确认模块,其中:
所述变量提取模块,配置为对静态代码进行处理,提取变量信息,建立相关变量集合;其中,通过变量关联或别名分析,将赋值语句或函数调用产生的不同形式的变量归类在一起;
所述缺陷归类模块,配置为根据可能产生缺陷的变量进行缺陷归类,建立缺陷集,所述缺陷集至少包括一个缺陷子集,每一所述缺陷子集包括一个与变量相关的根节点缺陷;
所述确认模块,配置为根据所述缺陷子集中所述根节点缺陷的误报状况,确认缺陷;其中,所述缺陷归类模块具体用于:将具有依赖性的变量可能引起的相关缺陷归为一类,建立同类缺陷子集,多个所述缺陷子集形成所述缺陷集;其中,所述确认模块具体用于:根据缺陷关联性进行缺陷误报确认,若所述缺陷子集中根节点缺陷为误报,则所述缺陷子集中与所述根节点缺陷相关的所有缺陷均为误报;并且,所述确认模块还用于:若所述缺陷子集中根节点缺陷并非为误报,则向下追溯所述缺陷子集的中间节点,若某一所述中间节点缺陷为误报,则所述缺陷子集中与所述中间节点缺陷向下相关的所有缺陷均为误报;否则,确认所述缺陷子集中不存在缺陷。
6.根据权利要求5所述的静态代码检测系统,其特征在于,所述变量提取模块包括分析处理单元和集合单元,其中:
所述分析处理单元中,用于对静态代码进行词法分析、语义处理;
所述集合单元,用于根据与变量名相关的程序语句的赋值或函数调用关系,进行别名分析,建立变量集合;
所述缺陷归类模块包括建模单元,所述建模单元用于将具有依赖性的变量可能引起的相关缺陷归为一类,建立同类缺陷子集,多个所述缺陷子集形成所述缺陷集。
7.一种存储设备,其中存储有多条指令,其特征在于,所述指令加载并执行如下功能:
对静态代码进行处理,提取变量信息,建立相关变量集合;其中,通过变量关联或别名分析,将赋值语句或函数调用产生的不同形式的变量归类在一起;
根据可能产生缺陷的变量进行缺陷归类,建立缺陷集,所述缺陷集至少包括一个缺陷子集,每一所述缺陷子集包括一个与变量相关的根节点缺陷;
根据所述缺陷子集中所述根节点缺陷的误报状况,确认缺陷;其中,建立缺陷集的步骤包括:将具有依赖性的变量可能引起的相关缺陷归为一类,建立同类缺陷子集,多个所述缺陷子集形成所述缺陷集;其中,确认缺陷的步骤包括:根据缺陷关联性进行缺陷误报确认,若所述缺陷子集中根节点缺陷为误报,则所述缺陷子集中与所述根节点缺陷相关的所有缺陷均为误报;并且,确认缺陷的步骤还包括:若所述缺陷子集中根节点缺陷并非为误报,则向下追溯所述缺陷子集的中间节点,若某一所述中间节点缺陷为误报,则所述缺陷子集中与所述中间节点缺陷向下相关的所有缺陷均为误报;否则,确认所述缺陷子集中不存在缺陷。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国联合网络通信集团有限公司,未经中国联合网络通信集团有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810637058.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:日志构建方法和系统
- 下一篇:一种部署服务器操作系统测试环境的方法及系统