一种基于程序流图的PLC代码漏洞检测方法和系统技术方案

技术编号:42373232 阅读:29 留言:0更新日期:2024-08-16 14:56
本发明专利技术公开了一种基于程序流图的PLC代码漏洞检测方法和系统,所述方法包括:S1、对源代码进行预处理;S2、进行词法分析,将源代码转换成词法单元序列,记为Token流;S3、将Token流进行语法分析以分解成若干个语法单元,构建得到抽象语法树;S4、依据抽象语法树生成代码的整体控制流图;S5、依据整体控制流图遍历词法单元序列生成每个节点的活跃变量,以生成代码的整体数据流图;S6、结合整体控制流图和整体数据流图,针对各个漏洞的活跃变量,得到与待检测漏洞关联的程序流图;S7、依据程序流图和具体PLC漏洞库,进行漏洞检测。本发明专利技术能够快速检测出现场级的复杂结构项目,适用范围更广;效率和准确率高。

【技术实现步骤摘要】

本专利技术涉及plc,具体涉及一种基于程序流图的plc代码漏洞检测方法和系统。


技术介绍

1、可编程逻辑控制器plc(programmable logic controller)是一种数字化电子设备,可以用于控制生产过程中的机器和设备。与传统的电气控制系统相比,plc具有更高的可编程性和灵活性,使得它在工业生产中得到了广泛应用。plc控制系统由于厂家的不同而存在检测通用性的不足,针对这种问题,iec 61131-3标准被提出,该标准为plc系统提供语言标准,降低差异性提高通用性。iec 61131-3提出了五种plc的标准编程语言,其中有3种图形语言:梯形图、功能块图和顺序功能图;两种文本语言:语句表stl(standard templatelibrary)和指令表。我们一般对stl语言进行分析检测,主要原因是stl语言能应用于s7、s5等系列plc并且更接近底层语言,直接操作寄存器,执行效率高。

2、以西门子s7系列plc作为研究对象,需要step7为编译环境及自动化、电路等知识。为实现控制系统目标,工业人员对plc系统程序的正确性与合理性有本文档来自技高网...

【技术保护点】

1.一种基于程序流图的PLC代码漏洞检测方法,其特征在于,包括步骤如下:

2.根据权利要求1所述的基于程序流图的PLC代码漏洞检测方法,其特征在于,步骤S1具体包括:

3.根据权利要求1所述的基于程序流图的PLC代码漏洞检测方法,其特征在于,步骤S2具体包括:

4.根据权利要求3所述的基于语法分析与程序流图的PLC代码漏洞检测方法,其特征在于,步骤S2.2中,识别过程通过若干个正则表达式来实现,词法分析器检查每个读入的字符是否匹配其中某个正则表达式,从而确定它所属的词法单元类型。

5.根据权利要求1所述的基于程序流图的PLC代码漏洞检测方法...

【技术特征摘要】

1.一种基于程序流图的plc代码漏洞检测方法,其特征在于,包括步骤如下:

2.根据权利要求1所述的基于程序流图的plc代码漏洞检测方法,其特征在于,步骤s1具体包括:

3.根据权利要求1所述的基于程序流图的plc代码漏洞检测方法,其特征在于,步骤s2具体包括:

4.根据权利要求3所述的基于语法分析与程序流图的plc代码漏洞检测方法,其特征在于,步骤s2.2中,识别过程通过若干个正则表达式来实现,词法分析器检查每个读入的字符是否匹配其中某个正则表达式,从而确定它所属的词法单元类型。

5.根据权利要求1所述的基于程序流图的plc代码漏洞检测方法,其特征在于,步骤s3具体包括:

6.根据权利要求5所述的基于程序流图...

【专利技术属性】
技术研发人员:廖雪超李涛孟航宇罗运豪彭睿张衍昕
申请(专利权)人:武汉科技大学
类型:发明
国别省市:

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

1