一种获取二进制协议数据中控制字段划分点的方法及装置制造方法

文档序号:7804148阅读:156来源:国知局
一种获取二进制协议数据中控制字段划分点的方法及装置制造方法
【专利摘要】本发明提供一种获取二进制协议数据中控制字段划分点的方法和装置,利用设置的每个词组宽度对各个待处理帧进行遍历扫描,分别得到比特位数与每个词组宽度的比特位数相同的词组;然后计算每个词组内容集合中每个词组重复出现的频率,从每个词组内容集合中选取重复出现频率大于预设频率的词组为关键词组;最后通过计算每个关键词组在待处理帧中的起始比特位和结束比特位的匹配计数值,由此可得待处理帧上每一比特位上的匹配计数值,选取待处理帧上符合划分条件的匹配计数值对应的比特位置作为字段的可能性划分点,实现以比特为单位获取二进制协议数据的控制字段划分点,以适用于基于二进制类型的协议数据控制字段划分。
【专利说明】一种获取二进制协议数据中控制字段划分点的方法及装置
【技术领域】
[0001]本发明涉及协议逆向分析【技术领域】,特别涉及一种获取二进制协议数据中控制字段划分点的方法及装置。
【背景技术】
[0002]协议是为进行网络数据交换而建立的一系列的规则、标准和约定,是计算机网络及数据通信的核心,也是网络安全领域的重点研究对象。当前许多网络安全相关的应用都以协议的详细描述信息为基础,如入侵检测、模糊测试、协议重用和一致性测试等。但由于目前使用的协议大部分都是私有协议,缺乏正式的描述文档,研究人员越来越多地采用协议逆向的手段实现协议信息的提取。
[0003]协议逆向工程是指在不依赖于协议描述的情况下,通过对协议实体的网络输入/输出、系统行为和指令执行流程进行监控和分析,提取协议文法、语法和语义的过程。一般来说,协议数据的字段分类粗略地可分为两大字段,一是控制字段,二是业务字段。控制字段的定义为后续业务字段的传输及解析提供规范,同步和缓冲。目前划分协议数据方法包括:多序列比对方法、Discoverer方案和基于统计方法的字段划分,其中基于统计方法的字段划分是目前适用于二进制协议数据的方法,其划分原理为:以字节为单位,借助字符定义,依靠字符定界,字符区分等等功能,辅助分析协议数据内各字节的取值范围,然后统计各字节的频率分布,由频率分布推断出关键词组,关键词组主要是协议数据中的控制字段,通过关键词组可以解析获取协议的控制字段规范,有效分离控制头与业务数据。
[0004]但是上述基于统计方法的字段划分主要以字节为单位,且依靠字符定义统计报文内容中各字节的频率分布来统计出关键词组,适用于基于字节或字符型的协议数据划分。然而二进制协议数据为连续的比特序列,对于字符定义是未知的,无法直接使用相关算法。因此急需一种获取二进制协议数据中控制字段划分点的方法,用于统计二进制协议数据中控制字段的划分点。

【发明内容】

[0005]有鉴于此,本发明实施例提供一种获取二进制协议数据中控制字段划分点的方法及装置,以比特为单位对二进制协议数据进行统计分析,得出二进制协议数据中控制字段的划分点,技术方案如下:
[0006]本发明实施例提供一种获取二进制协议数据中控制字段划分点的方法,包括:
[0007]设置以比特为单位的不同词组宽度以及每个所述词组宽度的词组内容集合,其中所述待处理帧为所述二进制协议数据,且为同一未知协议类型数据,所述词组宽度是指连续二进制数据序列的比特位数,所述词组宽度的取值范围包含第一阈值和第二阈值在内,且在第一阈值和第二阈值之间的正整数;
[0008]利用每个所述词组宽度对各个所述待处理帧进行遍历扫描,分别得到比特位数与每个所述词组宽度的比特位数相同的词组,并将得到的每个所述词组宽度的词组存储在每个所述词组宽度下所述词组内容集合中;
[0009]计算每个所述词组内容集合中每个所述词组重复出现的频率;
[0010]从每个所述词组内容集合中选取词组重复出现频率大于预设词频频率门限的词组为关键词组,并将关键词组记录在字典中,其中所述字典是所述关键词组的集合,在所述字典内的所述关键词组用于解析所述二进制协议数据;
[0011]计算每个所述关键词组在所述待处理帧中的起始比特位置的匹配计数值,以及每个所述关键词组在所述待处理帧中的结束比特位置的匹配计数值;
[0012]依据所述起始比特位置的匹配计数值和所述结束比特位置的匹配计数值,选取符合划分条件的匹配计数值对应的比特位置作为字段的可能性划分点,所述可能性划分点用于指示从所述可能性划分点开始解析所述二进制协议数据。
[0013]优选地,利用每个所述词组宽度对各个所述待处理帧进行遍历扫描,分别得到比特位数与每个所述词组宽度的比特位数相同的所述词组,包括:
[0014]利用每个所述词组宽度从各个所述待处理帧的第一位比特位扫描,得到比特位数与每个所述词组宽度的比特位数相同的词组;
[0015]在得到比特位数与所述词组宽度的比特位数相同的词组后,后移一位比特位以所述词组宽度扫描所述待处理帧直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数,以所述词组宽度每扫描一次得到一个比特位数与所述词组宽度的比特位数相同的词组。
[0016]优选地,计算每个所述词组内容集合中每个所述词组重复出现的频率,包括:
[0017]将以相同词组宽度扫描不同待处理帧得到的词组进行对比;
[0018]当以相同词组宽度扫描不同待处理帧得到的词组内容相同时,对内容相同的词组的频率加I。
[0019]优选地,计算每个所述关键词组在所述待处理帧中的起始比特位置的匹配计数值,以及每个所述关键词组在所述待处理帧中的结束比特位置的匹配计数值,包括:
[0020]以每个所述关键词组的比特位数为第一宽度单位从各个所述待处理帧的第一位比特位扫描,分别得到比特位数与所述关键词组的比特位数相同的第一词组;
[0021]如果所述第一词组的内容与对应的所述关键词组的内容相同,则将第一词组的起始比特位的匹配计数值加1,将所述第一词组的结束比特位的匹配计数值加1,并后移与所述第一宽度单位相同的比特位数继续扫描所述待处理帧,直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数,所述第一词组的开始比特位位置为所述关键词组的起始比特位位置,所述第一词组的结束比特位位置为所述关键词组的结束比特位位置;
[0022]如果所述第一词组的内容与对应的所述词组的内容不相同,则仅后移一位比特位,以所述第一宽度单位扫描所述待处理帧,直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数;
[0023]每扫描到待处理帧与所述关键词组的内容相同的第一词组,对所述第一词组的起始比特位位置和结束比特位位置的匹配计数值加I。
[0024]优选地,所述方法还包括:利用每个所述关键词组的比特位数对各个所述待处理帧进行后向扫描,分别得到每个所述关键词组在所述待处理帧中的起始比特位和结束比特位的匹配计数值,其中所述后向扫描得到关键词组在所述待处理帧中的起始比特位和结束比特位的匹配计数值的过程,包括:
[0025]以每个所述关键词组的比特位数为第二宽度单位从各个所述待处理帧的最后一个比特位向前扫描,分别得到比特位数与所述关键词组的比特位数相同的第二词组;
[0026]如果所述第二词组的内容与对应的所述关键词组的内容相同,则将所述第二词组的起始比特位位置的匹配计数值加1,将所述第二词组的结束比特位位置的匹配计数值加I,并前移与所述第二宽度单位相同的比特位数继续扫描所述待处理帧,直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数,所述第二词组的开始比特位为所述关键词组的开始比特位,所述第二词组的结束比特位为所述关键词组的结束比特位;
[0027]如果所述第二词组的内容与对应的所述关键词组的内容不相同,则前移一位比特位,以所述第二宽度单位扫描所述待处理帧,直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数;
[0028]每扫描到所述待处理帧中与所述关键词组的内容相同的第二词组,对所述第二词组的起始比特位和结束比特位的匹配计数值加I。
[0029]优选地,所述方法还包括:
[0030]将所述待处理帧预处理为同一未知协议类型的数据,且预处理过程中选取各个所述待处理帧中的比特位数最大的长度作为基准长度,将其他比特位数小于所述基准长度的所述待处理帧采用数据零填充至所述基准长度。
[0031]优选地,依据所述起始比特位置的匹配计数值和所述结束比特位置的匹配计数值,选取符合划分条件的匹配计数值对应的比特位置作为字段的可能性划分点,包括:
[0032]选取匹配计数值大于预设匹配计数值门限的开始比特位和结束比特位,所选取的开始比特位和结束比特位为可能性划分点。
[0033]本发明实施例还提供一种获取二进制协议数据中控制字段划分点的装置,包括:
[0034]设置单元,用于设置以比特为单位的不同词组宽度以及每个所述词组宽度的词组内容集合,其中所述待处理帧为所述二进制协议数据,且为同一未知协议类型数据,所述词组宽度是指连续二进制数据序列的比特位数,所述词组宽度的取值范围包含第一阈值和第二阈值在内,且在第一阈值和第二阈值之间的正整数;
[0035]扫描单元,用于利用每个所述词组宽度对各个所述待处理帧进行遍历扫描,分别得到比特位数与每个所述词组宽度的比特位数相同的词组,并将得到的每个所述词组宽度的词组存储在每个所述词组宽度下所述词组内容集合中;
[0036]第一计算单元,用于计算每个所述词组内容集合中每个所述词组重复出现的频率;
[0037]选取记录单元,用于从每个所述词组内容集合中选取词组重复出现频率大于预设词频频率门限的词组为关键词组,并将关键词组记录在字典中,其中所述字典是所述关键词组的集合,在所述字典内的所述关键词组用于解析所述二进制协议数据;
[0038]第二计算单元,用于计算每个所述关键词组在所述待处理帧中的起始比特位置的匹配计数值,以及每个所述关键词组在所述待处理帧中的结束比特位置的匹配计数值;
[0039]划分点选取单元,用于依据所述起始比特位置的匹配计数值和所述结束比特位置的匹配计数值,选取符合划分条件的匹配计数值对应的比特位置作为字段的可能性划分点,所述可能性划分点用于指示从所述可能性划分点开始解析所述二进制协议数据。[0040]优选地,所述扫面单元利用每个所述词组宽度对各个所述待处理帧进行遍历扫描,分别得到比特位数与每个所述词组宽度的比特位数相同的所述词组,包括:
[0041]利用每个所述词组宽度从各个所述待处理帧的第一位比特位扫描,得到比特位数与每个所述词组宽度的比特位数相同的词组;
[0042]在得到比特位数与所述词组宽度的比特位数相同的词组后,后移一位比特位以所述词组宽度扫描所述待处理帧直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数,以所述词组宽度每扫描一次得到一个比特位数与所述词组宽度的比特位数相同的词组。
[0043]优选地,所述第二计算单元包括:
[0044]第一子扫描子单元,用于以每个所述关键词组的比特位数为第一宽度单位从各个所述待处理帧的第一位比特位扫描,分别得到比特位数与所述关键词组的比特位数相同的
第一词组;
[0045]第一计数子单元,用于在所述第一词组的内容与对应的所述关键词组的内容相同的情况下,将第一词组的起始比特位的匹配计数值加1,将所述第一词组的结束比特位的匹配计数值加1,所述第一词组的开始比特位位置为所述关键词组的起始比特位位置,所述第一词组的结束比特位位置为所述关键词组的结束比特位位置;
[0046]第一移位子单元,用于在所述第一词组的内容与对应的所述关键词组的内容相同的情况下,后移与所述第一宽度单位相同的比特位数,并触发所述第一扫描子单元继续以所述第一宽度单位扫描所述待处理帧,直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数;
[0047]第二移位子单元,用于在所述第一词组的内容与对应的所述词组的内容不相同的情况下,仅后移一位比特位,并触发所述第一扫描子单元继续以所述第一宽度单位扫描所述待处理帧,直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数。
[0048]优选地,所述装置还包括:第三计算单元,用于利用每个所述关键词组的比特位数对各个所述待处理帧进行后向扫描,分别得到每个所述关键词组在所述待处理帧中的起始比特位和结束比特位的匹配计数值;
[0049]其中所述第三计算单元包括:第二扫描子单元、第二计数子单元、第三移位子单元和第四移位子单元;
[0050]所述第二扫描子单元,用于以每个所述关键词组的比特位数为第二宽度单位从各个所述待处理帧的最后一个比特位向前扫描,分别得到比特位数与所述关键词组的比特位数相同的第二词组;
[0051]所述第二计数子单元,用于在所述第二词组的内容与对应的所述关键词组的内容相同的情况下,将所述第二词组的起始比特位位置的匹配计数值加1,将所述第二词组的结束比特位位置的匹配计数值加1,所述第二词组的开始比特位为所述关键词组的开始比特位,所述第二词组的结束比特位为所述关键词组的结束比特位;
[0052]所述第三移位子单元,用于在所述第二词组的内容与对应的所述关键词组的内容相同的情况下,前移与所述第二宽度单位相同的比特位数,并触发所述第二扫描子单元以所述第二宽度单位扫描所述待处理帧,直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数;[0053]所述第四移位子单元,用于在所述第二词组的内容与对应的所述关键词组的内容不相同的情况下,前移一位比特位,并触发所述第二扫描子单元以所述第二宽度单位扫描所述待处理帧,直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数。
[0054]优选地,所述装置还包括:
[0055]预处理单元,用于将所述待处理帧预处理为同一未知协议类型的数据,且预处理过程中选取各个所述待处理帧中的比特位数最大的长度作为基准长度,将其他比特位数小于所述基准长度的所述待处理帧采用数据零填充至所述基准长度。
[0056]与现有技术相比,本发明包括以下优点:
[0057]通过本发明实施例提供的方法,可以首先设置以比特为单位的词组宽度以及每个词组宽度的词组内容集合,其次利用每个所述词组宽度对各个所述待处理帧进行遍历扫描,分别得到比特位数与每个所述词组宽度的比特位数相同的词组;然后计算每个所述词组内容集合中每个所述词组重复出现的频率,从每个所述词组内容集合中选取重复出现频率大于预设频率的词组为关键词组;最后通过计算每个所述关键词组在待处理帧中的起始比特位和结束比特位的匹配计数值,由此可得待处理帧上每一比特位上的匹配计数值,选取待处理帧上符合划分条件的匹配计数值对应的比特位置作为字段的可能性划分点,实现以比特为单位获取二进制协议数据的控制字段划分点,以适用于基于二进制类型的协议数据控制字段划分。
【专利附图】

【附图说明】
[0058]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0059]图1是本发明实施例提供的获取二进制协议数据中控制字段划分点方法的流程图;
[0060]图2是本发明实施例提供的截取词组的流程图;
[0061]图3是本发明实施例提供的截取词组的一种示意图;
[0062]图4是本发明实施例提供的截取词组的另一种示意图;
[0063]图5是本发明实施例提供的词组映射的流程图;
[0064]图6是图5所示词组映射的示意图;
[0065]图7是图6所示词频统计示意图;
[0066]图8是图7所示向量的映射示意图;
[0067]图9是本发明实施例提供的一种协议数据的示意图;
[0068]图10是本发明实施例提供的前向匹配操作的流程图;
[0069]图11是本发明实施例提供的后向匹配操作的流程图;
[0070]图12是本发明实施例提供的一组实验数据的示意图;
[0071]图13是本发明实施例提供的关键词组示意图;
[0072]图14是图13进行前向匹配操作得到匹配计数值的示意图;
[0073]图15是图13进行后向匹配操作得到匹配计数值的示意图;[0074]图16是从图14所示匹配计数值得到可能性划分点的示意图;
[0075]图17是从图15所示匹配计数值得到可能性划分点的示意图;
[0076]图18是本发明实施例提供的获取二进制协议数据中控制字段划分点装置的一种结构示意图;
[0077]图19是图18所示装置中第二计算单元的结构示意图;
[0078]图20本发明实施例提供的获取二进制协议数据中控制字段划分点装置的另一种结构示意图;
[0079]图21是图20所示装置中第三计算单元的结构示意图。
【具体实施方式】
[0080]为了使本领域技术人员更好地理解本发明,首先对本发明实施例使用的名称进行解释说明:
[0081]非公开协议(Closed Protocol):不公开具体规范的协议,也称为私有协议,如文件共享(Server Message Block, SMB)协议;
[0082]二进制协议数据:协议传输的数据为链路层及其以下的原始比特位流数据,一般为通过I和/或O连续的比特位数值序列变化来表示数据信息,比特的英文缩写为bit ;
[0083]协议格式:由若干字段组成,字段为具有特定含义的最小不可分割的连续数据序列,其可以是连续比特位序列,也可以是连续字节序列;
[0084]先验知识:对某协议数据已知的相关知识,对其已有基本了解;
[0085]载荷数据字段:待处理帧数据中携带的有用信息部分,其中有用信息常指通信双方相互交流的信息;
[0086]控制字段:用于保证载荷数据字段的正常传输。
[0087]本发明实施例提供的获取二进制协议数据控制字段划分点的方法基于汉语分词技术的部分原理,在汉语中词被看作是相对稳定的字的组合,因此上下文中相邻的字同时出现(这种现象被称为字的“相邻共现”)的次数越多,说明相邻的字越有可能构成一个词,也就是说字与字相邻共现的概率能较好地反映相邻字构成词的可信度。在实现时,可以对相邻共现的各个字的组合频度进行统计,保存相邻字的互现信息,其中互现信息体现了汉字之间结合关系的紧密程度,当紧密程度高于某一个阈值时,便可认为此字组可能构成一个词。
[0088]将以上关于汉语分词的原理引用到本发明实施例中,可以理解为,在一个协议帧中,控制字段由于受到人为定义,控制字段的大部分字段具有极强的规律性,字段与字段间的联系可以视为稳定“汉字”与稳定“汉字”的关系。当某些比特位相邻共现的概率较大时,基本能够反映出相邻比特位作为一个字段的概率也较大。因此,依据如上述汉语分词的原理,对同一协议的大量帧数据进行统计,找到出现频率最多的词组以得到关键词组,并记录在字典中。
[0089]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。[0090]请参阅图1,其示出了本发明实施例提供的一种获取二进制协议数据中控制字段划分点的方法,该方法采用比特为单位来获取二进制协议数据的划分点,以适用于基于二进制类型的协议数据,可以包括以下步骤:
[0091]101:设置以比特为单位的不同词组宽度以及每个词组宽度对应的词组内容集合。
[0092]其中待处理帧为二进制协议数据,且为同一未知协议类型数据,在同一类型二进制协议数据中至少包括控制字段和载荷数据字段,如链路层数据。
[0093]在本发明实施例中,词组宽度用于对待处理帧进行扫描,以获取比特位数与词组宽度的比特位数相同的词组,并且词组宽度是指连续二进制数据序列的比特位数,所述二进制数据序列指由O和I构成的连续位数据序列,也称比特位数据序列,所述比特位指所述二进制数据中某一位比特或比特位位置,词组宽度用于对待处理帧进行扫描,以获取比特位数与词组宽度的比特位数相同的词组。该词组宽度的取值范围包括在第一阈值和第二阈值内,且词组宽度取值为第一阈值和第二阈值之间的正整数取值。
[0094]该第一阈值和第二阈值可以根据不同应用场景来设置。例如待处理帧为链路层数据时,作为面向链路层协议的设计者,字段的最大比特位数为16bit或32bit,如果超过该最大比特位数会导致链路层数据占用链路层的资源过大。在理论方法中,第一阈值和第二阈值可根据实际需求进行设置,例如在实际装置中,待处理帧对象为链路层数据时,词组宽度的第二阈值可以设置为16bit,第一阈值可以设置为3bit。进一步在设置多个词组宽度时,取值相邻的两个词组宽度之差可以为I比特(bit)。
[0095]假设词组宽度的第一阈值标记为Width_Min,其取值为3bit ;词组宽的第二阈值标记为Width_Max,其取值为16bit,则设置的词组宽度可以为:[Width_Min],[ffidth_Min+1], [ffidth_Min+2],......, [Width_Max_l], [Width_Max]。
[0096]从上述提供的设置词组宽度方式可以看出,词组宽度的取值和个数与第一阈值和第二阈值相关。上述仅阐述一种可行设置方式,在实际设置词组宽度时,还可以仅设置两个词组宽度,其取值分别为:[Width_Min],[Width_Max],也可以取值为:[Width_Min],
[Width—Min+丨(Widtli—Max - Width Min) /2]], [Width_Max],词组宽度的具体设
置方式本发明实施例并不加以限制。
[0097]102:利用每个词组宽度对各个待处理帧进行遍历扫描,分别得到比特位数与每个词组宽度的比特位数相同的词组,并将得到的每个所述词组宽度的词组存储在每个所述词组宽度下所述词组内容集合中。
[0098]每个词组宽度下的词组为二进制数据内容,该二进制数据内容又可称为所述每个词组宽度的词组内容。在本发明实施例中,遍历扫描待处理帧以得到比特位数与每个词组宽度的比特位数相同的词组的一种可行方式是:每次选取一个词组宽度依次对各个待处理帧进行扫描,直至所有词组宽度全部被选取。
[0099]其遍历扫描过程是:选取一个词组宽度后,利用所选取的词组宽度从各个待处理帧的第一位比特位扫描,得到比特位数与每个词组宽度的比特位数相同的词组;在得到比特位数与词组宽度的比特位数相同的词组后,后移一位比特位以词组宽度扫描待处理帧直至待处理帧剩余的比特位数小于词组宽度的比特位数,以词组宽度每扫描一次得到一个比特位数与词组宽度的比特位数相同的词组。具体可以参阅图2所示,过程如下:[0100]step 1:取词宽长度Width = [ffidth_Max = 16bit],从第一个待处理帧(i = I,表示第一个待处理帧)的第一位比特位(j = 1,表示第一个待处理帧的第一位比特位)开始扫描,截取比特位数为Width的词组,标记为Xn_Width。然后后移一位比特位,即从第j+1位比特位开始,截取与之前相同比特位数(Width)的词组,将此词组标记为X12_Width,依次类推进行遍历,直至在第[Ν-Width]位比特位时到达待处理帧的尾部,此时待处理帧剩余的比特位数小于词组宽度的比特位数,剩余的比特位数组成的词组标记为X1Jidth, L表示一帧内到达帧尾的词组宽度比特位位置,N为待处理帧的帧长(即待处理帧的总比特位数)。在本发明实施例中采用表达式Xu_Width表示词组,其中Xu下标含义为:i代表第i帧,j代表第j位比特位所截取的词组,此表达式Xij表明在第i帧内第j位比特位,所截取的在Width宽度下的词组内容。L根据截取宽度不同,到达帧尾所处的比特位位置也不同,即L值变化。
[0101]St印2:然后对第i+Ι帧及后续帧进行相同操作,仍以相同词组宽度Width =[ffidth_Max = 16bit],采用移位方法进行遍历。当以词组宽度Width = [ffidth_Max =16bit]扫描完所有的待处理帧时,结果是一段一段的词组,标记如下,其中M为待处理帧的个数:
【权利要求】
1.一种获取二进制协议数据中控制字段划分点的方法,其特征在于,包括: 设置以比特为单位的不同词组宽度以及每个所述词组宽度的词组内容集合,其中所述待处理帧为所述二进制协议数据,且为同一未知协议类型数据,所述词组宽度是指连续二进制数据序列的比特位数,所述词组宽度的取值范围包含第一阈值和第二阈值在内,且在第一阈值和第二阈值之间的正整数; 利用每个所述词组宽度对各个所述待处理帧进行遍历扫描,分别得到比特位数与每个所述词组宽度的比特位数相同的词组,并将得到的每个所述词组宽度的词组存储在每个所述词组宽度下所述词组内容集合中; 计算每个所述词组内容集合中每个所述词组重复出现的频率; 从每个所述词组内容集合中选取词组重复出现频率大于预设词频频率门限的词组为关键词组,并将关键词组记录在字典中,其中所述字典是所述关键词组的集合,在所述字典内的所述关键词组用于解析所述二进制协议数据; 计算每个所述关键词组在所述待处理帧中的起始比特位置的匹配计数值,以及每个所述关键词组在所述待处理帧中的结束比特位置的匹配计数值; 依据所述起始比特位置的匹配计数值和所述结束比特位置的匹配计数值,选取符合划分条件的匹配计数值对应的比特位置作为字段的可能性划分点,所述可能性划分点用于指示从所述可能性划分点开始解析所述二进制协议数据。
2.根据权利要求1所述的方法,其特征在于,利用每个所述词组宽度对各个所述待处理帧进行遍历扫描,分别得到比特位数与每个所述词组宽度的比特位数相同的所述词组,包括: 利用每个所述词组宽度从各个所述待处理帧的第一位比特位扫描,得到比特位数与每个所述词组宽度的比特位数相同的词组; 在得到比特位数与所述词组宽度的比特位数相同的词组后,后移一位比特位以所述词组宽度扫描所述待处理帧直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数,以所述词组宽度每扫描一次得到一个比特位数与所述词组宽度的比特位数相同的词组。
3.根据权利要求2所述的方法,其特征在于,计算每个所述词组内容集合中每个所述词组重复出现的频率,包括: 将以相同词组宽度扫描不同待处理帧得到的词组进行对比; 当以相同词组宽度扫描不同待处理帧得到的词组内容相同时,对内容相同的词组的频率加I。
4.根据权利要求3所述的方法,其特征在于,计算每个所述关键在所述待处理帧中的起始比特位置的匹配计数值,以及每个所述关键词组在所述待处理帧中的结束比特位置的匹配计数值,包括: 以每个所述关键词组的比特位数为第一宽度单位从各个所述待处理帧的第一位比特位扫描,分别得到比特位数与所述关键词组的比特位数相同的第一词组; 如果所述第一词组的内容与对应的所述关键词组的内容相同,则将第一词组的起始比特位的匹配计数值加1,将所述第一词组的结束比特位的计数值加1,并后移与所述第一宽度单位相同的比特位数继续扫描所述待处理帧,直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数,所述第一词组的开始比特位位置为所述关键词组的起始比特位位置,所述第一词组的结束比特位位置为所述关键词组的结束比特位位置; 如果所述第一词组的内容与对应的所述词组的内容不相同,则仅后移一位比特位,以所述第一宽度单位扫描所述待处理帧,直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数; 每扫描到待处理帧与所述关键词组的内容相同的第一词组,对所述第一词组的起始比特位位置和结束比特位位置的匹配计数值加I。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:利用每个所述关键词组的比特位数对各个所述待处理帧进行后向扫描,分别得到每个所述关键词组在所述待处理帧中的起始比特位和结束比特位的匹配计数值,其中所述后向扫描得到关键词组在所述待处理帧中的起始比特位和结束比特位的匹配计数值的过程,包括: 以每个所述关键词组的比特位数为第二宽度单位从各个所述待处理帧的最后一个比特位向前扫描,分别得到比特位数与所述关键词组的比特位数相同的第二词组; 如果所述第二词组的内容与对应的所述关键词组的内容相同,则将所述第二词组的起始比特位位置的匹配计数值加1,将所述第二词组的结束比特位位置的匹配计数值加1,并前移与所述第二宽度单位相同的比特位数继续扫描所述待处理帧,直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数,所述第二词组的开始比特位为所述关键词组的开始比特位,所述第二词组的结束比特位为所述关键词组的结束比特位; 如果所述第二词组的内容与对应的所述关键词组的内容不相同,则前移一位比特位,以所述第二宽度 单位扫描所述待处理帧,直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数; 每扫描到所述待处理帧中与所述关键词组的内容相同的第二词组,对所述第二词组的起始比特位和结束比特位的匹配计数值加I。
6.根据权利要求1至5任意一项所述的方法,其特征在于,所述方法还包括: 将所述待处理帧预处理为同一未知协议类型的数据,且预处理过程中选取各个所述待处理帧中的比特位数最大的长度作为基准长度,将其他比特位数小于所述基准长度的所述待处理帧采用数据零填充至所述基准长度。
7.根据权利要求1至5任意一项所述的方法,其特征在于,依据所述起始比特位置的匹配计数值和所述结束比特位置的匹配计数值,选取符合划分条件的匹配计数值对应的比特位置作为字段的可能性划分点,包括: 选取匹配计数值大于预设匹配计数值门限的开始比特位和结束比特位,所选取的开始比特位和结束比特位为可能性划分点。
8.一种获取二进制协议数据中控制字段划分点的装置,其特征在于,包括: 设置单元,用于设置以比特为单位的不同词组宽度以及每个所述词组宽度的词组内容集合,其中所述待处理帧为所述二进制协议数据,且为同一未知协议类型数据,所述词组宽度是指连续二进制数据序列的比特位数,所述词组宽度的取值范围包含第一阈值和第二阈值在内,且在第一阈值和第二阈值之间的正整数; 扫描单元,用于利用每个所述词组宽度对各个所述待处理帧进行遍历扫描,分别得到比特位数与每个所述词组宽度的比特位数相同的词组,并将得到的每个所述词组宽度的词组存储在每个所述词组宽度下所述词组内容集合中; 第一计算单元,用于计算每个所述词组内容集合中每个所述词组重复出现的频率; 选取记录单元,用于从每个所述词组内容集合中选取词组重复出现频率大于预设词频频率门限的词组为关键词组,并将关键词组记录在字典中,其中所述字典是所述关键词组的集合,在所述字典内的所述关键词组用于解析所述二进制协议数据; 第二计算单元,用于计算每个所述关键词组在所述待处理帧中的起始比特位置的匹配计数值,以及每个所述关键词组在所述待处理帧中的结束比特位置的匹配计数值; 划分点选取单元,用于依据所述起始比特位置的匹配计数值和所述结束比特位置的匹配计数值,选取符合划分条件的匹配计数值对应的比特位置作为字段的可能性划分点,所述可能性划分点用于指示从所述可能性划分点开始解析所述二进制协议数据。
9.根据权利要求8所述的装置,其特征在于,所述扫面单元利用每个所述词组宽度对各个所述待处理帧进行遍历扫描,分别得到比特位数与每个所述词组宽度的比特位数相同的所述词组,包括: 利用每个所述词组宽度从各个所述待处理帧的第一位比特位扫描,得到比特位数与每个所述词组宽度的比特位数相同的词组; 在得到比特位数与所述词组宽度的比特位数相同的词组后,后移一位比特位以所述词组宽度扫描所述待处理帧直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数,以所述词组宽度每扫描一次得到一个比特位数与所述词组宽度的比特位数相同的词组。
10.根据权利要求9所述的装置,其特征在于,所述第二计算单元包括: 第一子扫描子单元,用于以每个所述关键词组的比特位数为第一宽度单位从各个所述待处理帧的第一位比特位扫描,分别得到比特位数与所述关键词组的比特位数相同的第一词组; 第一计数子单元,用于在所述第一词组的内容与对应的所述关键词组的内容相同的情况下,将第一词组的起始比特位的匹配计数值加1,将所述第一词组的结束比特位的匹配计数值加1,所述第一词组的开始比特位位置为所述关键词组的起始比特位位置,所述第一词组的结束比特位位置为所述关键词组的结束比特位位置; 第一移位子单元,用于在所述第一词组的内容与对应的所述关键词组的内容相同的情况下,后移与所述第一宽度单位相同的比特位数,并触发所述第一扫描子单元继续以所述第一宽度单位扫描所述待处理帧,直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数; 第二移位子单元,用于在所述第一词组的内容与对应的所述词组的内容不相同的情况下,仅后移一位比特位,并触发所述第一扫描子单元继续以所述第一宽度单位扫描所述待处理帧,直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:第三计算单元,用于利用每个所述关键词组的比特位数对各个所述待处理帧进行后向扫描,分别得到每个所述关键词组在所述待处理帧中的起始比特位和结束比特位的匹配计数值; 其中所述第三计算单元包括:第二扫描子单元、第二计数子单元、第三移位子单元和第四移位子单元;所述第二扫描子单元,用于以每个所述关键词组的比特位数为第二宽度单位从各个所述待处理帧的最后一个比特位向前扫描,分别得到比特位数与所述关键词组的比特位数相同的第二词组; 所述第二计数子单元,用于在所述第二词组的内容与对应的所述关键词组的内容相同的情况下,将所述第二词组的起始比特位位置的匹配计数值加1,将所述第二词组的结束比特位位置的匹配计数值加1,所述第二词组的开始比特位为所述关键词组的开始比特位,所述第二词组的结束比特位为所述关键词组的结束比特位; 所述第三移位子单元,用于在所述第二词组的内容与对应的所述关键词组的内容相同的情况下,前移与所述第二宽度单位相同的比特位数,并触发所述第二扫描子单元以所述第二宽度单位扫描所述待处理帧,直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数; 所述第四移位子单元,用于在所述第二词组的内容与对应的所述关键词组的内容不相同的情况下,前移一位比特位,并触发所述第二扫描子单元以所述第二宽度单位扫描所述待处理帧,直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数。
12.根据权 利要求9至11任意一项所述的装置,其特征在于,所述装置还包括: 预处理单元,用于将所述待处理帧预处理为同一未知协议类型的数据,且预处理过程中选取各个所述待处理帧中的比特位数最大的长度作为基准长度,将其他比特位数小于所述基准长度的所述待处理帧采用数据零填充至所述基准长度。
【文档编号】H04L29/06GK103955539SQ201410211768
【公开日】2014年7月30日 申请日期:2014年5月19日 优先权日:2014年5月19日
【发明者】李青, 陶思宇, 于宏毅, 杨白薇, 林荣强, 李林林, 王朋宇, 张琦 申请人:中国人民解放军信息工程大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1