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

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

Info

Publication number
CN103955539B
CN103955539B CN201410211768.3A CN201410211768A CN103955539B CN 103955539 B CN103955539 B CN 103955539B CN 201410211768 A CN201410211768 A CN 201410211768A CN 103955539 B CN103955539 B CN 103955539B
Authority
CN
China
Prior art keywords
phrase
bits
width
bit
crucial
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.)
Active
Application number
CN201410211768.3A
Other languages
English (en)
Other versions
CN103955539A (zh
Inventor
李青
陶思宇
于宏毅
杨白薇
林荣强
李林林
王朋宇
张琦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
PLA Information Engineering University
Original Assignee
PLA Information Engineering University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by PLA Information Engineering University filed Critical PLA Information Engineering University
Priority to CN201410211768.3A priority Critical patent/CN103955539B/zh
Publication of CN103955539A publication Critical patent/CN103955539A/zh
Application granted granted Critical
Publication of CN103955539B publication Critical patent/CN103955539B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/06Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)
  • Document Processing Apparatus (AREA)

Abstract

本发明提供一种获取二进制协议数据中控制字段划分点的方法和装置,利用设置的每个词组宽度对各个待处理帧进行遍历扫描,分别得到比特位数与每个词组宽度的比特位数相同的词组;然后计算每个词组内容集合中每个词组重复出现的频率,从每个词组内容集合中选取重复出现频率大于预设频率的词组为关键词组;最后通过计算每个关键词组在待处理帧中的起始比特位和结束比特位的匹配计数值,由此可得待处理帧上每一比特位上的匹配计数值,选取待处理帧上符合划分条件的匹配计数值对应的比特位置作为字段的可能性划分点,实现以比特为单位获取二进制协议数据的控制字段划分点,以适用于基于二进制类型的协议数据控制字段划分。

Description

一种获取二进制协议数据中控制字段划分点的方法及装置
技术领域
本发明涉及协议逆向分析技术领域,特别涉及一种获取二进制协议数据中控制字段划分点的方法及装置。
背景技术
协议是为进行网络数据交换而建立的一系列的规则、标准和约定,是计算机网络及数据通信的核心,也是网络安全领域的重点研究对象。当前许多网络安全相关的应用都以协议的详细描述信息为基础,如入侵检测、模糊测试、协议重用和一致性测试等。但由于目前使用的协议大部分都是私有协议,缺乏正式的描述文档,研究人员越来越多地采用协议逆向的手段实现协议信息的提取。
协议逆向工程是指在不依赖于协议描述的情况下,通过对协议实体的网络输入/输出、系统行为和指令执行流程进行监控和分析,提取协议文法、语法和语义的过程。一般来说,协议数据的字段分类粗略地可分为两大字段,一是控制字段,二是业务字段。控制字段的定义为后续业务字段的传输及解析提供规范,同步和缓冲。目前划分协议数据方法包括:多序列比对方法、Discoverer方案和基于统计方法的字段划分,其中基于统计方法的字段划分是目前适用于二进制协议数据的方法,其划分原理为:以字节为单位,借助字符定义,依靠字符定界,字符区分等等功能,辅助分析协议数据内各字节的取值范围,然后统计各字节的频率分布,由频率分布推断出关键词组,关键词组主要是协议数据中的控制字段,通过关键词组可以解析获取协议的控制字段规范,有效分离控制头与业务数据。
但是上述基于统计方法的字段划分主要以字节为单位,且依靠字符定义统计报文内容中各字节的频率分布来统计出关键词组,适用于基于字节或字符型的协议数据划分。然而二进制协议数据为连续的比特序列,对于字符定义是未知的,无法直接使用相关算法。因此急需一种获取二进制协议数据中控制字段划分点的方法,用于统计二进制协议数据中控制字段的划分点。
发明内容
有鉴于此,本发明实施例提供一种获取二进制协议数据中控制字段划分点的方法及装置,以比特为单位对二进制协议数据进行统计分析,得出二进制协议数据中控制字段的划分点,技术方案如下:
本发明实施例提供一种获取二进制协议数据中控制字段划分点的方法,包括:
设置以比特为单位的不同词组宽度以及每个所述词组宽度的词组内容集合,其中所述待处理帧为所述二进制协议数据,且为同一未知协议类型数据,所述词组宽度是指连续二进制数据序列的比特位数,所述词组宽度的取值范围包含第一阈值和第二阈值在内,且在第一阈值和第二阈值之间的正整数;
利用每个所述词组宽度对各个所述待处理帧进行遍历扫描,分别得到比特位数与每个所述词组宽度的比特位数相同的词组,并将得到的每个所述词组宽度的词组存储在每个所述词组宽度下所述词组内容集合中;
计算每个所述词组内容集合中每个所述词组重复出现的频率;
从每个所述词组内容集合中选取词组重复出现频率大于预设词频频率门限的词组为关键词组,并将关键词组记录在字典中,其中所述字典是所述关键词组的集合,在所述字典内的所述关键词组用于解析所述二进制协议数据;
计算每个所述关键词组在所述待处理帧中的起始比特位置的匹配计数值,以及每个所述关键词组在所述待处理帧中的结束比特位置的匹配计数值;
依据所述起始比特位置的匹配计数值和所述结束比特位置的匹配计数值,选取符合划分条件的匹配计数值对应的比特位置作为字段的可能性划分点,所述可能性划分点用于指示从所述可能性划分点开始解析所述二进制协议数据。
优选地,利用每个所述词组宽度对各个所述待处理帧进行遍历扫描,分别得到比特位数与每个所述词组宽度的比特位数相同的所述词组,包括:
利用每个所述词组宽度从各个所述待处理帧的第一位比特位扫描,得到比特位数与每个所述词组宽度的比特位数相同的词组;
在得到比特位数与所述词组宽度的比特位数相同的词组后,后移一位比特位以所述词组宽度扫描所述待处理帧直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数,以所述词组宽度每扫描一次得到一个比特位数与所述词组宽度的比特位数相同的词组。
优选地,计算每个所述词组内容集合中每个所述词组重复出现的频率,包括:
将以相同词组宽度扫描不同待处理帧得到的词组进行对比;
当以相同词组宽度扫描不同待处理帧得到的词组内容相同时,对内容相同的词组的频率加1。
优选地,计算每个所述关键词组在所述待处理帧中的起始比特位置的匹配计数值,以及每个所述关键词组在所述待处理帧中的结束比特位置的匹配计数值,包括:
以每个所述关键词组的比特位数为第一宽度单位从各个所述待处理帧的第一位比特位扫描,分别得到比特位数与所述关键词组的比特位数相同的第一词组;
如果所述第一词组的内容与对应的所述关键词组的内容相同,则将第一词组的起始比特位的匹配计数值加1,将所述第一词组的结束比特位的匹配计数值加1,并后移与所述第一宽度单位相同的比特位数继续扫描所述待处理帧,直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数,所述第一词组的开始比特位位置为所述关键词组的起始比特位位置,所述第一词组的结束比特位位置为所述关键词组的结束比特位位置;
如果所述第一词组的内容与对应的所述词组的内容不相同,则仅后移一位比特位,以所述第一宽度单位扫描所述待处理帧,直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数;
每扫描到待处理帧与所述关键词组的内容相同的第一词组,对所述第一词组的起始比特位位置和结束比特位位置的匹配计数值加1。
优选地,所述方法还包括:利用每个所述关键词组的比特位数对各个所述待处理帧进行后向扫描,分别得到每个所述关键词组在所述待处理帧中的起始比特位和结束比特位的匹配计数值,其中所述后向扫描得到关键词组在所述待处理帧中的起始比特位和结束比特位的匹配计数值的过程,包括:
以每个所述关键词组的比特位数为第二宽度单位从各个所述待处理帧的最后一个比特位向前扫描,分别得到比特位数与所述关键词组的比特位数相同的第二词组;
如果所述第二词组的内容与对应的所述关键词组的内容相同,则将所述第二词组的起始比特位位置的匹配计数值加1,将所述第二词组的结束比特位位置的匹配计数值加1,并前移与所述第二宽度单位相同的比特位数继续扫描所述待处理帧,直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数,所述第二词组的开始比特位为所述关键词组的开始比特位,所述第二词组的结束比特位为所述关键词组的结束比特位;
如果所述第二词组的内容与对应的所述关键词组的内容不相同,则前移一位比特位,以所述第二宽度单位扫描所述待处理帧,直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数;
每扫描到所述待处理帧中与所述关键词组的内容相同的第二词组,对所述第二词组的起始比特位和结束比特位的匹配计数值加1。
优选地,所述方法还包括:
将所述待处理帧预处理为同一未知协议类型的数据,且预处理过程中选取各个所述待处理帧中的比特位数最大的长度作为基准长度,将其他比特位数小于所述基准长度的所述待处理帧采用数据零填充至所述基准长度。
优选地,依据所述起始比特位置的匹配计数值和所述结束比特位置的匹配计数值,选取符合划分条件的匹配计数值对应的比特位置作为字段的可能性划分点,包括:
选取匹配计数值大于预设匹配计数值门限的开始比特位和结束比特位,所选取的开始比特位和结束比特位为可能性划分点。
本发明实施例还提供一种获取二进制协议数据中控制字段划分点的装置,包括:
设置单元,用于设置以比特为单位的不同词组宽度以及每个所述词组宽度的词组内容集合,其中所述待处理帧为所述二进制协议数据,且为同一未知协议类型数据,所述词组宽度是指连续二进制数据序列的比特位数,所述词组宽度的取值范围包含第一阈值和第二阈值在内,且在第一阈值和第二阈值之间的正整数;
扫描单元,用于利用每个所述词组宽度对各个所述待处理帧进行遍历扫描,分别得到比特位数与每个所述词组宽度的比特位数相同的词组,并将得到的每个所述词组宽度的词组存储在每个所述词组宽度下所述词组内容集合中;
第一计算单元,用于计算每个所述词组内容集合中每个所述词组重复出现的频率;
选取记录单元,用于从每个所述词组内容集合中选取词组重复出现频率大于预设词频频率门限的词组为关键词组,并将关键词组记录在字典中,其中所述字典是所述关键词组的集合,在所述字典内的所述关键词组用于解析所述二进制协议数据;
第二计算单元,用于计算每个所述关键词组在所述待处理帧中的起始比特位置的匹配计数值,以及每个所述关键词组在所述待处理帧中的结束比特位置的匹配计数值;
划分点选取单元,用于依据所述起始比特位置的匹配计数值和所述结束比特位置的匹配计数值,选取符合划分条件的匹配计数值对应的比特位置作为字段的可能性划分点,所述可能性划分点用于指示从所述可能性划分点开始解析所述二进制协议数据。
优选地,所述扫面单元利用每个所述词组宽度对各个所述待处理帧进行遍历扫描,分别得到比特位数与每个所述词组宽度的比特位数相同的所述词组,包括:
利用每个所述词组宽度从各个所述待处理帧的第一位比特位扫描,得到比特位数与每个所述词组宽度的比特位数相同的词组;
在得到比特位数与所述词组宽度的比特位数相同的词组后,后移一位比特位以所述词组宽度扫描所述待处理帧直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数,以所述词组宽度每扫描一次得到一个比特位数与所述词组宽度的比特位数相同的词组。
优选地,所述第二计算单元包括:
第一扫描子单元,用于以每个所述关键词组的比特位数为第一宽度单位从各个所述待处理帧的第一位比特位扫描,分别得到比特位数与所述关键词组的比特位数相同的第一词组;
第一计数子单元,用于在所述第一词组的内容与对应的所述关键词组的内容相同的情况下,将第一词组的起始比特位的匹配计数值加1,将所述第一词组的结束比特位的匹配计数值加1,所述第一词组的开始比特位位置为所述关键词组的起始比特位位置,所述第一词组的结束比特位位置为所述关键词组的结束比特位位置;
第一移位子单元,用于在所述第一词组的内容与对应的所述关键词组的内容相同的情况下,后移与所述第一宽度单位相同的比特位数,并触发所述第一扫描子单元继续以所述第一宽度单位扫描所述待处理帧,直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数;
第二移位子单元,用于在所述第一词组的内容与对应的所述词组的内容不相同的情况下,仅后移一位比特位,并触发所述第一扫描子单元继续以所述第一宽度单位扫描所述待处理帧,直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数。
优选地,所述装置还包括:第三计算单元,用于利用每个所述关键词组的比特位数对各个所述待处理帧进行后向扫描,分别得到每个所述关键词组在所述待处理帧中的起始比特位和结束比特位的匹配计数值;
其中所述第三计算单元包括:第二扫描子单元、第二计数子单元、第三移位子单元和第四移位子单元;
所述第二扫描子单元,用于以每个所述关键词组的比特位数为第二宽度单位从各个所述待处理帧的最后一个比特位向前扫描,分别得到比特位数与所述关键词组的比特位数相同的第二词组;
所述第二计数子单元,用于在所述第二词组的内容与对应的所述关键词组的内容相同的情况下,将所述第二词组的起始比特位位置的匹配计数值加1,将所述第二词组的结束比特位位置的匹配计数值加1,所述第二词组的开始比特位为所述关键词组的开始比特位,所述第二词组的结束比特位为所述关键词组的结束比特位;
所述第三移位子单元,用于在所述第二词组的内容与对应的所述关键词组的内容相同的情况下,前移与所述第二宽度单位相同的比特位数,并触发所述第二扫描子单元以所述第二宽度单位扫描所述待处理帧,直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数;
所述第四移位子单元,用于在所述第二词组的内容与对应的所述关键词组的内容不相同的情况下,前移一位比特位,并触发所述第二扫描子单元以所述第二宽度单位扫描所述待处理帧,直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数。
优选地,所述装置还包括:
预处理单元,用于将所述待处理帧预处理为同一未知协议类型的数据,且预处理过程中选取各个所述待处理帧中的比特位数最大的长度作为基准长度,将其他比特位数小于所述基准长度的所述待处理帧采用数据零填充至所述基准长度。
与现有技术相比,本发明包括以下优点:
通过本发明实施例提供的方法,可以首先设置以比特为单位的词组宽度以及每个词组宽度的词组内容集合,其次利用每个所述词组宽度对各个所述待处理帧进行遍历扫描,分别得到比特位数与每个所述词组宽度的比特位数相同的词组;然后计算每个所述词组内容集合中每个所述词组重复出现的频率,从每个所述词组内容集合中选取重复出现频率大于预设频率的词组为关键词组;最后通过计算每个所述关键词组在待处理帧中的起始比特位和结束比特位的匹配计数值,由此可得待处理帧上每一比特位上的匹配计数值,选取待处理帧上符合划分条件的匹配计数值对应的比特位置作为字段的可能性划分点,实现以比特为单位获取二进制协议数据的控制字段划分点,以适用于基于二进制类型的协议数据控制字段划分。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的获取二进制协议数据中控制字段划分点方法的流程图;
图2是本发明实施例提供的截取词组的流程图;
图3是本发明实施例提供的截取词组的一种示意图;
图4是本发明实施例提供的截取词组的另一种示意图;
图5是本发明实施例提供的词组映射的流程图;
图6是图5所示词组映射的示意图;
图7是图6所示词频统计示意图;
图8是图7所示向量的映射示意图;
图9是本发明实施例提供的一种协议数据的示意图;
图10是本发明实施例提供的前向匹配操作的流程图;
图11是本发明实施例提供的后向匹配操作的流程图;
图12是本发明实施例提供的一组实验数据的示意图;
图13是本发明实施例提供的关键词组示意图;
图14是图13进行前向匹配操作得到匹配计数值的示意图;
图15是图13进行后向匹配操作得到匹配计数值的示意图;
图16是从图14所示匹配计数值得到可能性划分点的示意图;
图17是从图15所示匹配计数值得到可能性划分点的示意图;
图18是本发明实施例提供的获取二进制协议数据中控制字段划分点装置的一种结构示意图;
图19是图18所示装置中第二计算单元的结构示意图;
图20本发明实施例提供的获取二进制协议数据中控制字段划分点装置的另一种结构示意图;
图21是图20所示装置中第三计算单元的结构示意图。
具体实施方式
为了使本领域技术人员更好地理解本发明,首先对本发明实施例使用的名称进行解释说明:
非公开协议(Closed Protocol):不公开具体规范的协议,也称为私有协议,如文件共享(Server Message Block,SMB)协议;
二进制协议数据:协议传输的数据为链路层及其以下的原始比特位流数据,一般为通过1和/或0连续的比特位数值序列变化来表示数据信息,比特的英文缩写为bit;
协议格式:由若干字段组成,字段为具有特定含义的最小不可分割的连续数据序列,其可以是连续比特位序列,也可以是连续字节序列;
先验知识:对某协议数据已知的相关知识,对其已有基本了解;
载荷数据字段:待处理帧数据中携带的有用信息部分,其中有用信息常指通信双方相互交流的信息;
控制字段:用于保证载荷数据字段的正常传输。
本发明实施例提供的获取二进制协议数据控制字段划分点的方法基于汉语分词技术的部分原理,在汉语中词被看作是相对稳定的字的组合,因此上下文中相邻的字同时出现(这种现象被称为字的“相邻共现”)的次数越多,说明相邻的字越有可能构成一个词,也就是说字与字相邻共现的概率能较好地反映相邻字构成词的可信度。在实现时,可以对相邻共现的各个字的组合频度进行统计,保存相邻字的互现信息,其中互现信息体现了汉字之间结合关系的紧密程度,当紧密程度高于某一个阈值时,便可认为此字组可能构成一个词。
将以上关于汉语分词的原理引用到本发明实施例中,可以理解为,在一个协议帧中,控制字段由于受到人为定义,控制字段的大部分字段具有极强的规律性,字段与字段间的联系可以视为稳定“汉字”与稳定“汉字”的关系。当某些比特位相邻共现的概率较大时,基本能够反映出相邻比特位作为一个字段的概率也较大。因此,依据如上述汉语分词的原理,对同一协议的大量帧数据进行统计,找到出现频率最多的词组以得到关键词组,并记录在字典中。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,其示出了本发明实施例提供的一种获取二进制协议数据中控制字段划分点的方法,该方法采用比特为单位来获取二进制协议数据的划分点,以适用于基于二进制类型的协议数据,可以包括以下步骤:
101:设置以比特为单位的不同词组宽度以及每个词组宽度对应的词组内容集合。
其中待处理帧为二进制协议数据,且为同一未知协议类型数据,在同一类型二进制协议数据中至少包括控制字段和载荷数据字段,如链路层数据。
在本发明实施例中,词组宽度用于对待处理帧进行扫描,以获取比特位数与词组宽度的比特位数相同的词组,并且词组宽度是指连续二进制数据序列的比特位数,所述二进制数据序列指由0和1构成的连续位数据序列,也称比特位数据序列,所述比特位指所述二进制数据中某一位比特或比特位位置,词组宽度用于对待处理帧进行扫描,以获取比特位数与词组宽度的比特位数相同的词组。该词组宽度的取值范围包括在第一阈值和第二阈值内,且词组宽度取值为第一阈值和第二阈值之间的正整数取值。
该第一阈值和第二阈值可以根据不同应用场景来设置。例如待处理帧为链路层数据时,作为面向链路层协议的设计者,字段的最大比特位数为16bit或32bit,如果超过该最大比特位数会导致链路层数据占用链路层的资源过大。在理论方法中,第一阈值和第二阈值可根据实际需求进行设置,例如在实际装置中,待处理帧对象为链路层数据时,词组宽度的第二阈值可以设置为16bit,第一阈值可以设置为3bit。进一步在设置多个词组宽度时,取值相邻的两个词组宽度之差可以为1比特(bit)。
假设词组宽度的第一阈值标记为Width_Min,其取值为3bit;词组宽的第二阈值标记为Width_Max,其取值为16bit,则设置的词组宽度可以为:[Width_Min],[Width_Min+1],[Width_Min+2],……,[Width_Max-1],[Width_Max]。
从上述提供的设置词组宽度方式可以看出,词组宽度的取值和个数与第一阈值和第二阈值相关。上述仅阐述一种可行设置方式,在实际设置词组宽度时,还可以仅设置两个词组宽度,其取值分别为:[Width_Min],[Width_Max],也可以取值为:[Width_Min], [Width_Max],词组宽度的具体设置方式本发明实施例并不加以限制。
102:利用每个词组宽度对各个待处理帧进行遍历扫描,分别得到比特位数与每个词组宽度的比特位数相同的词组,并将得到的每个所述词组宽度的词组存储在每个所述词组宽度下所述词组内容集合中。
每个词组宽度下的词组为二进制数据内容,该二进制数据内容又可称为所述每个词组宽度的词组内容。在本发明实施例中,遍历扫描待处理帧以得到比特位数与每个词组宽度的比特位数相同的词组的一种可行方式是:每次选取一个词组宽度依次对各个待处理帧进行扫描,直至所有词组宽度全部被选取。
其遍历扫描过程是:选取一个词组宽度后,利用所选取的词组宽度从各个待处理帧的第一位比特位扫描,得到比特位数与每个词组宽度的比特位数相同的词组;在得到比特位数与词组宽度的比特位数相同的词组后,后移一位比特位以词组宽度扫描待处理帧直至待处理帧剩余的比特位数小于词组宽度的比特位数,以词组宽度每扫描一次得到一个比特位数与词组宽度的比特位数相同的词组。具体可以参阅图2所示,过程如下:
step1:取词宽长度Width=[Width_Max=16bit],从第一个待处理帧(i=1,表示第一个待处理帧)的第一位比特位(j=1,表示第一个待处理帧的第一位比特位)开始扫描,截取比特位数为Width的词组,标记为X11_Width。然后后移一位比特位,即从第j+1位比特位开始,截取与之前相同比特位数(Width)的词组,将此词组标记为X12_Width,依次类推进行遍历,直至在第[N-Width]位比特位时到达待处理帧的尾部,此时待处理帧剩余的比特位数小于词组宽度的比特位数,剩余的比特位数组成的词组标记为X1L_Width,L表示一帧内到达帧尾的词组宽度比特位位置,N为待处理帧的帧长(即待处理帧的总比特位数)。在本发明实施例中采用表达式Xij_Width表示词组,其中Xij下标含义为:i代表第i帧,j代表第j位比特位所截取的词组,此表达式Xij表明在第i帧内第j位比特位,所截取的在Width宽度下的词组内容。L根据截取宽度不同,到达帧尾所处的比特位位置也不同,即L值变化。
step2:然后对第i+1帧及后续帧进行相同操作,仍以相同词组宽度Width=[Width_Max=16bit],采用移位方法进行遍历。当以词组宽度Width=[Width_Max=16bit]扫描完所有的待处理帧时,结果是一段一段的词组,标记如下,其中M为待处理帧的个数:
step3:将词组宽度Width减1,即为Width=[Width_Max-1=15bit],然后重复执行步骤step1和step2。若Width<Width_Min,则结束扫描过程。
比如某个待处理帧的帧长为1000bit,通过上述图2所示方式以词组宽度Width=6bit扫描的示意图如图3所示,从待处理帧的第一位比特位截取到第一个词组,记为X31_Width,然后后移一位比特位,从第二位比特位截取到第二个词组,记为X32_Width,遍历至第994bit之后,即在第995bit时到达帧尾,剩余的比特位数组成词组X3L_Width。
在本发明实施例中,遍历扫描待处理帧以得到比特位数与每个词组宽度的比特位数相同的词组的另一种可行方式是:选取一个待处理帧后,利用所有的词组宽度依次对所选取的待处理帧进行扫描,然后再从剩余的待处理帧中继续选取后使用所有的词组宽度进行扫描直至所有待处理帧全部被扫描,其中利用所有的词组宽度对所选取的待处理帧进行扫描的过程可以参阅上述步骤step1和step2,对此不再阐述。
在本发明实施例中,遍历扫描待处理帧以得到比特位数与每个词组宽度的比特位数相同的词组的其他可行方式是:利用每个词组宽度从各个待处理帧的第一位比特位开始,间隔所利用的词组宽的比特位数逐次进行扫描,得到比特位数与每个词组宽度的比特位数相同的词组。
比如图3所示的帧长为1000bit的待处理帧,以词组宽度Width=6bit扫描从待处理帧的第一位比特位截取到第一个词组,记为X41_Width,然后后移六位比特位,从第七位比特位截取到第二个词组,记为X42_Width,遍历至第997bit时到达帧尾,从帧尾处填充零使剩余的比特位数和填充的位数组成词组宽度为6bit的词组,如图4所示。
从上述可行方式可以看出,图4所示间隔扫描方式相对于图3所示后移一位扫描方式可以降低词组的个数,但是由于待处理帧是非公开协议的二进制协议数据,在获取划分点的过程中待处理帧中携带的数据为非公开数据,间隔扫描方式有可能遗漏部分字段,而后移一位扫描方式可以将待处理帧中各种组合方式进行扫描,所以后移一位扫描方式的准确度高于间隔扫描方式。
103:计算每个词组内容集合中每个词组重复出现的频率。
其中频率是指词组在词组内容集合中出现的频率,在本发明实施例中计算词组的频率的可行方式是:将以相同词组宽度扫描不同待处理帧得到的词组进行对比,当以相同词组宽度扫描不同待处理帧得到的词组内容相同时,对内容相同的词组的频率加1。
以词组宽度Width=6bit为例,对三个待处理帧进行扫描得到的词组为:
将X11_Width分别于其他词语进行对比,如果其他词组中具有与X11_Width内容相同的词组,则将X11_Width的频率更新为:0+P=P,其中0为X11_Width的初始频率,P为与X11_Width内容相同的词组个数。
在这里需要说明的一点是:在计算词组的频率时是将相同词组宽度的词组进行对比,统计与某个词组具有相同内容词组的个数来得到词组的频率,因此在存储词组时应将具有相同词组宽的词组存储至同一个词组内容集合中,其存储过程如下:
以一个词组宽度Width为例,在每一次固定Width值的操作下,获取到一系列词组,标记为向量组。即:
Y1_Width=[X11_Width,X12_Width,……,X1L_Width]
Y2_Width=[X21_Width,X22_Width,……,X2L_Width]
………………
YM_Width=[XM1_Width,XM2_Width,……,XML_Width]
在相同Width值下,可获得[Y1_Width,Y2_Width,……,YM_Width]向量组,此向量组又隐含着代表一组矩阵元素,将每一组向量组所代表的矩阵元素(即Xij_Width)保存至一个存储空间,存储空间Array[M][N]内的元素存储的是一段比特词组内容,即词组,其中X[i][j]为Xij_Width。将向量组保存至存储空间Array[M][N]的流程图如图5所示,其映射对应关系如图6所示。
104:从每个所述词组内容集合中选取词组重复出现频率大于预设词频频率门限的词组为关键词组,并将关键词组记录在字典中,其中所述字典是所述关键词组的集合,在所述字典内的所述关键词组用于解析所述二进制协议数据。
由于在同一词组宽度下词组较多,如果将全部的频率结果代入到后续的处理中去,即将全部词组作为关键词组会增加后续计算的数据量,因此在实际操作中可以将词组按照频率高低进行排名。
在统计频率高低排名后,设定一个频率排名的界限,选取高于界限频率排名之前的词组作为关键词组,这些关键词组可以记录在一个字典内,该字典被设计为文本格式或其他文档格式的文档,作为记录经过处理的最终数据结果的载体。以本发明实施例针对的实际情况为例,将频率大于预设频率的词组为关键词组,即可以选取频率最高的前p%的字段为关键词组,其中p%为预设频率。
实际操作中不同的词组宽度和扫描方式,得到的词组不同,并且不同类型的待处理帧选取预设频率的原则也不同。因此在本发明实施例中p%可以根据具体分析过程进行人为定义。其可以是排名顺序的百分比,也可以是频率值的界限。
在本发明实施例中获取关键词组的过程可以如下:首先将每一个[Y1_Width,Y2_Width,……,YM_Width]向量标记为Zwidth_Width,显然Z向量的个数取决于词组宽度的取值范围,Z向量的个数与词组宽度的取值个数相同。
从每个Z向量中取出前20%(预设频率)排名的词组,其集合记为Z20%_Wdith,Z20%_Wdith对应于词组宽度Wdith下的存储空间Array[M][N]_Wdith内数据,按大到小排列的前20%的词组,如图7所示。前20%的词组可以保存至新存储空间,并记录为Z20%_Wdith=[FX[1]_Wdith,FX[2]_Wdith,……,FX[20%MN]_Wdith],Z20%_Wdith中的FX[i]_Wdith对应着以Width为词组宽度的Zwidth_Width中排名为第i的Xij_Width,其示意过程如图8所示,至此每个词组内容集合中选取出关键词组。
105:计算每个关键词组在待处理帧中的起始比特位置的匹配计数值以及每个关键词组在待处理帧中的结束比特位置的匹配计数值。
106:依据所述起始比特位置的匹配计数值和所述结束比特位置的匹配计数值,选取符合划分条件的匹配计数值对应的比特位置作为字段的可能性划分点,所述可能性划分点用于指示从所述可能性划分点开始解析所述二进制协议数据。
其中关键词组在待处理帧中的起始比特位置表示关键词组在待处理帧中的开始位置,结束比特位置表示关键词组在待处理帧中的结束位置,匹配计数值来自于关键词组与待处理帧的扫描比较,匹配计数值与待处理帧上的比特位紧密联系,通过记录每一比特位上的匹配计数值,表明待处理帧上每一比特位被匹配成功的次数。由于控制字段使用率较高,匹配次数越高,可能对应于划分点的可能性也就越高。以此可能性划分点可以获取控制字段在待处理帧中的位置,以此来解析二进制协议数据。
在本发明实施例中,获取可能性划分点的一种手段可以是:选取匹配计数值大于预设匹配计数值门限的开始比特位和结束比特位,所选取的开始比特位和结束比特位为可能性划分点,其中预设匹配计数值门限可以根据不同应用场景来设置,本发明实施例并不限定其具体取值。
从上述技术方案可以看出,本发明实施例提供的获取二进制协议数据控制字段划分点的方法可以以比特位为单位对待处理帧进行处理,以得到待处理帧中的可能性划分点,实现以比特为单位获取二进制协议数据的控制字段划分点,以适用于基于二进制类型的协议数据划分。
此外,应用本发明实施例提供的方法在处理图9所示的待处理帧时,以比特为单位的词组宽度可以扫描到“控制”字段中的嵌套字段,如N(R)字段,因此利用以比特为单位的词组宽度扫描可以降低嵌套字段被遗漏的几率,提高可能性划分点获取的准确度。
在本发明实施例中,计算关键词组在待处理帧中的开始比特位置的匹配计数值的过程可以是前向匹配操作,所谓前向匹配操作为:以每个关键词组的比特位数为第一宽度单位从待处理帧的第一位比特位开始扫描,分别得到与关键词组相同内容的第一词组后,如果所述第一词组的内容与对应的所述关键词组的内容相同,则将第一词组的起始比特位的匹配计数值加1,将所述第一词组的结束比特位的匹配计数值加1,并后移与所述第一宽度单位相同的比特位数继续扫描所述待处理帧,直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数,所述第一词组的开始比特位位置为所述关键词组的起始比特位位置,所述第一词组的结束比特位位置为所述关键词组的结束比特位位置;
如果所述第一词组的内容与对应的所述词组的内容不相同,则仅后移一位比特位,以所述第一宽度单位扫描所述待处理帧,直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数;
每扫描到待处理帧与所述关键词组的内容相同的第一词组,对所述第一词组的起始比特位位置和结束比特位位置的匹配计数值加1。其扫描过程可以参阅图10所示,其原理是重复出现字段极有可能是控制字段,计数值越高表明作为控制字段的划分点的可能性越高。
图10所示过程以集合Z20%_Wdith为基础,待处理帧个数为M,帧长为N为例,依次按照词组宽度Width,从各组存储空间Z20%_Wdith中取出FX[1]。
从第一个待处理帧的第一位比特位开始进行匹配操作,匹配对象为FX[1]和与之等宽的第一词组,匹配目的为检验两者内容是否一致。若内容一致,则在第一位比特位(开始比特位)进行一次“投票”操作,即第一位比特位的计数值(Tichet[j])加1,并在匹配的第一词组的最后一位比特位(结束比特位)也“投票”一次,即第(j+Width)比特位的计数值也加1,其中Ticket[N]用于记录每一位比特位的计数值。投票的具体取值可以依据不同应用场景设置。
若匹配成功,则后移与FX[1]宽度的比特位数。若匹配不成功,则后移一位,进行重复操作。
通过上述前向匹配操作可以获取到部分划分点,但是有些二进制协议数据的控制字段设置在帧尾,因此本发明实施例在采用前向匹配操作获取待处理帧上每一比特位上匹配计数值的同时,还可以进一步采用后向匹配操作获取待处理帧上每一比特位上匹配计数值,其过程如下:
首先,以每个所述关键词组的比特位数为第二宽度单位从各个所述待处理帧的最后一个比特位扫描,分别得到比特位数与所述关键词组的比特位数相同的第二词组;
其次,如果所述第二词组的内容与对应的所述关键词组的内容相同,则将所述第二词组的起始比特位的匹配计数值加1,对第二词组的结束比特位的匹配计数值加1,并前移与所述第二宽度单位相同的比特位数继续扫描所述待处理帧,直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数,所述第二词组的起始比特位位置为所述关键词组的起始比特位位置,所述第二词组的结束比特位位置的匹配计数值为所述关键词组的结束比特位位置;
如果所述第二词组的内容与对应的所述关键词组的内容不相同,则前移一位比特位以所述关键词组的比特位数扫描所述待处理帧,直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数;每扫描到与所述关键词组的内容相同的第二词组,对所述第二词组的起始比特位和结束比特位的计数值加1。
对每个待处理帧的处理可以参阅图11所示,图11以集合Z20%_Wdith为基础,待处理帧个数为M,帧长为N为例,对后向匹配操作过程进行说明。
将待处理帧通过本发明实施例提供的获取二进制协议数据控制字段划分点的方法的实验可以参阅图12至图17所示,该实验的实验结果以图12所示待处理帧,对帧长为880,帧数为1250个待处理帧,采用第一阈值为3bit、第二阈值为16bit、预设频率为100为例,结合前向匹配操作和后向匹配操作得出图13至图15所示的关键词组示意图、前向匹配操作得到匹配计数值的示意图和后向匹配操作得到匹配计数值的示意图,并将前向匹配操作计数值和后向匹配操作计数值通过Matlab软件观察,可以发现前向匹配的计数值较高的可能性划分点和后向匹配的计数值较高的可能性划分点,其结果如图16和图17所示。结合图16和图17可知,对待处理帧处理后得到的可能性划分点在第10,18,24,32,38,64比特位置。实验结果进一步以表1说明,其中实际为待处理帧中已知的划分点,推导则为采用本发明实施例提供的方法得到的可能性划分点。
表1划分点结果示意表
在这里需要说明的一点是:在获取二进制协议数据控制字段划分点之前,各个待处理帧的帧长不等同且帧头未对齐,因此为了更好地获取划分点,可以首先对待处理帧进行预处理以将不同预处理帧处理为同一未知协议类型的数据,其中预处理包括:将各个待处理帧的帧头对齐,并以各个待处理帧中比特位数最大的待处理帧的比特位数为基准长度,采用数据零将其他待处理帧的比特位数填充至基准长度。
由于本发明实施例针对的是非公开协议的二进制协议数据,在处理待处理帧时该待处理帧的协议类型未知,所以在对齐帧头时是通过对待处理帧所属类型的协议数据进行分析后得出先验知识——协议数据的开头为状态同步而设计,因此协议数据的开头是8bit或16bit的序列,通过该先验知识对齐帧头。
例如链路层协议开头为连续8个“1”的比特序列,在待处理帧为链路层协议帧的情况下,只要遇到连续8个“1”,则认为为帧头,将这8个“1”对齐。
与上述方法实施例相对应,本发明实施例还提供一种获取二进制协议数据中控制字段划分点的装置,其结构示意图如图18所示,装置标号记为10,其可以包括:设置单元11、扫描单元12、第一计算单元13、选取记录单元14、第二计算单元15和划分点选取单元16。其中,
设置单元11,用于设置以比特为单位的不同词组宽度以及每个词组宽度的词组内容集合。其中待处理帧为二进制协议数据,且为同一未知协议类型数据,在同一类型二进制协议数据中至少包括控制字段和载荷数据字段,如链路层数据。
在本发明实施例中,词组宽度用于对待处理帧进行扫描,以获取比特位数与词组宽度的比特位数相同的词组,并且词组宽度是指连续二进制数据序列的比特位数,所述二进制数据序列指由0和1构成的连续位数据序列,也称比特位数据序列,所述比特位指所述二进制数据中某一位比特或比特位位置,词组宽度用于对待处理帧进行扫描,以获取比特位数与词组宽度的比特位数相同的词组。该词组宽度的取值范围包括在第一阈值和第二阈值内,且词组宽度取值为第一阈值和第二阈值之间的正整数取值。
该第一阈值和第二阈值可以根据不同应用场景来设置。例如待处理帧为链路层数据时,作为面向链路层协议的设计者,字段的最大比特位数为16bit或32bit,如果超过该最大比特位数会导致链路层数据占用链路层的资源过大。在理论方法中,第一阈值和第二阈值可根据实际需求进行设置,例如在实际装置中,待处理帧对象为链路层数据时,词组宽度的第二阈值可以设置为16bit,第一阈值可以设置为3bit。进一步在设置多个词组宽度时,取值相邻的两个词组宽度之差可以为1比特(bit)。
假设词组宽度的第一阈值标记为Width_Min,其取值为3bit;词组宽的第二阈值标记为Width_Max,其取值为16bit,则设置的词组宽度可以为:[Width_Min],[Width_Min+1],[Width_Min+2],……,[Width_Max-1],[Width_Max]。
从上述提供的设置词组宽度方式可以看出,词组宽度的取值和个数与第一阈值和第二阈值相关。上述仅阐述一种可行设置方式,在实际设置词组宽度时,还可以仅设置两个词组宽度,其取值分别为:[Width_Min],[Width_Max],也可以取值为:[Width_Min], [Width_Max],词组宽度的具体设置方式本发明实施例并不加以限制。
扫描单元12,用于利用每个词组宽度对各个待处理帧进行遍历扫描,分别得到比特位数与每个词组宽度的比特位数相同的词组,并将得到的每个词组宽度的词组存储在每个词组宽度下词组内容集合中。
每个词组宽度下的词组为二进制数据内容,该二进制数据内容又可称为所述每个词组宽度的词组内容。在本发明实施例中,遍历扫描待处理帧以得到比特位数与每个词组宽度的比特位数相同的词组的一种可行方式是:每次选取一个词组宽度依次对各个待处理帧进行扫描,直至所有词组宽度全部被选取。
其遍历扫描过程是:选取一个词组宽度后,利用所选取的词组宽度从各个待处理帧的第一位比特位扫描,得到比特位数与每个词组宽度的比特位数相同的词组;在得到比特位数与词组宽度的比特位数相同的词组后,后移一位比特位以词组宽度扫描待处理帧直至待处理帧剩余的比特位数小于词组宽度的比特位数,以词组宽度每扫描一次得到一个比特位数与词组宽度的比特位数相同的词组,具体可以参阅图2所示。
在本发明实施例中,遍历扫描待处理帧以得到比特位数与每个词组宽度的比特位数相同的词组的另一种可行方式是:选取一个待处理帧后,利用所有的词组宽度依次对所选取的待处理帧进行扫描,然后再从剩余的待处理帧中继续选取后使用所有的词组宽度进行扫描直至所有待处理帧全部被扫描,其中利用所有的词组宽度对所选取的待处理帧进行扫描的过程可以参阅上述步骤step1和step2,对此不再阐述。
遍历扫描待处理帧以得到比特位数与每个词组宽度的比特位数相同的词组的其他可行方式是:利用每个词组宽度从各个待处理帧的第一位比特位开始,间隔所利用的词组宽的比特位数逐次进行扫描,得到比特位数与每个词组宽度的比特位数相同的词组。
在本发明实施例中,图3和图4提供了扫描单元12遍历扫描待处理帧的两种示意图,其中图3为以同一词组宽度每移位一比特位扫描待处理帧,而图4为以同一词组宽度每移位词组宽度所示比特位扫描待处理帧。
第一计算单元13,用于计算每个词组内容集合中每个词组重复出现的频率。其中频率是指词组在词组内容集合中出现的频率,在本发明实施例中计算词组的频率的可行方式是:将以相同词组宽度扫描不同待处理帧得到的词组进行对比,当以相同词组宽度扫描不同待处理帧得到的词组内容相同时,对内容相同的词组的频率加1。
在这里需要说明的一点是:在计算词组的频率时是将相同词组宽度的词组进行对比,统计与某个词组具有相同内容词组的个数来得到词组的频率,因此在存储词组时应将具有相同词组宽的词组存储至同一个词组内容集合中,其存储过程可以参阅方法实施例中步骤103中的相关说明,对此不再阐述。
选取记录单元14,用于从每个词组内容集合中选取词组重复出现频率大于预设词频频率门限的词组为关键词组,并将关键词组记录在字典中,其中字典是关键词组的集合,在字典内的关键词组用于解析二进制协议数据。
由于在同一词组宽度下词组较多,如果将全部的频率结果代入到后续的处理中去,即将全部词组作为关键词组会增加后续计算的数据量,因此在实际操作中可以将词组按照频率高低进行排名。
在统计频率高低排名后,设定一个频率排名的界限,选取高于界限频率排名之前的词组作为关键词组,这些关键词组可以记录在一个字典内,该字典被设计为文本格式或其他文档格式的文档,作为记录经过处理的最终数据结果的载体。以本发明实施例针对的实际情况为例,将频率大于预设频率的词组为关键词组,即可以选取频率最高的前p%的字段为关键词组,其中p%为预设频率。
实际操作中不同的词组宽度和扫描方式,得到的词组不同,并且不同类型的待处理帧选取预设频率的原则也不同。因此在本发明实施例中p%可以根据具体分析过程进行人为定义。其可以是排名顺序的百分比,也可以是频率值的界限。
在本发明实施例中获取关键词组的过程可以如下:首先将每一个[Y1_Width,Y2_Width,……,YM_Width]向量标记为Zwidth_Width,显然Z向量的个数取决于词组宽度的取值范围,Z向量的个数与词组宽度的取值个数相同。
从每个Z向量中取出前20%(预设频率)排名的词组,其集合记为Z20%_Wdith,Z20%_Wdith对应于词组宽度Wdith下的存储空间Array[M][N]_Wdith内数据,按大到小排列的前20%的词组,如图7所示。前20%的词组可以保存至新存储空间,并记录为Z20%_Wdith=[FX[1]_Wdith,FX[2]_Wdith,……,FX[20%MN]_Wdith],Z20%_Wdith中的FX[i]_Wdith对应着以Width为词组宽度的Zwidth_Width中排名为第i的Xij_Width,其示意过程如图8所示,至此每个词组内容集合中选取出关键词组。
第二计算单元15,用于计算每个关键词组在待处理帧中的起始比特位置的匹配计数值,以及每个关键词组在待处理帧中的结束比特位置的匹配计数值。
划分点选取单元16,用于依据起始比特位置的匹配计数值和结束比特位置的匹配计数值,选取符合划分条件的匹配计数值对应的比特位置作为字段的可能性划分点,可能性划分点用于指示从可能性划分点开始解析二进制协议数据。
其中关键词组在待处理帧中的起始比特位置表示关键词组在待处理帧中的开始位置,结束比特位置表示关键词组在待处理帧中的结束位置,匹配计数值来自于关键词组与待处理帧的扫描比较,匹配计数值与待处理帧上的比特位紧密联系,通过记录每一比特位上的匹配计数值,表明待处理帧上每一比特位被匹配成功的次数。由于控制字段使用率较高,匹配次数越高,可能对应于划分点的可能性也就越高。以此可能性划分点可以获取控制字段在待处理帧中的位置,以此来解析二进制协议数据。
在本发明实施例中,获取可能性划分点的一种手段可以是:选取匹配计数值大于预设匹配计数值门限的开始比特位和结束比特位,所选取的开始比特位和结束比特位为可能性划分点,其中预设匹配计数值门限可以根据不同应用场景来设置,本发明实施例并不限定其具体取值。
从上述技术方案可以看出,本发明实施例提供的获取二进制协议数据控制字段划分点的装置可以以比特位为单位对待处理帧进行处理,以得到待处理帧中的可能性划分点,实现以比特为单位获取二进制协议数据的控制字段划分点,以适用于基于二进制类型的协议数据划分。
此外,应用本发明实施例提供的装置在处理图9所示的待处理帧时,以比特为单位的词组宽度可以扫描到“控制”字段中的嵌套字段,如N(R)字段,因此利用以比特为单位的词组宽度扫描可以降低嵌套字段被遗漏的几率,提高可能性划分点获取的准确度。
在本发明实施例中,第二计算单元15计算关键词组在待处理帧中的开始比特位置的匹配计数值的过程可以是前向匹配操作,所谓前向匹配操作即是从待处理帧的第一位比特位开始计算,如图19所示第二计算单元15的结构示意图,可以包括:第一扫描子单元151、第一计数子单元152、第一移位子单元153和第二移位子单元154。
第一扫描子单元151,用于以每个关键词组的比特位数为第一宽度单位从各个待处理帧的第一位比特位扫描,分别得到比特位数与关键词组的比特位数相同的第一词组。
第一计数子单元152,用于在第一词组的内容与对应的关键词组的内容相同的情况下,将第一词组的起始比特位的匹配计数值加1,将第一词组的结束比特位的匹配计数值加1,第一词组的开始比特位位置为关键词组的起始比特位位置,第一词组的结束比特位位置为关键词组的结束比特位位置。
第一移位子单元153,用于在第一词组的内容与对应的关键词组的内容相同的情况下,后移与第一宽度单位相同的比特位数,并触发第一扫描子单元151继续以第一宽度单位扫描待处理帧,直至待处理帧剩余的比特位数小于词组宽度的比特位数。
第二移位子单元154,用于在第一词组的内容与对应的词组的内容不相同的情况下,仅后移一位比特位,并触发第一扫描子单元151继续以第一宽度单位扫描待处理帧,直至待处理帧剩余的比特位数小于词组宽度的比特位数。
每次触发第一扫描子单元151后,第一扫描子单元151会根据扫描得到的第一词组与对应关键词组的内容是否匹配来触发第二计算单元15中的其他子单元,具体是第一词组与对应关键词组的内容匹配时,触发第一计数子单元152和第一移位子单元153;第一词组与对应关键词组的内容不匹配时,触发第二移位子单元154。
通过上述前向匹配操作可以获取到部分划分点,但是有些二进制协议数据的控制字段设置在帧尾,因此本发明实施例在采用前向匹配操作获取待处理帧上每一比特位上匹配计数值的同时,还可以进一步采用后向匹配操作获取待处理帧上每一比特位上匹配计数值,相应的本发明实施例提供的装置在图18基础上,还可以包括第三计算单元17,如图20所述,其中第三计算单元17,用于利用每个关键词组的比特位数对各个待处理帧进行后向扫描,分别得到每个关键词组在待处理帧中的起始比特位和结束比特位的匹配计数值。
该第三计算单元17的结构示意图如图21所示,可以包括:第二扫描子单元171、第二计数子单元172、第三移位子单元173和第四移位子单元174。
第二扫描子单元171,用于以每个关键词组的比特位数为第二宽度单位从各个待处理帧的最后一个比特位向前扫描,分别得到比特位数与关键词组的比特位数相同的第二词组。
第二计数子单元172,用于在第二词组的内容与对应的关键词组的内容相同的情况下,将第二词组的起始比特位位置的匹配计数值加1,将第二词组的结束比特位位置的匹配计数值加1,第二词组的开始比特位为关键词组的开始比特位,第二词组的结束比特位为关键词组的结束比特位。
第三移位子单元173,用于在第二词组的内容与对应的关键词组的内容相同的情况下,前移与第二宽度单位相同的比特位数,并触发第二扫描子单元171以第二宽度单位扫描待处理帧,直至待处理帧剩余的比特位数小于词组宽度的比特位数。
第四移位子单元,174用于在第二词组的内容与对应的关键词组的内容不相同的情况下,前移一位比特位,并触发第二扫描子单元171以第二宽度单位扫描待处理帧,直至待处理帧剩余的比特位数小于词组宽度的比特位数。
第二扫描子单元171每扫描一次后,第二扫描子单元171会根据扫描得到的第二词组与对应关键词组的内容是否匹配来触发第三计算单元17中的其他子单元,具体是第二词组与对应关键词组的内容匹配时,触发第二计数子单元172和第三移位子单元173;第二词组与对应关键词组的内容不匹配时,触发第四移位子单元174。
当然,在本发明实施例中,第二计算单元15也可以集成第三计算单元17的功能,即由一个计算单元完成前向匹配操作和后向匹配操作获取匹配计数值的过程,对此集成两个过程的计算单元的结构为将第二计算单元15和第三计算单元组合构成,本发明实施例不再详细介绍。
此外本发明实施例提供的装置在对待处理帧进行处理之前,还可以由装置中的预处理单元对待处理帧进行预处理,以得到同一未知协议类型的数据,在预处理过程中选取各个待处理帧中的比特位数最大的长度作为基准长度,将其他比特位数小于基准长度的待处理帧采用数据零填充至基准长度。并且在预处理过程中还可以将各个待处理帧的帧头对齐。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上对本发明所提供的一种获取二进制协议数据控制字段划分点的方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (12)

1.一种获取二进制协议数据中控制字段划分点的方法,其特征在于,包括:
设置以比特为单位的不同词组宽度以及每个所述词组宽度的词组内容集合,其中待处理帧为所述二进制协议数据,且为同一未知协议类型数据,所述词组宽度是指连续二进制数据序列的比特位数,所述词组宽度的取值范围包含第一阈值和第二阈值在内,且在第一阈值和第二阈值之间的正整数;
利用每个所述词组宽度对各个所述待处理帧进行遍历扫描,分别得到比特位数与每个所述词组宽度的比特位数相同的词组,并将得到的每个所述词组宽度的词组存储在每个所述词组宽度下所述词组内容集合中;
计算每个所述词组内容集合中每个所述词组重复出现的频率;
从每个所述词组内容集合中选取词组重复出现频率大于预设词频频率门限的词组为关键词组,并将关键词组记录在字典中,其中所述字典是所述关键词组的集合,在所述字典内的所述关键词组用于解析所述二进制协议数据;
计算每个所述关键词组在所述待处理帧中的起始比特位置的匹配计数值,以及每个所述关键词组在所述待处理帧中的结束比特位置的匹配计数值;
依据所述起始比特位置的匹配计数值和所述结束比特位置的匹配计数值,选取符合划分条件的匹配计数值对应的比特位置作为字段的可能性划分点,所述可能性划分点用于指示从所述可能性划分点开始解析所述二进制协议数据。
2.根据权利要求1所述的方法,其特征在于,利用每个所述词组宽度对各个所述待处理帧进行遍历扫描,分别得到比特位数与每个所述词组宽度的比特位数相同的所述词组,包括:
利用每个所述词组宽度从各个所述待处理帧的第一位比特位扫描,得到比特位数与每个所述词组宽度的比特位数相同的词组;
在得到比特位数与所述词组宽度的比特位数相同的词组后,后移一位比特位以所述词组宽度扫描所述待处理帧直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数,以所述词组宽度每扫描一次得到一个比特位数与所述词组宽度的比特位数相同的词组。
3.根据权利要求2所述的方法,其特征在于,计算每个所述词组内容集合中每个所述词组重复出现的频率,包括:
将以相同词组宽度扫描不同待处理帧得到的词组进行对比;
当以相同词组宽度扫描不同待处理帧得到的词组内容相同时,对内容相同的词组的频率加1。
4.根据权利要求3所述的方法,其特征在于,计算每个所述关键在所述待处理帧中的起始比特位置的匹配计数值,以及每个所述关键词组在所述待处理帧中的结束比特位置的匹配计数值,包括:
以每个所述关键词组的比特位数为第一宽度单位从各个所述待处理帧的第一位比特位扫描,分别得到比特位数与所述关键词组的比特位数相同的第一词组;
如果所述第一词组的内容与对应的所述关键词组的内容相同,则将第一词组的起始比特位的匹配计数值加1,将所述第一词组的结束比特位的计数值加1,并后移与所述第一宽度单位相同的比特位数继续扫描所述待处理帧,直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数,所述第一词组的开始比特位位置为所述关键词组的起始比特位位置,所述第一词组的结束比特位位置为所述关键词组的结束比特位位置;
如果所述第一词组的内容与对应的所述词组的内容不相同,则仅后移一位比特位,以所述第一宽度单位扫描所述待处理帧,直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数;
每扫描到待处理帧与所述关键词组的内容相同的第一词组,对所述第一词组的起始比特位位置和结束比特位位置的匹配计数值加1。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:利用每个所述关键词组的比特位数对各个所述待处理帧进行后向扫描,分别得到每个所述关键词组在所述待处理帧中的起始比特位和结束比特位的匹配计数值,其中所述后向扫描得到关键词组在所述待处理帧中的起始比特位和结束比特位的匹配计数值的过程,包括:
以每个所述关键词组的比特位数为第二宽度单位从各个所述待处理帧的最后一个比特位向前扫描,分别得到比特位数与所述关键词组的比特位数相同的第二词组;
如果所述第二词组的内容与对应的所述关键词组的内容相同,则将所述第二词组的起始比特位位置的匹配计数值加1,将所述第二词组的结束比特位位置的匹配计数值加1,并前移与所述第二宽度单位相同的比特位数继续扫描所述待处理帧,直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数,所述第二词组的开始比特位为所述关键词组的开始比特位,所述第二词组的结束比特位为所述关键词组的结束比特位;
如果所述第二词组的内容与对应的所述关键词组的内容不相同,则前移一位比特位,以所述第二宽度单位扫描所述待处理帧,直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数;
每扫描到所述待处理帧中与所述关键词组的内容相同的第二词组,对所述第二词组的起始比特位和结束比特位的匹配计数值加1。
6.根据权利要求1至5任意一项所述的方法,其特征在于,所述方法还包括:
将所述待处理帧预处理为同一未知协议类型的数据,且预处理过程中选取各个所述待处理帧中的比特位数最大的长度作为基准长度,将其他比特位数小于所述基准长度的所述待处理帧采用数据零填充至所述基准长度。
7.根据权利要求1至5任意一项所述的方法,其特征在于,依据所述起始比特位置的匹配计数值和所述结束比特位置的匹配计数值,选取符合划分条件的匹配计数值对应的比特位置作为字段的可能性划分点,包括:
选取匹配计数值大于预设匹配计数值门限的开始比特位和结束比特位,所选取的开始比特位和结束比特位为可能性划分点。
8.一种获取二进制协议数据中控制字段划分点的装置,其特征在于,包括:
设置单元,用于设置以比特为单位的不同词组宽度以及每个所述词组宽度的词组内容集合,其中待处理帧为所述二进制协议数据,且为同一未知协议类型数据,所述词组宽度是指连续二进制数据序列的比特位数,所述词组宽度的取值范围包含第一阈值和第二阈值在内,且在第一阈值和第二阈值之间的正整数;
扫描单元,用于利用每个所述词组宽度对各个所述待处理帧进行遍历扫描,分别得到比特位数与每个所述词组宽度的比特位数相同的词组,并将得到的每个所述词组宽度的词组存储在每个所述词组宽度下所述词组内容集合中;
第一计算单元,用于计算每个所述词组内容集合中每个所述词组重复出现的频率;
选取记录单元,用于从每个所述词组内容集合中选取词组重复出现频率大于预设词频频率门限的词组为关键词组,并将关键词组记录在字典中,其中所述字典是所述关键词组的集合,在所述字典内的所述关键词组用于解析所述二进制协议数据;
第二计算单元,用于计算每个所述关键词组在所述待处理帧中的起始比特位置的匹配计数值,以及每个所述关键词组在所述待处理帧中的结束比特位置的匹配计数值;
划分点选取单元,用于依据所述起始比特位置的匹配计数值和所述结束比特位置的匹配计数值,选取符合划分条件的匹配计数值对应的比特位置作为字段的可能性划分点,所述可能性划分点用于指示从所述可能性划分点开始解析所述二进制协议数据。
9.根据权利要求8所述的装置,其特征在于,所述扫面单元利用每个所述词组宽度对各个所述待处理帧进行遍历扫描,分别得到比特位数与每个所述词组宽度的比特位数相同的所述词组,包括:
利用每个所述词组宽度从各个所述待处理帧的第一位比特位扫描,得到比特位数与每个所述词组宽度的比特位数相同的词组;
在得到比特位数与所述词组宽度的比特位数相同的词组后,后移一位比特位以所述词组宽度扫描所述待处理帧直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数,以所述词组宽度每扫描一次得到一个比特位数与所述词组宽度的比特位数相同的词组。
10.根据权利要求9所述的装置,其特征在于,所述第二计算单元包括:
第一扫描子单元,用于以每个所述关键词组的比特位数为第一宽度单位从各个所述待处理帧的第一位比特位扫描,分别得到比特位数与所述关键词组的比特位数相同的第一词组;
第一计数子单元,用于在所述第一词组的内容与对应的所述关键词组的内容相同的情况下,将第一词组的起始比特位的匹配计数值加1,将所述第一词组的结束比特位的匹配计数值加1,所述第一词组的开始比特位位置为所述关键词组的起始比特位位置,所述第一词组的结束比特位位置为所述关键词组的结束比特位位置;
第一移位子单元,用于在所述第一词组的内容与对应的所述关键词组的内容相同的情况下,后移与所述第一宽度单位相同的比特位数,并触发所述第一扫描子单元继续以所述第一宽度单位扫描所述待处理帧,直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数;
第二移位子单元,用于在所述第一词组的内容与对应的所述词组的内容不相同的情况下,仅后移一位比特位,并触发所述第一扫描子单元继续以所述第一宽度单位扫描所述待处理帧,直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:第三计算单元,用于利用每个所述关键词组的比特位数对各个所述待处理帧进行后向扫描,分别得到每个所述关键词组在所述待处理帧中的起始比特位和结束比特位的匹配计数值;
其中所述第三计算单元包括:第二扫描子单元、第二计数子单元、第三移位子单元和第四移位子单元;
所述第二扫描子单元,用于以每个所述关键词组的比特位数为第二宽度单位从各个所述待处理帧的最后一个比特位向前扫描,分别得到比特位数与所述关键词组的比特位数相同的第二词组;
所述第二计数子单元,用于在所述第二词组的内容与对应的所述关键词组的内容相同的情况下,将所述第二词组的起始比特位位置的匹配计数值加1,将所述第二词组的结束比特位位置的匹配计数值加1,所述第二词组的开始比特位为所述关键词组的开始比特位,所述第二词组的结束比特位为所述关键词组的结束比特位;
所述第三移位子单元,用于在所述第二词组的内容与对应的所述关键词组的内容相同的情况下,前移与所述第二宽度单位相同的比特位数,并触发所述第二扫描子单元以所述第二宽度单位扫描所述待处理帧,直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数;
所述第四移位子单元,用于在所述第二词组的内容与对应的所述关键词组的内容不相同的情况下,前移一位比特位,并触发所述第二扫描子单元以所述第二宽度单位扫描所述待处理帧,直至所述待处理帧剩余的比特位数小于所述词组宽度的比特位数。
12.根据权利要求9至11任意一项所述的装置,其特征在于,所述装置还包括:
预处理单元,用于将所述待处理帧预处理为同一未知协议类型的数据,且预处理过程中选取各个所述待处理帧中的比特位数最大的长度作为基准长度,将其他比特位数小于所述基准长度的所述待处理帧采用数据零填充至所述基准长度。
CN201410211768.3A 2014-05-19 2014-05-19 一种获取二进制协议数据中控制字段划分点的方法及装置 Active CN103955539B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410211768.3A CN103955539B (zh) 2014-05-19 2014-05-19 一种获取二进制协议数据中控制字段划分点的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410211768.3A CN103955539B (zh) 2014-05-19 2014-05-19 一种获取二进制协议数据中控制字段划分点的方法及装置

Publications (2)

Publication Number Publication Date
CN103955539A CN103955539A (zh) 2014-07-30
CN103955539B true CN103955539B (zh) 2017-03-22

Family

ID=51332814

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410211768.3A Active CN103955539B (zh) 2014-05-19 2014-05-19 一种获取二进制协议数据中控制字段划分点的方法及装置

Country Status (1)

Country Link
CN (1) CN103955539B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104796407B (zh) * 2015-03-23 2018-03-30 电子科技大学 一种未知协议特征的提取方法
CN106484611B (zh) * 2015-09-02 2021-01-15 腾讯科技(深圳)有限公司 基于自动化协议适配的模糊测试方法和装置
CN105791278B (zh) * 2016-02-29 2019-01-22 中国工程物理研究院计算机应用研究所 一种未知二进制协议帧切分与层次划分方法
CN108960307A (zh) * 2018-06-22 2018-12-07 中国人民解放军战略支援部队信息工程大学 一种私有协议字段格式提取方法、装置及服务器
CN111314279B (zh) * 2019-11-25 2021-11-19 北京航空航天大学 一种基于网络流量的未知协议逆向方法
CN111274057B (zh) * 2020-01-13 2021-07-06 北京字节跳动网络技术有限公司 一种内存泄露链路的处理方法、装置、介质和电子设备
CN111800248B (zh) * 2020-05-28 2023-03-14 韦臣龙 基于虚拟载波数据方式实现的通信方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101605126A (zh) * 2008-06-11 2009-12-16 中国科学院计算技术研究所 一种多协议数据分类识别的方法和系统
CN103036848A (zh) * 2011-09-29 2013-04-10 西门子公司 协议的逆向工程方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020152219A1 (en) * 2001-04-16 2002-10-17 Singh Monmohan L. Data interexchange protocol

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101605126A (zh) * 2008-06-11 2009-12-16 中国科学院计算技术研究所 一种多协议数据分类识别的方法和系统
CN103036848A (zh) * 2011-09-29 2013-04-10 西门子公司 协议的逆向工程方法及系统

Also Published As

Publication number Publication date
CN103955539A (zh) 2014-07-30

Similar Documents

Publication Publication Date Title
CN103955539B (zh) 一种获取二进制协议数据中控制字段划分点的方法及装置
CN101350869B (zh) 基于索引和散列的电信计费去重方法及设备
CN100452055C (zh) 一种用于文本或网络内容分析的大规模多关键词匹配方法
CN103605704B (zh) 大量url数据任意字段索引及检索方法
CN109962711B (zh) 一种数据压缩方法、电子设备及存储介质
US8774194B2 (en) Method and apparatus for a high-speed frame tagger
CN106708956B (zh) 一种基于多url规则集的http数据匹配方法
Bramandia et al. On incremental maintenance of 2-hop labeling of graphs
US20140372105A1 (en) Submatch Extraction
Suri et al. Range counting over multidimensional data streams
CN106445918A (zh) 一种中文地址处理方法及系统
Sterck et al. Fast multilevel methods for Markov chains
CN105471548B (zh) 一种网络数据包解析及分发方法
CN101079890B (zh) 一种生成特征码确定状态机的方法和装置
CN101916259B (zh) 确定自动机状态转换表的空间压缩方法
CN102932100B (zh) 一种并行加扰的方法及装置
CN104811407B (zh) 通信方法及系统、通信信号接收方法及装置
Maniscalco et al. Faster lightweight suffix array construction
WO2004075008A2 (en) Method and apparatus for information factoring
Bean et al. Quasistationary distributions for level-dependent quasi-birth-and-death processes
CN105243188B (zh) 一种智能变电站监控信息量自动筛选方法
CN106708532A (zh) 基于tacm的多层次正则表达式匹配方法
Figiel et al. There and back again: On applying data reduction rules by undoing others
CN105095239A (zh) 一种不确定图查询方法及装置
CN107977440A (zh) 一种解析数据文件的方法、装置和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant