[发明专利]一种基于抽象语法树的全局变量多处赋值异常检测方法在审
申请号: | 202111254179.X | 申请日: | 2021-10-27 |
公开(公告)号: | CN114115889A | 公开(公告)日: | 2022-03-01 |
发明(设计)人: | 庞存辰;靳争;孙弘扬;沈杰;方霞;李勇 | 申请(专利权)人: | 中国航发控制系统研究所 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06Q10/06 |
代理公司: | 南京苏高专利商标事务所(普通合伙) 32204 | 代理人: | 柏尚春 |
地址: | 214063 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 抽象 语法 全局变量 赋值 异常 检测 方法 | ||
1.一种基于抽象语法树的全局变量多处赋值异常检测方法,其特征在于,包括以下步骤:
(1)设置异常场景规则及风险等级;
(2)设置配置信息,描述当前控制软件中的速率组信息;
(3)将C语言编码的控制软件源代码转换为抽象语法树;
(4)从抽象语法树中提取控制软件源代码中的函数定义实现及函数调用的相关信息;
(5)根据异常场景定义,检测符合异常场景定义的软件代码信息;
(6)显形符合异常场景定义的软件代码信息。
2.根据权利要求1所述的一种基于抽象语法树的全局变量多处赋值异常检测方法,其特征在于,步骤(2)中所述的速率组信息包括有哪些不同的速率组、各个速率组的名称及优先级、各个速率组的顶层入口函数名称集合。
3.根据权利要求1所述的一种基于抽象语法树的全局变量多处赋值异常检测方法,其特征在于,步骤(5)和(6)中所述的软件信息包括相关的函数名称、变量名称。
4.根据权利要求1所述的一种基于抽象语法树的全局变量多处赋值异常检测方法,其特征在于,所述步骤(1)包括以下步骤:
(1.1)在某一速率任务中对某个全局变量进行了多处赋值,且在更高速率组的函数中使用该全局变量作为函数输入;风险等级为高;
(1.2)在某一速率任务中对某个全局变量进行了多处赋值,且未在更高速率组的函数中使用该全局变量作为函数输入;风险等级为低;
(1.3)在不同速率组中的不同函数均对同一个全局变量进行赋值;风险等级为高;
(1.4)函数对某个全局变量进行了赋值,且该函数在两个或者两个以上不同的速率组中运行;风险等级为高。
5.根据权利要求1所述的一种基于抽象语法树的全局变量多处赋值异常检测方法,其特征在于,所述步骤(2)包括以下步骤:
(2.1)速率组的优先级,采用0表示初始化任务,1表示最低优先级的运行时任务,2表示次低优先级的运行时任务,以此类推,数字值越大表示的优先级越高;
(2.2)速率组名称,即当前速率组任务的描述;
(2.3)速率组入口函数集合,若存在多个不同的入口函数时,函数名称在配置文件中出现的先后顺序表示当前速率组内各个入口函数的先后运行顺序。
6.根据权利要求1所述的一种基于抽象语法树的全局变量多处赋值异常检测方法,其特征在于,所述步骤(4)中从抽象语法树中提取以下相关信息:
(4.1)控制软件中所有函数名称的集合,及函数的相互调用关系;
(4.2)读取速率组配置中的速率组入口函数信息,从入口函数开始,依据语法树,通过深度遍历,获取每个入口函数下调用了哪些其他函数,即获取到每个函数与速率组的映射关系;
(4.3)从语法树中提取变量在函数内部的赋值信息;
(4.4)从语法树中提取函数的全局输入变量集合;
(4.5)从语法树中提取函数的全局输出变量集合。
7.一种计算机存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-6中任一项所述的一种基于抽象语法树的全局变量多处赋值异常检测方法。
8.一种计算机设备,包括储存器、处理器及存储在存储器上并可再处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-6中任一项所述的一种基于抽象语法树的全局变量多处赋值异常检测方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国航发控制系统研究所,未经中国航发控制系统研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111254179.X/1.html,转载请声明来源钻瓜专利网。