CN103200203B - 基于执行轨迹的语义级协议格式推断方法 - Google Patents

基于执行轨迹的语义级协议格式推断方法 Download PDF

Info

Publication number
CN103200203B
CN103200203B CN201310146876.2A CN201310146876A CN103200203B CN 103200203 B CN103200203 B CN 103200203B CN 201310146876 A CN201310146876 A CN 201310146876A CN 103200203 B CN103200203 B CN 103200203B
Authority
CN
China
Prior art keywords
protocol
instruction
intermediate language
semantic
analysis
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
Application number
CN201310146876.2A
Other languages
English (en)
Other versions
CN103200203A (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 University of Science and Technology
Original Assignee
PLA University of Science and Technology
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 University of Science and Technology filed Critical PLA University of Science and Technology
Priority to CN201310146876.2A priority Critical patent/CN103200203B/zh
Publication of CN103200203A publication Critical patent/CN103200203A/zh
Application granted granted Critical
Publication of CN103200203B publication Critical patent/CN103200203B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

基于执行轨迹的语义级协议格式推断方法,依据报文解析时产生的二进制指令执行轨迹,推断报文所采用的协议格式:首先是中间语言转换,将协议实体程序解析通信报文的指令执行轨迹转换为中间语言的形式;其次是细粒度动态污点分析,以中间语言形式的执行轨迹为基础,采用细粒度的动态污点分析,分析协议实体程序解析报文的过程,掌握作为输入的每一个报文字节随程序指令的执行在系统中的传播和影响;最后是语义级的协议格式推断,基于语义级协议解析阶段的特征,进而获取完整的协议报文格式;所述中间语言转换阶段的工作流程:将执行轨迹中的二进制指令逐条按序转换为精简的、语义等价的中间语言指令,生成基于中间语言的抽象执行轨迹。

Description

基于执行轨迹的语义级协议格式推断方法
技术领域
本发明涉及网络技术,尤其涉及一种依据报文解析产生的二进制指令执行轨迹,推断协议报文格式的方法。
背景技术
在通信网络中,协议定义了在两个或多个通信实体之间交换的报文格式和次序,以及在报文传输或其它事件方面所采取的动作。协议被看作通信网络的核心要素,其质量直接关系到网络及系统的稳定性、可靠性、安全性以及互操作性。入侵检测、模糊测试、协议重用、协议脆弱性分析等大量网络安全技术都以协议的详细描述信息为基础。
目前,针对已知协议的分析和识别技术已较为成熟。但在计算机网络中还存在大量私有协议。很多软件厂商出于安全、经济利益等因素的考虑,没有公开软件的通信协议细节。此外,恶意软件也使用自己的私有协议实现感染节点间的相互通信。为此,研究人员越来越多地采用协议逆向手段获取私有协议的规范信息。
协议逆向是指在不依赖于协议描述的情况下,通过监控和分析协议实体的网络输入输出、系统行为和指令执行流程,提取协议文法、语法和语义的过程。协议逆向对于入侵检测、模糊测试、协议重用等安全应用具有重要意义。Samba、Rdesktop等针对非公开协议的逆向应用取得了较为理想的效果,但存在过度依赖人工分析以及过程冗长耗时等共性问题。
协议自动逆向可以显著减少人工分析,提高私有协议的分析效率。根据分析对象的不同,现有的协议自动逆向主要划分为基于网络流量的分析方法(NetworkTracebasedAnalysis)和基于执行轨迹的分析方法(ExecutionTracebasedAnalysis)两类。基于网络流量的分析方法以截获的网络数据流为分析对象,依据协议域的取值变化频率和特征推断协议规范。基于执行轨迹的分析方法以报文解析过程中的二进制指令执行轨迹为分析对象,依据协议实体对协议域的处理和使用方式,提取协议规范。
协议规范的提取包括协议格式提取和协议状态机推断两部分。协议格式提取主要关注的是通信报文中各协议域的组成结构;协议状态机推断关注的是协议状态的迁移情况。对于未知协议而言,协议格式是状态标注不可缺少的依据,因此协议格式提取是协议状态机推断的前提,也是目前协议逆向领域的主要研究内容。
基于执行轨迹的协议格式分析方法,其准确度不依赖于样本集的完备,而且获取的协议格式信息丰富细致,正日益成为协议格式逆向分析的主要方法。目前,该类分析方法主要存在两方面问题:(1)现有基于执行轨迹的协议逆向研究采取的通用方法是将二进制代码转换为汇编代码,在汇编代码的基础上提取协议规范。汇编指令集中的指令语义灵活复杂,存在寄存器别名、指令副作用等诸多问题,逆向分析的难度很大。(2)现有协议格式逆向方法主要在语法级别分析协议实体的解析过程,将指令处理的连续字节序列识别为协议域。但由于内存拷贝、校验和计算等操作,在语法级别的协议解析过程中,指令可能以不同粒度对同一位置的输入数据重复访问。现有的判定方法会导致判定的协议域边界存在冗余和不一致。
发明内容
发明目的:本发明提供一种基于执行轨迹的语义级协议格式推断方法,着眼于协议实体对输入报文的语义级解析过程,高效准确的识别报文中的各个协议域,获取报文的协议格式,为入侵检测、模糊测试、协议重用、协议脆弱性分析等依赖于协议详细描述信息的网络安全应用提供技术支撑。本发明针对的两个主要问题是:现有逆向分析通常将二进制代码转换为汇编代码,汇编指令的分析难度大,难保证分析策略的完备;在语法级别进行逆向分析,协议格式判定的准确度不高。
技术方案:为达到上述目的,基于执行轨迹的语义级协议格式推断方法,对报文解析过程中的指令执行轨迹进行分析,从而推断报文由哪些协议域组成。采用此方法需要获得协议的实体程序,并在协议实体程序运行时捕获并存储程序在解析协议报文时的指令执行轨迹,以此作为协议格式推断的基础。
基于执行轨迹的语义级协议格式推断方法,包括以下步骤:
首先是中间语言转换,将协议实体程序解析通信报文的指令执行轨迹转换为中间语言的形式,降低后续分析的难度;
其次是细粒度动态污点分析,以中间语言形式的指令执行轨迹为基础,采用细粒度的动态污点分析技术,分析协议实体程序解析报文的过程,掌握作为输入的每一个报文字节随程序指令的执行在系统中的传播和影响;
最后是语义级的协议格式推断,基于语义级协议解析阶段的特征,将作为解析指令参数的连续污点数据映射为报文协议域,进而获取完整的协议报文格式。
所述中间语言转换阶段的工作流程:将执行轨迹中的二进制指令逐条按序转换为精简的、语义等价的中间语言指令,生成基于中间语言的抽象执行轨迹;
所述细粒度动态污点分析阶段的工作流程:首先是构建细粒度动态污点分析策略:对中间语言指令集进行系统分析,掌握指令的执行语义;在此基础上,以分析规则的形式,描述由于指令执行造成内存、寄存器等存储空间内存储数据的变化以及与输入字节的关联关系。实际的细粒度动态污点分析过程:为每个输入的报文字节赋予唯一的污点标签,依据细粒度动态污点分析策略对中间语言形式的执行轨迹进行分析,掌握作为输入的每个报文字节在系统中随指令的执行对内存、寄存器等存储空间造成的影响;
所述语义级的协议格式推断阶段的工作流程:语义是协议域数据的含义,协议域语义分为静态语义和动态语义两类。静态语义描述了该协议域的取值与报文词法、语法之间应满足的约束,包括长度、分隔符、格式标识;动态语义描述了协议实体如何完成响应操作,网络地址、端口、Cookie都属于常见的动态语义。在语义级协议解析阶段,协议实体程序将对输入数据的语义进行解释和处理。程序解析动态语义采用的方式是以输入数据作为参数,通过函数调用完成;解析静态语义采用的方式是将输入数据作为分支跳转类指令的判定条件。在实施过程中,基于语义级协议解析阶段的特点,以细粒度动态污点分析为基础,分析与语义解析紧密相关的分支跳转类指令和函数调用类指令,将与指令参数相关的连续输入识别为协议域。
从动态语义的解析角度,分析函数调用的参数,参数所涉及的连续输入被确定为一个完整协议域。在协议格式推断过程中直接利用中间语言的函数调用信息;如果函数调用的参数与输入数据的污点标签相关,则将污点标签对应的输入字节进行合并,视为一个完整的协议域。从静态语义的解析角度,分析中间语言的跳转类指令,如果作为跳转条件的表达式依赖于报文输入,则依据污点标签将相应的连续输入合并,视为一个完整的协议域。
有益效果:1)针对汇编指令集存在的指令种类繁多、语义复杂等问题,将执行轨迹中的二进制指令转换为精简的、语义等价的中间语言形式,在中间语言的基础上实施逆向分析,避免了汇编指令集存在的寄存器别名、指令副作用、指令前缀等问题,降低了逆向分析的难度;2)采用细粒度的动态污点分析技术,能够细致分析作为输入的每个报文字节,随程序指令的执行在系统中的传播过程。其中的污点分析策略基于中间语言制订,易于保证策略的完备性,并具有跨平台工作的能力。3)基于语义级的协议解析过程推断报文格式,判定结果准确度高。在语义级的解析阶段,与指令相关的连续输入数据必然属于同一个协议域,并且该协议域仅包含这些数据。本发明着眼于静态语义和动态语义的解析特点,识别报文的协议域,可以得到准确的识别结果。
本发明应用于计算机通信网络中,通过分析报文解析产生的二进制指令执行轨迹,推断未知协议的报文格式。获取的报文格式信息,可以为入侵检测、模糊测试、协议重用、协议脆弱性分析等依赖于协议详细描述信息的网络安全应用提供信息基础和技术支持。本发明在细粒度动态污点分析阶段,掌握作为输入的每一个报文字节随程序指令的执行在系统中的传播和影响;语义级的协议格式推断阶段,将作为解析指令参数的连续污点数据映射为报文协议域,获取完整的协议报文格式。该发明能够高效准确的识别报文中的各个协议域,本发明解决了传统基于执行轨迹的协议逆向方法在语法级别分析汇编指令存在的分析难度大和格式判定准确度不高的问题。
附图说明
图1是本发明的整体处理流程示意图;
图2是本发明实施例中细粒度动态污点分析规则的形式;
图3是本发明实施例中基于BIL中间语言的细粒度动态污点分析策略。
具体实施方式:
下面结合附图对本发明做更进一步的解释。
如图1所示,本发明的实施例捕获并存储协议实体程序在解析报文数据时的指令执行轨迹,以此作为报文协议格式推断的基础。在协议格式逆向的过程中,首先进行中间语言转换,将执行轨迹中的二进制指令转化为中间语言指令,降低逆向分析的难度。在中间语言的基础上,进行细粒度的动态污点分析,掌握每个作为输入的报文字节在系统中随指令的执行对内存、寄存器等存储空间造成的影响。最后是语义级的协议格式推断,基于语义级协议解析阶段的特点,着重分析与静态语义解析紧密相关的分支跳转类指令以及与动态语义解析紧密相关的函数调用类指令,将与指令参数相关的连续输入识别为协议域。
本发明的完整流程包括中间语言转换、细粒度动态污点分析以及语义级的协议格式推断三个部分。具体的实施方式以下分别说明。
(1)中间语言转换的具体实施
本发明实施例选择的中间语言是BAP(BinaryAnalysisPlatform)平台上的BIL语言。在中间语言转换的过程中,执行轨迹中的二进制指令被逐条按序转换为语义等价的BIL语言指令。二进制指令到BIL语言的转化主要涉及两个步骤。首先的一步是将二进制指令转化为精简的VEX指令的形式。由于VEX语言中指令的副效应并没有显式描述,因此,转化的第二步是将VEX指令转化为BIL指令,并使用BIL指令显式描述VEX指令的副效应。
(2)细粒度动态污点分析的具体实施
细粒度动态污点分析阶段的工作流程:此阶段的关键是细粒度动态污点分析策略的构建。污点分析策略的构建,必须对中间语言指令集进行系统分析,掌握指令的执行语义。在此基础上,以分析规则的形式,描述由于指令执行造成内存、寄存器等存储空间内存储数据的变化以及存储数据与输入字节的关联关系。在实施过程中,将为每个输入的报文字节赋予唯一的污点标签,依据细粒度动态污点分析策略对中间语言形式的执行轨迹进行分析,掌握作为输入的每个报文字节在系统中随指令的执行对内存、寄存器等存储空间造成的影响。
为了分析执行轨迹中的报文解析语义,需要为每个输入数据字节赋予唯一的污点标签,进而跟踪每个污点字节的传播过程。此阶段的重点是设计基于BIL语言的细粒度动态污点分析策略,从而依据中间语言的指令语义更新污点上下文。
在实施例中,污点上下文被定义为四元组<μ,Δ,Tμ,TΔ>,其中:
1)μ为内存地址到取值的映射,μ[o]表示地址o的取值;
2)Δ为寄存器到取值的映射,Δ[m]表示寄存器m的取值;
3)Tμ表示内存地址到污点属性的映射,Tμ[o]表示地址为o的内存空间的污点属性;
4)TΔ表示寄存器及其中各字节到污点属性的映射,TΔ[m,n]表示寄存器m的第n个字节的污点属性。
在细粒度动态污点分析过程中,由于内存和寄存器往往与多个输入字节相关,因此,污点属性被定义为污点标签的集合。
实施例中采用图2所示的策略规则描述指令语义。其中,stmt为当前执行的指令,运算符→表示指令执行操作,computation表示完成污点属性更新所需的计算条件。
基于BIL的细粒度动态污点分析策略如图3所示。动态污点分析策略由3条指令语义规则(Instructions)和9条表达式赋值规则(Expressions)组成,实现对污点属性的标记和传播。分析策略充分考虑了指令参数位宽的差异,能够很好的描述指令的执行语义。
策略规则中,←表示更新操作符,配合上下标的∪符号表示连续操作。μ,Δ,Tμ,TΔ├exp↓<v,w,T>表示污点上下文为<μ,Δ,Tμ,TΔ>时,exp的取值为v,位宽为w,污点取值为T。污点取值T是exp中各字节对应的污点属性组成的序列。在策略规则中采用T[n]代表第n字节的污点属性。
在基于BIL中间语言的实施例中,动态污点分析策略仅对赋值、内存写入和函数调用三类指令进行处理,不考虑BIL语言中其他指令对动态污点上下文的影响。一方面,BIL语言中的goto、return等跳转指令只决定执行流程,不会对取值和污点属性造成影响;另一方面,BIL语言中specialstring表示的如浮点计算等复杂指令或者特权指令,通常情况下与报文解析过程无关。因此,对指令语义规则的简化不会影响分析结果的准确性,并且有助于提高规则匹配的效率。
(3)语义级的协议格式推断的具体实施
以细粒度动态污点分析为基础,分别考虑动态语义和静态语义在语义解析阶段的特点,着重分析与动态语义解析紧密相关的函数调用类指令,以及与静态语义解析紧密相关的分支跳转类指令,将与指令参数相关联的连续输入识别为完整的协议域。从动态语义的解析角度,分析函数调用的参数,可以确定参数所涉及的连续输入是一个完整协议域。在协议格式推断过程可以直接利用BIL语言中的函数调用信息。如果函数调用的参数与输入数据的污点标签相关,则将污点标签对应的输入字节进行合并,视为一个完整的协议域。从静态语义的解析角度看,在BIL中间语言中,与静态语义解析相关的主要是IF指令和GOTO指令。在分析跳转指令时,如果作为跳转条件的表达式依赖于报文输入,则依据污点标签将相应的连续输入合并,视为一个完整的协议域。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (3)

1.基于执行轨迹的语义级协议格式推断方法,其特征在于依据报文解析时产生的二进制指令执行轨迹,推断报文所采用的协议格式,包括以下步骤:
首先是中间语言转换,将协议实体程序解析通信报文的指令执行轨迹转换为中间语言的形式;
其次是细粒度动态污点分析,以中间语言形式的执行轨迹为基础,采用细粒度的动态污点分析,分析协议实体程序解析报文的过程,掌握作为输入的每一个报文字节随程序指令的执行在系统中的传播和影响;
最后是语义级的协议格式推断,基于语义级协议解析阶段的特征,将作为解析指令参数的连续污点数据映射为报文协议域,进而获取完整的协议报文格式;
所述中间语言转换阶段的工作流程:将执行轨迹中的二进制指令逐条按序转换为精简的、语义等价的中间语言指令,生成基于中间语言的抽象执行轨迹;
所述细粒度动态污点分析阶段的工作流程:首先是构建细粒度动态污点分析策略:对中间语言指令集进行系统分析,掌握指令的执行语义;在此基础上,以分析规则的形式,描述由于指令执行造成内存、寄存器存储空间内存储数据的变化以及与输入字节的关联关系;实际的细粒度动态污点分析过程:为每个输入的报文字节赋予唯一的污点标签,依据细粒度动态污点分析策略对中间语言形式的执行轨迹进行分析,掌握作为输入的每个报文字节在系统中随指令的执行对内存、寄存器存储空间造成的影响;
所述语义级的协议格式推断阶段的工作流程:语义是协议域数据的含义,协议域语义分为静态语义和动态语义两类;静态语义描述了该协议域的取值与报文词法、语法之间应满足的约束,包括长度、分隔符、格式标识;动态语义描述了协议实体如何完成响应操作,网络地址、端口、Cookie都属于常见的动态语义;在语义级协议解析阶段,协议实体程序将对输入数据的语义进行解释和处理;程序解析动态语义采用的方式是以输入数据作为参数,通过函数调用完成;解析静态语义采用的方式是将输入数据作为分支跳转类指令的判定条件;在实施过程中,基于语义级协议解析阶段的特点,以细粒度动态污点分析为基础,分析与语义解析紧密相关的分支跳转类指令和函数调用类指令,将与指令参数相关的连续输入识别为完整的协议域。
2.根据权利要求1所述的基于执行轨迹的语义级协议格式推断方法,其特征在于所述语义级的协议格式推断阶段的实施基础:协议实体程序解析动态语义采用的方式是以输入数据作为参数,通过函数调用完成;解析静态语义采用的方式是将输入数据作为分支跳转类指令的判定条件。
3.根据权利要求1所述的基于执行轨迹的语义级协议格式推断方法,其特征在于所述语义级的协议格式推断阶段,从动态语义的解析角度,分析函数调用的参数,参数所涉及的连续输入被确定为一个完整协议域;以BIL语言作为用于分析的中间语言时,在协议格式推断过程中直接利用BIL中间语言的函数调用信息,如果函数调用的参数与输入数据的污点标签相关,则将污点标签对应的输入字节进行合并,视为一个完整的协议域;从静态语义的解析角度,分析中间语言的跳转类指令,如果作为跳转条件的表达式依赖于报文输入,则依据污点标签将相应的连续输入合并,视为一个完整的协议域;以BIL语言作为用于分析的中间语言时,与静态语义解析相关的主要是IF指令和GOTO指令,如果作为这两类指令跳转条件的表达式依赖于报文输入,则将污点标签对应的输入字节合并,视为完整的协议域。
CN201310146876.2A 2013-04-24 2013-04-24 基于执行轨迹的语义级协议格式推断方法 Expired - Fee Related CN103200203B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310146876.2A CN103200203B (zh) 2013-04-24 2013-04-24 基于执行轨迹的语义级协议格式推断方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310146876.2A CN103200203B (zh) 2013-04-24 2013-04-24 基于执行轨迹的语义级协议格式推断方法

Publications (2)

Publication Number Publication Date
CN103200203A CN103200203A (zh) 2013-07-10
CN103200203B true CN103200203B (zh) 2016-03-30

Family

ID=48722560

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310146876.2A Expired - Fee Related CN103200203B (zh) 2013-04-24 2013-04-24 基于执行轨迹的语义级协议格式推断方法

Country Status (1)

Country Link
CN (1) CN103200203B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103825784B (zh) * 2014-03-24 2017-08-08 中国人民解放军信息工程大学 一种非公开协议字段识别方法及系统
CN104767744B (zh) * 2015-03-25 2018-05-15 中国人民解放军理工大学 基于协议知识的协议状态机主动推断方法
CN107707540A (zh) * 2017-09-28 2018-02-16 中国科学院软件研究所 一种基于消息字段分隔符识别的网络协议逆向分析方法
CN107580076A (zh) * 2017-11-07 2018-01-12 山东网智物联网科技有限公司 物联网通信方法及装置
CN109324971B (zh) * 2018-09-30 2021-06-25 中国人民解放军国防科技大学 一种基于中间语言和污点分析的软件数据流分析方法
CN114745417B (zh) * 2022-04-12 2023-07-04 广东技术师范大学 一种基于工业侧信道信息的工控协议语义分析方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101359351A (zh) * 2008-09-25 2009-02-04 中国人民解放军信息工程大学 针对恶意行为的多层语义标注及检测方法
CN102891852A (zh) * 2012-10-11 2013-01-23 中国人民解放军理工大学 基于报文分析的协议格式自动推断方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101359351A (zh) * 2008-09-25 2009-02-04 中国人民解放军信息工程大学 针对恶意行为的多层语义标注及检测方法
CN102891852A (zh) * 2012-10-11 2013-01-23 中国人民解放军理工大学 基于报文分析的协议格式自动推断方法

Also Published As

Publication number Publication date
CN103200203A (zh) 2013-07-10

Similar Documents

Publication Publication Date Title
CN103200203B (zh) 基于执行轨迹的语义级协议格式推断方法
CN106203113B (zh) 安卓应用文件的隐私泄露监控方法
CN102054149B (zh) 一种恶意代码行为特征提取方法
Donatelli et al. Model checking timed and stochastic properties with CSL^{TA}
US7917457B2 (en) Knowledge extraction and abstraction
CN101266550B (zh) 一种恶意代码检测方法
WO2020108063A1 (zh) 特征词的确定方法、装置和服务器
CN103164331B (zh) 一种应用程序的漏洞检测方法和装置
CN109117164B (zh) 基于关键元素差异性分析的微服务更新方法及系统
CN109446107B (zh) 一种源代码检测方法及装置、电子设备
CN110196815B (zh) 一种软件模糊测试方法
CN105550594A (zh) 安卓应用文件的安全性检测方法
CN103927473A (zh) 检测移动智能终端的源代码安全的方法、装置及系统
CN102737190A (zh) 基于静态分析的Android应用日志中信息泄漏隐患的检测方法
CN113158189B (zh) 一种恶意软件分析报告生成方法、装置、设备和介质
CN111753303A (zh) 一种基于深度学习和强化学习的多粒度代码漏洞检测方法
CN112286575A (zh) 基于图匹配模型的智能合约相似度检测方法及系统
CN112560043A (zh) 一种基于上下文语义的漏洞相似性度量方法
CN104462943A (zh) 业务系统中非侵入式性能监控装置和方法
CN113271237A (zh) 工控协议的解析方法、装置、存储介质及处理器
CN108055166B (zh) 一种嵌套的应用层协议的状态机提取系统及其提取方法
CN109634569B (zh) 基于注解的流程实现方法、装置、设备及可读存储介质
CN103235757B (zh) 基于自动化造数对输入域测试对象进行测试的装置和方法
CN112817877B (zh) 异常脚本检测方法、装置、计算机设备和存储介质
CN106845235A (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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160330