CN116841243A - 一种智能化plc协议格式推断方法、模糊测试方法及装置 - Google Patents
一种智能化plc协议格式推断方法、模糊测试方法及装置 Download PDFInfo
- Publication number
- CN116841243A CN116841243A CN202310723248.XA CN202310723248A CN116841243A CN 116841243 A CN116841243 A CN 116841243A CN 202310723248 A CN202310723248 A CN 202310723248A CN 116841243 A CN116841243 A CN 116841243A
- Authority
- CN
- China
- Prior art keywords
- protocol
- response
- plc
- tree
- bytes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000010998 test method Methods 0.000 title abstract description 13
- 230000004044 response Effects 0.000 claims abstract description 109
- 238000012360 testing method Methods 0.000 claims abstract description 88
- 238000004891 communication Methods 0.000 claims abstract description 17
- 230000003993 interaction Effects 0.000 claims abstract description 7
- 238000009825 accumulation Methods 0.000 claims abstract description 5
- 230000006870 function Effects 0.000 claims description 13
- 230000035772 mutation Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/054—Input/output
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/13—Plc programming
- G05B2219/13142—Debugging, tracing
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于协议格式推断的智能化PLC模糊测试方法、模糊测试方法及装置,包括S1:通过上位机软件与PLC交互获取通信协议;S2:选取通信协议,进行单字节的确定性变异后发送给PLC;S3:接收PLC返回的响应协议,按字节顺序保存为协议树;S4:将确定性变异的字节与之后的字节逐个累加在一起再次进行确定性变异,并将测试用例发送给PLC;S5:接收PLC返回的协议,并逐个加入所述协议树中,如果响应协议是独特的,则认为响应协议有价值;S6:如果累加一定数量的字节仍然没有出现有价值的响应,则反方向重复S2到S5。模糊测试方法包括将S1到S6得到的协议格式,用于生成测试用例并进行模糊测试。本申请的方法降低了对协议格式的依赖,并提高了测试效率。
Description
技术领域
本申请涉及工业控制系统安全领域,尤其涉及一种智能化PLC协议格式推断方法、模糊测试方法及装置。
背景技术
工控协议是一种二进制协议并且由于工控设备的私有性,绝大多数厂家并不公开协议的格式。倘若不按照协议格式进行随机变异,生成的测试用例大多是无法成功通过系统的语法检测的。现有工作对于协议格式的推断大多通过协议逆向,但是协议逆向耗费的时间成本和人力资源是巨大的,且需要大量的专家知识作为前提,并且协议逆向作为一项手工技术是无法做到可延展和自动化的。
模糊测试是一种软件测试技术。其核心思想是将自动或半自动生成的随机数据输入到一个程序中,并监视程序异常,如崩溃,以发现可能的程序错误。协议模糊测试是指以协议交互作为测试手段,生成与所选协议规则相符合的协议,即测试用例,通过向被测对象发送测试用例来进行模糊测试,以发现被测设备固件中可能存在的bug。
然后,针对PLC协议模糊测试存在着以下两点局限:(1)没有固定的语法结构,大部分PLC的协议结构都是各不相同的,在语法结构上存在较大的差异性;即使在同一个协议中,也存在大量不同的功能码,不同功能码之间的语法结构同样具有较大差异。(2)大部分专有协议并不公开格式,并且协议格式较为复杂,如果生成的测试用例无法满足语法检测,那么无法正常被系统接收。通常可以通过设计生成模型来解决此类问题,但由于格式位置难以设计对应的语法模型来生成测试用例。
发明内容
本申请实施例的目的是提供一种智能化PLC协议格式推断方法、模糊测试方法及装置,以解决现有技术中由于无法获取格式而导致生成的测试用例大多是无效的问题、以及模糊测试效率低的问题。本申请在仅获得部分初始协议作为输入的条件下,可实现对PLC的高效模糊测试。
根据本申请实施例的第一方面,提供一种基于响应信息的智能化PLC协议格式推断方法,包括;
S1:通过上位机软件与PLC交互获取涵盖所有功能的通信协议作为初始种子库;
S2:从所述初始种子库中依次选取通信协议,按照固定的变异策略,先进行单字节的确定性变异生成第一测试用例,并将所述第一测试用例发送给PLC;
S3:响应于所述第一测试用例,接收PLC返回的第一响应协议,将所述第一响应协议按字节顺序以树的数据结构保存为协议树;
S4:将进行单字节确定性变异后的字节与之后的字节逐个累加在一起再次进行确定性变异,生成第二测试用例,并将所述第二测试用例发送给PLC;
S5:响应于所述第二测试用例,接收PLC返回的第二响应协议,将所述第二响应协议逐个加入所述协议树中,如果某一条第二响应协议在所述协议树中添加了新的节点,或者某一条第二响应协议并不存在于所述协议树中,则认为该第二响应协议是有价值的;
S6:如果累加的字节变异后产生了有价值的响应,则说明此字节与之前的字节语义不同,在此处对协议格式进行划分;如果累加一定数量的字节仍然没有出现有价值的响应,则按照相反的方向再次累加字节,重复S2到S5。
可选的,所述固定的变异策略包括bit flip、Arithmetic、interesting value。
可选的,将所述第一响应协议按字节顺序以树的数据结构保存为协议树,包括:
树的根节点只作为起点,不储存所述第一响应协议的内容;
每个树的节点储存所述第一响应协议的一个字节,同时包含一个计数器。
根据本申请实施例的第二方面,提供一种基于响应信息的智能化PLC协议格式推断装置,包括;
获取模块,用于通过上位机软件与PLC交互获取涵盖所有功能的通信协议作为初始种子库;
第一生成模块,用于从所述初始种子库中依次选取通信协议,按照固定的变异策略,先进行单字节的确定性变异生成第一测试用例,并将所述第一测试用例发送给PLC;
保存模块,用于响应于所述第一测试用例,接收PLC返回的第一响应协议,将所述第一响应协议按字节顺序以树的数据结构保存为协议树;
第二生成模块,用于将进行单字节确定性变异后的字节与之后的字节逐个累加在一起再次进行确定性变异,生成第二测试用例,并将所述第二测试用例发送给PLC;
第一判断模块,用于响应于所述第二测试用例,接收PLC返回的第二响应协议,将所述第二响应协议逐个加入所述协议树中,如果某一条第二响应协议在所述协议树中添加了新的节点,或者某一条第二响应协议并不存在于所述协议树中,则认为该第二响应协议是有价值的;
第二判断模块,用于如果累加的字节变异后产生了有价值的响应,则说明此字节与之前的字节语义不同,在此处对协议格式进行划分;如果累加一定数量的字节仍然没有出现有价值的响应,则按照相反的方向再次累加字节,重复第一生成模块到第一判断模块。
根据本申请实施例的第三方面,提供一种模糊测试方法,包括:
执行第一方面所述的基于响应信息的智能化PLC协议格式推断方法;
对协议格式进行划分后,得到每条协议中不同语义的各个字段的边界位置,以边界位置作为单位进行变异,生成测试用例,向被测对象发送所述测试用例来进行模糊测试。
根据本申请实施例的第四方面,提供一种模糊测试装置,包括:
执行模块,用于执行第一方面所述的基于响应信息的智能化PLC协议格式推断方法;
测试模块,用于对协议格式进行划分后,得到每条协议中不同语义的各个字段的边界位置,以边界位置作为单位进行变异,生成测试用例,向被测对象发送所述测试用例来进行模糊测试。
根据本申请实施例的第五方面,提供一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的方法。
根据本申请实施例的第六方面,提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第一方面所述方法的步骤。
本申请的实施例提供的技术方案可以包括以下有益效果:
本申请采用基于响应信息的智能推断方法,克服二进制私有协议格式未知的局限性,进而使得模糊测试能够产生更多符合语法要求的输入,提高了模糊测试的漏洞挖掘效率。
采用协议树的存储结构,克服存储协议所造成的空间资源浪费,进而便于比对协议的独特性,同时能够建立协议和请求一一对应的关系,为漏洞复现提供便利。
采用了正向推理后再进行一次反向推理的方法,克服变异功能码导致响应太过丰富而产生的误差,进而能够得到更为精确的格式划分。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是根据一示例性实施例示出的一种基于响应信息的智能化PLC协议格式推断方法的流程图。
图2是根据一示例性实施例示出的一种基于响应信息的智能化PLC协议格式推断装置的框图。
图3是根据一示例性实施例示出的一种模糊测试方法的流程图。
图4是根据一示例性实施例示出的一种模糊测试装置框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
图1是根据一示例性实施例示出的一种基于响应信息的智能化PLC协议格式推断方法的流程图,如图1所示,该方法可以包括以下步骤:
S1:通过上位机软件与PLC交互获取涵盖所有功能的通信协议作为初始种子库;
S2:从所述初始种子库中依次选取通信协议,按照固定的变异策略,先进行单字节的确定性变异生成第一测试用例,并将所述第一测试用例发送给PLC;
S3:响应于所述第一测试用例,接收PLC返回的第一响应协议,将所述第一响应协议按字节顺序以树的数据结构保存为协议树;
S4:将进行单字节确定性变异后的字节与之后的字节逐个累加在一起再次进行确定性变异,生成第二测试用例,并将所述第二测试用例发送给PLC;
S5:响应于所述第二测试用例,接收PLC返回的第二响应协议,将所述第二响应协议逐个加入所述协议树中,如果某一条第二响应协议在所述协议树中添加了新的节点,或者某一条第二响应协议并不存在于所述协议树中,则认为该第二响应协议是有价值的;
S6:如果累加的字节变异后产生了有价值的响应,则说明此字节与之前的字节语义不同,在此处对协议格式进行划分;如果累加一定数量的字节仍然没有出现有价值的响应,则按照相反的方向再次累加字节,重复S2到S5。
由上述实施例可知,本申请通过累加字节共同变异的方式,将搜集到的响应进行比对,观察是否出现独特响应来判断累加的字节语义是否相同,进而推断协议格式,相较于最近的协议逆向工具,本方案针对二进制私有协议的效果是更优秀的,同时相较于文本协议格式推断工具,本方案专门为二进制协议设计,效果同样更好。
在S1的具体实施中:通过上位机软件与PLC交互获取涵盖所有功能的通信协议作为初始种子库;
具体地,初始种子的来源应是通过上位机软件交互得到的真实的PLC通信协议,使用其它内容作为初始种子,例如内容为全0的协议可能会降低格式推断的准确性。
在S2的具体实施中:从所述初始种子库中依次选取通信协议,按照固定的变异策略,先进行单字节的确定性变异生成第一测试用例,并将所述第一测试用例发送给PLC;
具体地,从种子库中先选取一条请求协议,并从第一个字节开始进行确定性变异。这样做的目的是为了产生初始的协议树,确定性变异要经过足够的次数以确保协议树的规模,这样后续的格式推断所判断的响应的独特性才合理,如果协议树规模太小,响应可能并非特别独特,那么格式推断就会出现误差。
确定性变异的策略包括以下几种:
bitflip:翻转种子中的字节。
Arithmetic:对种子中的某个字节加减一定的数值。
Interestingvalue:使用特定的数值替换种子中的某个字节。
确定性变异从种子的头部开始,逐字节应用上述策略。
在S3的具体实施中:响应于所述第一测试用例,接收PLC返回的第一响应协议,将所述第一响应协议按字节顺序以树的数据结构保存为协议树;
具体地,其中将所述第一响应协议按字节顺序以树的数据结构保存为协议树,包括:
树的根节点只作为起点,不储存所述第一响应协议的内容,这是由于响应的首个字节可能是状态码,用于判断请求是否有效,根节点只有一个无法用于存储不同的状态码;
每个树的节点储存所述第一响应协议的一个字节,同时包含一个计数器,主要用于记录经过该节点的协议数量;同时记录节点的高度,由于响应字节的前后位置重要性是不同的,因此高度越高的位置出现了新的节点,越能说明响应的独特性,这样有利于格式推断的精确性。
在S4的具体实施中:将进行单字节确定性变异后的字节与之后的字节逐个累加在一起再次进行确定性变异,生成第二测试用例,并将所述第二测试用例发送给PLC;
第一次确定性变异只针对请求中某一个字节进行,为了确定其他字节的语义是否与此字节相同,因此采取向后累加字节共同变异来推断格式的方法,共同变异的最大步长为5,因为共同变异的字节如果太多,产生的响应过于庞大,将协议便利协议树的时间会很长,降低了格式推断的效率。
在S5的具体实施中:响应于所述第二测试用例,接收PLC返回的第二响应协议,将所述第二响应协议逐个加入所述协议树中,如果某一条第二响应协议在所述协议树中添加了新的节点,或者某一条第二响应协议并不存在于所述协议树中,则认为该第二响应协议是有价值的;
由于响应和请求在语义上存在相关性,那么如果不同字节共同变异,产生的响应出现较大的差异性或者独特性,就能够说明同时变异的字节语义上是不同的,协议的格式就是将语义不同的字节进行划分,因此推断出语义是否相同就等同于推断出协议格式。
在S6的具体实施中:如果累加的字节变异后产生了有价值的响应,则说明此字节与之前的字节语义不同,在此处对协议格式进行划分;如果累加一定数量的字节仍然没有出现有价值的响应,则按照相反的方向再次累加字节,重复S2到S5。
由于功能码的存在过于特殊,单字节变异功能码会产生非常丰富的响应以至于后续累加字节一起变异也很难产生较为独特的响应,但是功能码的语义与任何其他字节都是不同的,因此仅仅采用正序的方法是有误差的,为了消除这种误差采用正序进行5个字节的步长后再倒序验证的方式。
与前述的基于响应信息的智能化PLC协议格式推断方法的实施例相对应,本申请还提供了基于响应信息的智能化PLC协议格式推断装置的实施例。
图2是根据一示例性实施例示出的一种基于响应信息的智能化PLC协议格式推断装置框图。参照图2,该装置包括:
获取模块1,用于通过上位机软件与PLC交互获取涵盖所有功能的通信协议作为初始种子库;
第一生成模块2,用于从所述初始种子库中依次选取通信协议,按照固定的变异策略,先进行单字节的确定性变异生成第一测试用例,并将所述第一测试用例发送给PLC;
保存模块3,用于响应于所述第一测试用例,接收PLC返回的第一响应协议,将所述第一响应协议按字节顺序以树的数据结构保存为协议树;
第二生成模块4,用于将进行单字节确定性变异后的字节与之后的字节逐个累加在一起再次进行确定性变异,生成第二测试用例,并将所述第二测试用例发送给PLC;
第一判断模块5,用于响应于所述第二测试用例,接收PLC返回的第二响应协议,将所述第二响应协议逐个加入所述协议树中,如果某一条第二响应协议在所述协议树中添加了新的节点,或者某一条第二响应协议并不存在于所述协议树中,则认为该第二响应协议是有价值的;
第二判断模块6,用于如果累加的字节变异后产生了有价值的响应,则说明此字节与之前的字节语义不同,在此处对协议格式进行划分;如果累加一定数量的字节仍然没有出现有价值的响应,则按照相反的方向再次累加字节,重复第一生成模块到第一判断模块。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图3是根据一示例性实施例示出的一种模糊测试方法的流程图,如图3所示,该方法可以包括:
S21:执行上述的基于响应信息的智能化PLC协议格式推断方法;
S22:对协议格式进行划分后,得到每条协议中不同语义的各个字段的边界位置,以边界位置作为单位进行变异,生成测试用例,向被测对象发送所述测试用例来进行模糊测试。
这里的S21中提及的基于响应信息的智能化PLC协议格式推断方法包括上述的S1-S6,这里不做赘述。
与前述的模糊测试方法的实施例相对应,本申请还提供了模糊测试装置的实施例。
图4是根据一示例性实施例示出的一种模糊测试装置框图。参照图4,该装置包括:
执行模块21,用于执行第一方面所述的基于响应信息的智能化PLC协议格式推断方法;
测试模块22,用于对协议格式进行划分后,得到每条协议中不同语义的各个字段的边界位置,以边界位置作为单位进行变异,生成测试用例,向被测对象发送所述测试用例来进行模糊测试。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
相应的,本申请还提供一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述的基于响应信息的智能化PLC协议格式推断方法或模糊测试方法。
相应的,本申请还提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如上述的基于响应信息的智能化PLC协议格式推断方法或模糊测试方法。
本领域技术人员在考虑说明书及实践这里公开的内容后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (10)
1.一种基于响应信息的智能化PLC协议格式推断方法,其特征在于,包括:
S1:通过上位机软件与PLC交互获取涵盖所有功能的通信协议作为初始种子库;
S2:从所述初始种子库中依次选取通信协议,按照固定的变异策略,先进行单字节的确定性变异生成第一测试用例,并将所述第一测试用例发送给PLC;
S3:响应于所述第一测试用例,接收PLC返回的第一响应协议,将所述第一响应协议按字节顺序以树的数据结构保存为协议树;
S4:将进行单字节确定性变异后的字节与之后的字节逐个累加在一起再次进行确定性变异,生成第二测试用例,并将所述第二测试用例发送给PLC;
S5:响应于所述第二测试用例,接收PLC返回的第二响应协议,将所述第二响应协议逐个加入所述协议树中,如果某一条第二响应协议在所述协议树中添加了新的节点,或者某一条第二响应协议并不存在于所述协议树中,则认为该第二响应协议是有价值的;
S6:如果累加的字节变异后产生了有价值的响应,则说明此字节与之前的字节语义不同,在此处对协议格式进行划分;如果累加一定数量的字节仍然没有出现有价值的响应,则按照相反的方向再次累加字节,重复S2到S5。
2.根据权利要求1所述的方法,其特征在于,所述固定的变异策略包括bit flip、Arithmetic、interestingvalue。
3.根据权利要求1所述的方法,其特征在于,将所述第一响应协议按字节顺序以树的数据结构保存为协议树,包括:
树的根节点只作为起点,不储存所述第一响应协议的内容;
每个树的节点储存所述第一响应协议的一个字节,同时包含一个计数器。
4.一种基于响应信息的智能化PLC协议格式推断装置,其特征在于,包括;
获取模块,用于通过上位机软件与PLC交互获取涵盖所有功能的通信协议作为初始种子库;
第一生成模块,用于从所述初始种子库中依次选取通信协议,按照固定的变异策略,先进行单字节的确定性变异生成第一测试用例,并将所述第一测试用例发送给PLC;
保存模块,用于响应于所述第一测试用例,接收PLC返回的第一响应协议,将所述第一响应协议按字节顺序以树的数据结构保存为协议树;
第二生成模块,用于将进行单字节确定性变异后的字节与之后的字节逐个累加在一起再次进行确定性变异,生成第二测试用例,并将所述第二测试用例发送给PLC;
第一判断模块,用于响应于所述第二测试用例,接收PLC返回的第二响应协议,将所述第二响应协议逐个加入所述协议树中,如果某一条第二响应协议在所述协议树中添加了新的节点,或者某一条第二响应协议并不存在于所述协议树中,则认为该第二响应协议是有价值的;
第二判断模块,用于如果累加的字节变异后产生了有价值的响应,则说明此字节与之前的字节语义不同,在此处对协议格式进行划分;如果累加一定数量的字节仍然没有出现有价值的响应,则按照相反的方向再次累加字节,重复第一生成模块到第一判断模块。
5.根据权利要求4所述的装置,其特征在于,所述固定的变异策略包括bit flip、Arithmetic、interestingvalue。
6.根据权利要求4所述的装置,其特征在于,将所述第一响应协议按字节顺序以树的数据结构保存为协议树,包括:
树的根节点只作为起点,不储存所述第一响应协议的内容;
每个树的节点储存所述第一响应协议的一个字节,同时包含一个计数器。
7.一种模糊测试方法,其特征在于,包括:
执行权利要求1所述的基于响应信息的智能化PLC协议格式推断方法;
对协议格式进行划分后,得到每条协议中不同语义的各个字段的边界位置,以边界位置作为单位进行变异,生成测试用例,向被测对象发送所述测试用例来进行模糊测试。
8.一种模糊测试装置,其特征在于,包括:
执行模块,用于执行权利要求1所述的基于响应信息的智能化PLC协议格式推断方法;
测试模块,用于对协议格式进行划分后,得到每条协议中不同语义的各个字段的边界位置,以边界位置作为单位进行变异,生成测试用例,向被测对象发送所述测试用例来进行模糊测试。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-3、7任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现如权利要求1-3、7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310723248.XA CN116841243B (zh) | 2023-06-19 | 2023-06-19 | 一种智能化plc协议格式推断方法、模糊测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310723248.XA CN116841243B (zh) | 2023-06-19 | 2023-06-19 | 一种智能化plc协议格式推断方法、模糊测试方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116841243A true CN116841243A (zh) | 2023-10-03 |
CN116841243B CN116841243B (zh) | 2024-01-09 |
Family
ID=88171704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310723248.XA Active CN116841243B (zh) | 2023-06-19 | 2023-06-19 | 一种智能化plc协议格式推断方法、模糊测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116841243B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0586811A1 (en) * | 1992-08-10 | 1994-03-16 | Ingersoll-Rand Company | Monitoring and control of fluid driven tools |
CN107241226A (zh) * | 2017-06-29 | 2017-10-10 | 北京工业大学 | 基于工控私有协议的模糊测试方法 |
CN110597734A (zh) * | 2019-09-23 | 2019-12-20 | 电子科技大学 | 一种适用于工控私有协议的模糊测试用例生成方法 |
KR102185379B1 (ko) * | 2020-01-21 | 2020-12-01 | 한국과학기술원 | 호환되지 않는 IoT 프로토콜 업데이트를 위한 런타임 메시지 추론 장치 및 방법 |
CN112395209A (zh) * | 2021-01-21 | 2021-02-23 | 博智安全科技股份有限公司 | 工控协议模糊测试用例生成方法、装置、设备及存储介质 |
CN112769654A (zh) * | 2021-01-21 | 2021-05-07 | 国网河南省电力公司电力科学研究院 | 一种基于遗传算法的Modbus TCP协议模糊测试方法 |
CN114063606A (zh) * | 2022-01-13 | 2022-02-18 | 浙江大学 | Plc协议模糊测试方法及装置、电子设备、存储介质 |
WO2022247738A1 (zh) * | 2021-05-24 | 2022-12-01 | 国网湖北电力有限公司电力科学研究院 | 一种基于模糊测试的电力物联网协议漏洞检测系统及方法 |
-
2023
- 2023-06-19 CN CN202310723248.XA patent/CN116841243B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0586811A1 (en) * | 1992-08-10 | 1994-03-16 | Ingersoll-Rand Company | Monitoring and control of fluid driven tools |
CN107241226A (zh) * | 2017-06-29 | 2017-10-10 | 北京工业大学 | 基于工控私有协议的模糊测试方法 |
CN110597734A (zh) * | 2019-09-23 | 2019-12-20 | 电子科技大学 | 一种适用于工控私有协议的模糊测试用例生成方法 |
KR102185379B1 (ko) * | 2020-01-21 | 2020-12-01 | 한국과학기술원 | 호환되지 않는 IoT 프로토콜 업데이트를 위한 런타임 메시지 추론 장치 및 방법 |
CN112395209A (zh) * | 2021-01-21 | 2021-02-23 | 博智安全科技股份有限公司 | 工控协议模糊测试用例生成方法、装置、设备及存储介质 |
CN112769654A (zh) * | 2021-01-21 | 2021-05-07 | 国网河南省电力公司电力科学研究院 | 一种基于遗传算法的Modbus TCP协议模糊测试方法 |
WO2022247738A1 (zh) * | 2021-05-24 | 2022-12-01 | 国网湖北电力有限公司电力科学研究院 | 一种基于模糊测试的电力物联网协议漏洞检测系统及方法 |
CN114063606A (zh) * | 2022-01-13 | 2022-02-18 | 浙江大学 | Plc协议模糊测试方法及装置、电子设备、存储介质 |
Non-Patent Citations (2)
Title |
---|
E. B. PRIYANKA: "《Online Monitoring and Control of Flow rate in Oil Pipelines Transportation System by using PLC based Fuzzy‐PID Controller》", 《FLOW MEASUREMENT AND INSTRUMENTATION》, pages 144 * |
田兴旺: "《PLC控制在内冷水水质监测系统中的应用》", 《自动化与仪器仪表》, pages 114 * |
Also Published As
Publication number | Publication date |
---|---|
CN116841243B (zh) | 2024-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107368408A (zh) | 一种面向接口的软件故障注入自动化测试方法 | |
US7167821B2 (en) | Evaluating hardware models having resource contention | |
Wells | Performance analysis using CPN tools | |
Tan et al. | Visual, log-based causal tracing for performance debugging of mapreduce systems | |
CN100487664C (zh) | 在并行计算机数据通信网络中定位硬件故障的方法和设备 | |
CN110489317A (zh) | 基于工作流的云系统任务运行故障诊断方法与系统 | |
CN111240876A (zh) | 微服务的故障定位方法、装置、存储介质及终端 | |
CN111694561A (zh) | 一种接口管理方法、装置、设备及存储介质 | |
CN114428728A (zh) | 信息物理测试协议处理系统及方法 | |
CN116841243B (zh) | 一种智能化plc协议格式推断方法、模糊测试方法及装置 | |
Miller | Dpm: A measurement system for distributed programs | |
CN108173711A (zh) | 企业内部系统数据交换监控方法 | |
CN102760085B (zh) | 通信轨迹扩展方法及装置、通信轨迹驱动模拟方法及系统 | |
CN114063606B (zh) | Plc协议模糊测试方法及装置、电子设备、存储介质 | |
CN116208438A (zh) | 动力电池系统上位机交互方法以及单体电压和/或温度的显示方法 | |
CN111459984B (zh) | 基于流式处理的日志数据处理系统及方法 | |
CN108334313A (zh) | 用于大型soc研发的持续集成方法、装置及代码管理系统 | |
CN102822806B (zh) | 检测应用的无进展状态 | |
CN111694752A (zh) | 应用测试方法、电子设备及存储介质 | |
CN105786865A (zh) | 一种检索系统故障分析方法及装置 | |
CN111865930B (zh) | 一种不间断电源字符类协议自动提取的方法 | |
CN107015909A (zh) | 基于代码变更分析的测试方法及装置 | |
CN113791922A (zh) | 一种分布式存储系统的异常处理方法、系统及装置 | |
Wang et al. | POWERLINK communication fault detection method based on data frames sequence analysis | |
CN117499380A (zh) | 一种自定义协议数据采集方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |