CN105791278B - 一种未知二进制协议帧切分与层次划分方法 - Google Patents
一种未知二进制协议帧切分与层次划分方法 Download PDFInfo
- Publication number
- CN105791278B CN105791278B CN201610111110.4A CN201610111110A CN105791278B CN 105791278 B CN105791278 B CN 105791278B CN 201610111110 A CN201610111110 A CN 201610111110A CN 105791278 B CN105791278 B CN 105791278B
- Authority
- CN
- China
- Prior art keywords
- frame
- binary protocol
- protocol data
- common subsequence
- code
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 230000001360 synchronised effect Effects 0.000 claims abstract description 26
- 238000012545 processing Methods 0.000 claims abstract description 16
- 230000011218 segmentation Effects 0.000 claims abstract description 14
- 238000012098 association analyses Methods 0.000 claims abstract description 13
- 238000000926 separation method Methods 0.000 claims description 3
- 238000007429 general method Methods 0.000 abstract description 2
- 238000004891 communication Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 4
- 238000011160 research Methods 0.000 description 3
- 229910002056 binary alloy Inorganic materials 0.000 description 2
- 238000009432 framing Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000002864 sequence alignment Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/03—Protocol definition or specification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/26—Special purpose or proprietary protocols or architectures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种未知二进制协议帧切分与层次划分方法,在无先验知识情况下,对协议数据进行分词处理,以分词后的二进制协议数据作为输入,识别其中的关键特征,并关联分析关键特征之间的位置关系,计算选择帧的同步码,以此作为切分帧的依据,同时分析分词后的二进制协议数据,计算其公共子序列的长度,从而划分出协议帧中所包含的层次关系。本发明是一种通用的方法,能够将完全由“0”和“1”构成的未知二进制协议数据中定位出协议帧的起始位置,并能够分析出该协议中包含的层次关系。
Description
技术领域
本发明涉及无线通信中未知协议识别领域,特别是涉及一种未知二进制协议帧切分与层 次划分方法。
背景技术
无线通信领域中,经常获取或截获各种通信数据,经解调解码解密后,数据为二进制数 据,在未知的协议规范情况下,获取其承载的信息载荷的内容是目前无线通信领域中的一个 难以解决的问题。而要获取其信息载荷,必须先对数据进行协议帧的切分,将获取的二进制 数据拆分为一个一个的协议帧,之后再对协议进行层次划分,以明确该通信协议有几个层次, 如链路层、网络层、应用层。因在无线通信领域中,协议层次不再同有线网络一样始终遵循 几种标准且层次固定,无线通信可以根据实际需要专门设计协议的层次,如卫星通信、地空 通信等。因此从通信数据中获取帧并进行层次划分已成为协议逆向分析的一个重要组成部分。
目前,国内外的研发状态主要呈现以下特点:
1)多数研究成果主要针对的是文本协议,对二进制协议相应的研究成果少,且在实际应 用中仍有很大的制约与局限。
2)绝大多数研究成果是针对应用层协议,在应用层协议中无需进行帧切分和层次划分, 对于二进制协议从链路层、网络层、传输层、直至应用层协议的较为通用的帧切分和层次划 分无法适用。
发明内容
本发明的目的在于克服现有技术的不足,提供一种应用于无线通信中未知协议识别领域 的二进制协议帧切分与层次划分方法。
本发明的目的是通过以下技术方案来实现的:一种未知二进制协议帧切分与层次划分方 法,所述方法包括以下步骤:
S1,在无先验知识情况下,对二进制协议数据进行分词处理;
S2,以分词后的二进制协议数据作为输入,识别其中的关键特征,并关联分析特征之间 的位置关系,计算关键特征的位置差;
S3,根据一定的同步码识别规则,选择帧的同步码;
S4,根据识别的同步码,确认帧起始位置,并采用同步码匹配对比特数据集进行切分, 从而得到独立的报文帧;
S5,以分词后的二进制协议数据作为输入,同时依据关键特征位置差的关联分析与帧切 分的结果,分析分词后的二进制协议数据,获取其公共子序列,并计算公共子序列的长度, 获取格式划分边界值,根据公共子序列的长度对协议帧进行层次划分。
进一步的,所述步骤S1包括以下子步骤:
S101,采用多重滑动窗口进行二进制协议数据基本串统计计算;
S102,以Nbit为步进滑动窗口,记录步进滑动窗口中串值的位置,统计其出现次数,以 形成基本串集合,其中N≥1。
在所述二进制数据的分词处理中,采用多重滑动窗口进行基本串统计,位数序列为非常 见序列的(例如7位序列)可以通过对基本串的后续分析获得,其滑动窗口方式以拟统计的 最少位窗口为基本窗口,以本次窗口和多次移动前窗口形成较大的窗口,类推构造更大的窗 口,确定窗口滑动的步长通过一次搜索获得多种长度多种数值的序列串信息。
由于,数据帧头部一般存在相同的频繁特征;分词处理后的数据,可以计算各种特征字 段,而其位置差也相对固定,可以通过计算特征字段之间的位置差来进行帧长确定。因此进 一步的,所述步骤S2具体包括:在分词基础上,采用位置差关联分析频繁序列间的关系,进 而确定协议帧的帧长参数,并以帧长参数作为一个分隔依据对协议数据进行分帧处理。
由于,同步码有模式固定的同步字段(一般为连续出现的0,1或者01交替出现)和帧起 始符SFD,这对于比特流数据来说是非常明显的特征。因此进一步的,所述步骤S3在查找同 步码时具体包括以下子步骤:
S301,对分词获取到的频繁序列按照其位置关系递归地进行拼接,直到不能获取更长的 特征串为止;
S302,将得到的长频繁序列结合前导码的特征进行排序,选取排在前n位的频繁序列组 成前导码候选集合;
S303,从候选集合中选出最终的标准前导码即标准同步码。
进一步的,所述步骤S303包括以下方式:
A、将候选集合中出现次数最多的长频繁序列作为最终选择的标准同步码;
B、S3031,对前导码候选集中的长频繁序列进行最长公共子序列LCS匹配处理,得到最 长公共子序列L,记录其出现次数c;
S3032,对最长公共子序列L以mbit为步长进行扩充,得到扩充后的序列L′i,并统计每 次扩充之后序列L′i出现的次数c′i,其中i表示进行扩充的次数;
S3033,将出现次数c′i最多的长频繁序列作为最终选择的标准同步码。
进一步的,由于无线通信协议的帧同步码一般较长,同步码在每个报文中都会出现,所 以是最频繁的,并且同步码一般具有很明显的特征,如0、1间隔等。因此,步骤S3中所述 的同步码识别规则,一般可为选择最长、最频繁的序列为同步码的识别规则。
进一步的,步骤S5中,一般采用序列比对法,通过对帧格式序列集中的全部格式序列进 行两两比对,来计算每对格式序列的公共子序列长度。进一步的,统计出全部格式序列的公 共子序列长度,获取格式划分边界值。
本发明的有益效果是:本发明为应用于无线通信中未知协议识别领域的二进制协议帧切 分与层次划分方法,包括对二进制数据进行分词处理、对分词结果进行关键特征位置差的关 联分析、帧同步码的选择等步骤来完成协议帧的切分,之后根据分词处理和关联分析等结果, 进一步对协议帧进行层次划分。本发明是一种通用方法,能适用于各种二进制协议的分析, 而不用关心该二进制协议是哪一层的协议。本发明能够实现将完全由“0”和“1”构成的数 据中定位出协议帧的起始位置,并能够分析出该协议中包含的层次关系。
附图说明
图1为本发明的一种流程示意图;
图2为本发明基于滑动窗口的数据序列计算算法示意图;
图3为本发明同步码序列查找方法流程图;
图4为本发明公共子序列的提取结果示例图。
具体实施方式
下面结合附图进一步详细描述本发明的技术方案,但本发明的保护范围不局限于以下所 述。
如图1所示,该实施例描述了一种未知二进制协议帧切分与层次划分方法,所述方法包 括以下步骤:
S1,在无先验知识情况下,对二进制协议数据进行分词处理;
S2,以分词后的二进制协议数据作为输入,识别其中的关键特征,并关联分析特征之间 的位置关系,计算关键特征的位置差;
S3,根据一定的同步码识别规则,选择帧的同步码;
S4,根据识别的同步码,确认帧起始位置,并采用同步码匹配对比特数据集进行切分, 从而得到独立的报文帧;
S5,以分词后的二进制协议数据作为输入,同时依据关键特征位置差的关联分析与帧切 分的结果,分析分词后的二进制协议数据,获取其公共子序列,并计算公共子序列的长度, 获取格式划分边界值,根据公共子序列的长度对协议帧进行层次划分。
进一步的,所述步骤S1包括以下子步骤:
S101,采用多重滑动窗口进行二进制协议数据基本串统计计算;
S102,以Nbit为步进滑动窗口,记录步进滑动窗口中串值的位置,统计其出现次数,以 形成基本串集合,其中N≥1。
在所述二进制数据的分词处理中,采用多重滑动窗口进行4位、8位、16位、……、N位的基本串统计,其中N为≥1的任意数。
若位数序列为非常见序列的(例如7位序列)可以通过对基本串的后续分析获得,其滑 动窗口方式以拟统计的最少位窗口为基本窗口,以本次窗口和多次移动前窗口形成较大的窗 口,类推构造更大的窗口,确定窗口滑动的步长通过一次搜索获得多种长度多种数值的序列 串信息。如图2所示,该图2所示的实施例中,以4位窗口为基本窗口,以mbit为步进滑动 窗口,记录窗口中串值的位置,统计其出现次数,以形成基本串合集,并通过一次搜索获得 多种长度多种数值的序列串信息,由于步进长度为mbit,通过后续处理可得到任意位数的串 信息。
由于,数据帧头部一般存在相同的频繁特征;分词处理后的数据,可以计算各种特征字 段,而其位置差也相对固定,可以通过计算特征字段之间的位置差来进行帧长确定。因此进 一步的,所述步骤S2具体包括:在分词基础上,采用位置差关联分析频繁序列间的关系,进 而确定协议帧的帧长参数,并以帧长参数作为一个分隔依据对协议数据进行分帧处理。
假定比特流中提取出的频繁关联特征序列集合为A={X,Y,Z},其中X,Y,Z...代表比特流 中提取出的频繁特征序列,X={X0,X1,X2,...,Xi},其中Xi代表处于比特流中不同位置的具 有相同值的频繁特征序列,对于A集合中的频繁序列X内的两个特征序列Xi和Xi+1,根据其 在比特流中出现位置的先后次序,计算其位置差pos(Xi+1)-pos(Xi),并假定pos(Xi+1)>pos(Xi),对所有处于比特流中不同位置的Xi进行两两验证,统计 minrepeati=min(pos(Xi+1)-pos(Xi))及其出现次数counti。接下来对A中所有的元素做相同 的处理可以得到Pi={(x,y)|x=minrepeati,y=counti},其中i>0。再对前两个步骤的结果Pi中的y值进行排序,对排序结果进行筛选,根据筛选结果的分布确定定长数据帧的长度。
由于,同步码有模式固定的同步字段(一般为连续出现的0或1,或者0和1交替出现) 和帧起始符SFD,这对于比特流数据来说是非常明显的特征。因此进一步的,如图3所示, 所述步骤S3在查找同步码时具体包括以下子步骤:
S301,对分词获取到的频繁序列按照其位置关系递归地进行拼接,直到不能获取更长的 特征串为止;
S302,将得到的长频繁序列结合前导码的特征进行排序,选取排在前n位的频繁序列组 成前导码候选集合,记为forcanset={cset1,cset2,...};
S303,从候选集合中选出最终的标准前导码即标准同步码。
进一步的,所述步骤S303包括以下方式:
A、将候选集合中出现次数最多的长频繁序列作为最终选择的标准同步码;
B、S3031,对前导码候选集中的长频繁序列进行最长公共子序列LCS匹配处理,得到最 长公共子序列L,记录其出现次数c;
S3032,对最长公共子序列L以mbit为步长进行扩充,如以2bit为步长,得到扩充后的 序列L′i,并统计每次扩充之后序列L′i出现的次数c′i,其中i表示进行扩充的次数;
S3033,将出现次数c′i最多的长频繁序列作为最终选择的标准同步码。
进一步的,由于无线通信协议的帧同步码一般较长,同步码在每个报文中都会出现,所 以是最频繁的,并且同步码一般具有很明显的特征,如0、1间隔等。因此,步骤S3中所述 的同步码识别规则,一般可为选择最长、最频繁的序列为同步码的识别规则。
进一步的,步骤S5中,一般采用序列比对法,通过对帧格式序列集中的全部格式序列进 行两两比对,来计算每对格式序列的公共子序列长度。进一步的,统计出全部格式序列的公 共子序列长度,获取格式划分边界值。输入格式数据表示为列表形式存储,list=[n1,n2……], 其中n1代表第1个字段的位数。首先采用序列比对方法,对帧格式序列集中全部格式序列 进行两两比对,计算每对格式序列公共子格式长度。假设格式序列1与格式序列2前两层协 议相同,公共格式长度为p;格式序列1与格式序列3只有第一层协议相同,公共格式长度 为q。那么,可以初步划分格式序列1的层次前q格式串为一层,p-q格式串为第二层。
如图4所示,该实施例描述了两两序列比对结果的示例图,步骤S5中对每一格式序列的 层次划分都利用对应行或列的公共子序列长度值。例如,格式1与格式3和格式4具有相同 的层1和层2,那么格式1与格式3和格式4的公共子格式长度为层1和层2的总长度为8;格式1与格式2具有相同的层1协议,那么其公共子格式长度为层1长度为4。由此,层次 划分未知情况,可据此逆向推测格式1在8分段处可能存在一个层次划分,在4分段处存在 另一个层次划分。
本发明所提出的一种未知二进制协议帧切分与层次划分方法,能在无先验知识情况下, 对协议数据进行分词处理,以分词后的二进制协议数据作为输入,识别其中的关键特征,并 关联分析关键特征之间的位置关系,计算选择帧的同步码,以此作为切分帧的依据,同时分 析分词后的二进制协议数据,计算其公共子序列的长度,从而划分出协议帧中所包含的层次 关系。本发明是一种通用的方法,能够将完全由“0”和“1”构成的未知二进制协议数据中 定位出协议帧的起始位置,并能够分析出该协议中包含的层次关系。
如上参照附图以示例的方式描述了根据本发明的一种未知二进制协议帧切分与层次划分 方法。但是,本领域技术人员应当理解,对于上述本发明所提出的一种未知二进制协议帧切 分与层次划分方法,还可以在不脱离本发明内容的基础上做出各种改进,或者对其中部分技 术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等, 均应包含在本发明的保护范围之内。因此,本发明的保护范围应当由所附的权利要求书的内 容确定。
Claims (4)
1.一种未知二进制协议帧切分与层次划分方法,其特征在于,所述方法包括以下步骤:
S1,在无先验知识情况下,对二进制协议数据进行分词处理;
S2,以分词后的二进制协议数据作为输入,识别其中的关键特征,并关联分析特征之间的位置关系,计算关键特征的位置差;
S3,根据一定的同步码识别规则,选择帧的同步码,有如下子步骤:
S301,对分词获取到的频繁序列按照其位置关系递归地进行拼接,直到不能获取更长的特征串为止;
S302,将得到的长频繁序列结合前导码的特征进行排序,选取排在前n位的频繁序列组成前导码候选集合;
S303,从候选集合中选出最终的标准前导码即标准同步码;
S4,根据识别的同步码,确认帧起始位置,并采用同步码匹配对比特数据集进行切分,从而得到独立的报文帧;
S5,以分词后的二进制协议数据作为输入,同时依据关键特征位置差的关联分析与帧切分的结果,分析分词后的二进制协议数据,获取其公共子序列,并计算公共子序列的长度,获取格式划分边界值,根据公共子序列的长度对协议帧进行层次划分。
2.根据权利要求1所述的一种未知二进制协议帧切分与层次划分方法,其特征在于,所述步骤S1包括以下子步骤:
S101,采用多重滑动窗口进行二进制协议数据基本串统计计算;
S102,以Nbit为步进滑动窗口,记录步进滑动窗口中串值的位置,统计其出现次数,以形成基本串集合,其中N≥1。
3.根据权利要求1所述的一种未知二进制协议帧切分与层次划分方法,其特征在于,所述步骤S2具体包括:在分词基础上,采用位置差关联分析频繁序列间的关系,进而确定协议帧的帧长参数,并以帧长参数作为一个分隔依据对协议数据进行分帧处理。
4.根据权利要求1所述的一种未知二进制协议帧切分与层次划分方法,其特征在于,所述步骤S303包括以下方式:
A、将候选集合中出现次数最多的长频繁序列作为最终选择的标准同步码;
B、S3031,对前导码候选集中的长频繁序列进行最长公共子序列LCS匹配处理,得到最长公共子序列L,记录其出现次数c;
S3032,对最长公共子序列L以mbit为步长进行扩充,得到扩充后的序列L′i,并统计每次扩充之后序列L′i出现的次数c′i,其中i表示进行扩充的次数;
S3033,将出现次数c′i最多的长频繁序列作为最终选择的标准同步码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610111110.4A CN105791278B (zh) | 2016-02-29 | 2016-02-29 | 一种未知二进制协议帧切分与层次划分方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610111110.4A CN105791278B (zh) | 2016-02-29 | 2016-02-29 | 一种未知二进制协议帧切分与层次划分方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105791278A CN105791278A (zh) | 2016-07-20 |
CN105791278B true CN105791278B (zh) | 2019-01-22 |
Family
ID=56403896
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610111110.4A Expired - Fee Related CN105791278B (zh) | 2016-02-29 | 2016-02-29 | 一种未知二进制协议帧切分与层次划分方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105791278B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107689899A (zh) * | 2017-09-01 | 2018-02-13 | 南京南瑞集团公司 | 一种基于比特流的未知协议识别方法及系统 |
CN108924010A (zh) * | 2018-07-25 | 2018-11-30 | 北京科东电力控制系统有限责任公司 | 一种通信协议识别方法及装置 |
CN110061976B (zh) * | 2019-03-29 | 2021-06-11 | 中国空间技术研究院 | 一种基于数据挖掘的未知协议帧序列提取方法及系统 |
CN110336817B (zh) * | 2019-07-08 | 2021-08-10 | 大连大学 | 一种基于TextRank的未知协议帧定位方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103825784A (zh) * | 2014-03-24 | 2014-05-28 | 中国人民解放军信息工程大学 | 一种非公开协议字段识别方法及系统 |
CN103955539A (zh) * | 2014-05-19 | 2014-07-30 | 中国人民解放军信息工程大学 | 一种获取二进制协议数据中控制字段划分点的方法及装置 |
-
2016
- 2016-02-29 CN CN201610111110.4A patent/CN105791278B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103825784A (zh) * | 2014-03-24 | 2014-05-28 | 中国人民解放军信息工程大学 | 一种非公开协议字段识别方法及系统 |
CN103955539A (zh) * | 2014-05-19 | 2014-07-30 | 中国人民解放军信息工程大学 | 一种获取二进制协议数据中控制字段划分点的方法及装置 |
Non-Patent Citations (1)
Title |
---|
"Inferring Protocol State Machine for Binary Communication Protocol";Fanzhi Meng,etc;《2014IEEE Workshop on Advanced Research and Technology in Industry Applications(WARTIA)》;20140930;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN105791278A (zh) | 2016-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105791278B (zh) | 一种未知二进制协议帧切分与层次划分方法 | |
US7818303B2 (en) | Web graph compression through scalable pattern mining | |
CN102567530B (zh) | 一种文章类型网页智能抽取系统及其方法 | |
CN103970733B (zh) | 一种基于图结构的中文新词识别方法 | |
CN102890778A (zh) | 基于内容的视频检测方法及装置 | |
CN109992766B (zh) | 提取目标词的方法和装置 | |
CN105827422A (zh) | 一种确定网元告警关联关系的方法及装置 | |
CN106445918B (zh) | 一种中文地址处理方法及系统 | |
CN108712414B (zh) | 一种基于序列比对的二进制未知协议报文格式划分方法 | |
CN102420842A (zh) | 一种移动网络中网页的发送方法及系统 | |
CN111935789B (zh) | Uu接口信令关联方法、装置和存储介质 | |
CN104239321B (zh) | 一种面向搜索引擎的数据处理方法及装置 | |
CN112784734A (zh) | 一种视频识别方法、装置、电子设备和存储介质 | |
CN106021556A (zh) | 地址信息处理方法及装置 | |
CN109033636A (zh) | 基于链路层比特流盲分析的链路层接入机制分析方法 | |
CN104778238A (zh) | 一种视频显著性的分析方法及装置 | |
KR20140088318A (ko) | 무선랜에서 채널 정보를 공유하여 채널 검색 시간을 줄이는 방법 및 장치 | |
US8108387B2 (en) | Method of detecting character string pattern at high speed using layered shift tables | |
CN103036848B (zh) | 协议的逆向工程方法及系统 | |
CN111008196A (zh) | 基于深度优先搜索的频繁模式挖掘方法 | |
US20070101354A1 (en) | Method and device for discriminating obscene video using time-based feature value | |
CN112434049A (zh) | 表格数据存储方法、装置、存储介质及电子装置 | |
CN105740292A (zh) | 一种解码方法及装置 | |
CN109446231B (zh) | 一种基于模式关联分析的实值时间序列规则发现方法和装置 | |
CN101600110B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190122 |
|
CF01 | Termination of patent right due to non-payment of annual fee |