CN109101422B - 一种基于afl的模糊测试变异方法和装置 - Google Patents
一种基于afl的模糊测试变异方法和装置 Download PDFInfo
- Publication number
- CN109101422B CN109101422B CN201810820845.3A CN201810820845A CN109101422B CN 109101422 B CN109101422 B CN 109101422B CN 201810820845 A CN201810820845 A CN 201810820845A CN 109101422 B CN109101422 B CN 109101422B
- Authority
- CN
- China
- Prior art keywords
- bytes
- byte
- valid
- mutation
- variation
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于AFL的模糊测试变异方法和装置,在AFL的确定性变异阶段确定测试用例的有效字节;在确定性变异阶段,根据所述有效字节的信息确定变异字节,不变异全无效字节;在破坏性变异阶段,根据所述有效字节的信息指导变异,如果当前随机选择的字节是有效字节,则一定变异;否则给予小概率变异。使用本发明能够提高AFL的效率,而且能够解决现有符号执行和污点分析技术带来的资源消耗增加的问题。
Description
技术领域
本发明涉及模糊测试技术领域,尤其涉及一种基于AFL的模糊测试变异方法和装置。
背景技术
信息时代到来,各种各样的软件层出不穷,但软件质量无法保证。如何高效快速地找到相关软件中的漏洞成了产业界和学术界攻克和研究的重点难题。模糊测试作为漏洞挖掘的一种主流技术,由于其使用简单、漏洞挖掘效率高、环境适应能力强等特点,因此备受关注。
模糊器AFL是2013年由Google安全工程师Michal Zalewski开发的一款开源模糊测试工具,AFL是American Fuzzy Lop的简写,其具有较低的性能消耗,可以高效地挖掘可能存在的安全漏洞。
AFL的核心技术在于测试用例变异阶段。变异是通过对测试用例的每个bit、每个byte、每个word以及每个dword的增、删、改操作,得到新测试用例的方法。AFL通过对初始测试用例进行变异得到大量新的测试用例,而新的测试用例是否用于后续变异的关键在于其是否能够发现新的路径,新路径的发现通过收集的覆盖信息进行判定。
图1是AFL的具体实施过程。如图所示,AFL维护了一个测试用例队列,每次从该队列中取出一个测试用例,判断取出的测试用例是否值得被模糊,即是否“有趣”,如果判定当前测试用例值得被模糊,则进行变异操作,并根据覆盖信息判断变异产生的新的测试用例是否能够触发新的路径,然后将触发新路径的测试用例添加到测试用例队列中。AFL的变异策略假定被测程序的测试用例是一个字节序列,AFL的变异算法包括两个阶段:
(1)确定性变异阶段:通过遍历测试用例并在该测试用例的连续位置(位和字节)上应用突变,包括位翻转,字节翻转,字节值的算术递增和递减,用“有趣的”值替换字节等等;突变产生的测试用例的数量由测试用例的长度决定;
(2)破坏性变异阶段:一系列随机突变,例如将随机字节设置为随机值,删除或复制测试用例的子序列等;突变产生的测试用例的数量通过按照一定方式计算出的分值确定,该分值的大小受测试用例执行时间、分支覆盖率及测试深度的影响。
总之,AFL的变异策略主要是通过破坏性变异实现的,具有较大的盲目性,针对性也较弱。尽管AFL采取了一些小的策略来降低变异的盲目性,例如自动检测token和字典的设置,但AFL的变异算法主要还是通过没有准确指导的破坏性变异进行实现的,针对性不足。
目前,也有结合符号执行和污点分析技术对AFL进行的改进,其中,将符号执行技术与AFL相结合可以在一定程度上解决AFL在某些情况下无法发现新路径的问题,污点分析技术可以为AFL提供程序输入的有效信息。虽然结合符号执行和污点分析技术可以使AFL的变异更具有针对性,但是同时也增加了资源消耗,降低了AFL的效率。
因此,为了在提高有效性的同时又不会对效率产生过大的影响,本发明采用轻量级程序分析进行程序信息的粗略收集,以提高AFL的效率。
发明内容
有鉴于此,本发明提供了一种基于AFL的模糊测试变异方法和装置,能够提高AFL的效率,而且能够解决现有符号执行和污点分析技术带来的资源消耗增加的问题。
为了解决上述技术问题,本发明是这样实现的:
一种基于AFL的模糊测试变异方法,包括:
在AFL的确定性变异阶段确定测试用例的有效字节;
在确定性变异阶段,根据所述有效字节的信息确定变异字节,不变异全无效字节;
在破坏性变异阶段,根据所述有效字节的信息指导变异,如果当前随机选择的字节是有效字节,则一定变异;否则给予小概率变异。
优选地,所述确定测试用例的有效字节为:在AFL的确定性变异阶段的bitfip阶段收集;在该bitfip阶段对测试用例i的全部字节逐一进行翻转生成测试用例i′,如果测试用例i′触发新的路径,则认为被翻转的字节是有效字节;统计有效字节,并维护在有效字节表中;在变异时,利用有效字节表识别有效字节。
优选地,在确定有效字节时,当测试用例小于128字节,或者测试用例中有效字节比例超过一定的数值,那么认为测试用例的所有字节都是有效字节。
优选地,在确定性变异阶段,所述根据所述有效字节的信息确定变异字节为:AFL初步确定出待变异字节,根据所述有效字节的信息判断待变异字节是否为全无效字节,如果是,则忽略对待变异字节的变异;否则,将待变异字节确定为变异字节。
一种基于AFL的模糊测试变异装置,包括:
有效字节收集模块,用于在AFL的确定性变异阶段确定测试用例的有效字节;
确定性变异模块,用于在确定性变异阶段,根据所述收集的有效字节的信息确定变异字节,不变异全无效字节;
破坏性变异模块,用于在破坏性变异阶段,根据所述收集的有效字节的信息指导变异,如果当前随机选择的字节是有效字节,则一定变异;否则给予小概率变异。
优选地,进一步包括有效字节收集模块,用于在确定性变异阶段的bitfip阶段收集有效字节;在该bitfip阶段对测试用例i的全部字节逐一进行翻转生成测试用例i′,如果测试用例i′触发新的路径,则认为被翻转的字节是有效字节;统计有效字节,并维护在有效字节表中,用于破坏性变异模块和确定性变异模块。
优选地,所述有效字节收集模块在确定有效字节时,当测试用例小于128字节,或者测试用例中有效字节比例超过一定的数值,那么认为测试用例的所有字节都是有效字节。
优选地,所述确定性变异模块根据所述有效字节的信息确定变异字节为:AFL初步确定出待变异字节,根据所述有效字节的信息判断待变异字节是否为全无效字节,如果是,则忽略对待变异字节的变异;否则,将待变异字节确定为变异字节。
有益效果:
(1)本发明通过使用轻量级的程序分析技术识别测试用例的有效字节,在有效字节的应用阶段,根据测试用例的有效字节确定变异字节,从而减少AFL变异的盲目性。而且,有效字节的获取简单、方便,消耗不大,能够解决现有符号执行和污点分析技术带来的资源消耗增加的问题。
(2)对于确定性变异阶段,对已经确定好的字节进行判断,如果确定变异的整个字节都是无效字节,那么就跳过对该字节的变异,从而减少没有意义的变异,提高AFL的效率。
(3)对于破坏性变异阶段,如果当前随机选择的字节是有效字节,则一定变异,否则给予小概率变异,另大多变异在有效字节上发生,最大范围的提升AFL变异的针对性,提高AFL的效率。
(4)对于有效字节的收集,在AFL的确定性变异阶段的bitfip阶段完成,本发明只需要增加有效字节表的维护工作,便于实现,不需要增加过多体量的程序,没有对资源消耗造成负担。
附图说明
图1为传统AFL的执行流程图。
图2为本发明改进变异算法流程。
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
本发明的落脚点主要基于图1中①和②部分,对ALF的变异操作进行改进,从而降低模糊测试的盲目性,使模糊器能够更有针对性地变异那些被认为更重要的部分,进而在提高模糊测试效率的同时能够提高覆盖率。
本申请人通过分析发现,测试用例多数以文件的形式给出,一般来说文件可以分为元数据和数据两部分,元数据是用于描述数据的数据,主要用于描述数据的相关信息,如文件名、文件大小、文件所在数据块、数据块大小、文件类型等等。文件解析工具首先会读取元数据,再根据元数据中携带的信息对数据进行读取并处理。相对于数据的变异,元数据的变异更有可能触发新的路径,故对元数据的变异所带来的性价比更高。举例来说,对一张PNG格式的图进行变异,即使变异所有的RGB字节得到的只是一张看上去完全不同的图片,并没有造成执行路径的不同。因此如果能尽量变异元数据的部分,或者尽量变异能够带来新路径的部分,则能够更有效率的获得有效的测试用例。
而有效字节就具有上述元数据特征。有效字节和无效字节进行区分的标准是:只有那些被翻转时造成执行路径与原始路径不一致的字节才被认为是有效字节,而不会造成路径发生改变的字节是无效字节。
基于上述分析,本发明所提供的基于AFL的模糊测试变异方案,其基本思想在于,如图2所示,在确定性变异阶段收集测试用例的有效字节信息并进行标记,在AFL的破坏性变异阶段和确定性变异阶段,根据上述标记的测试用例的有效字节确定待变异字节。图2中所指的字节不一定是单字节,还可能是双字节、四字节。这样遵循的原理是:只有那些被翻转时造成执行路径发生改变的字节才有可能触发新的路径,而被变异的字节中包含全部或部分有效字节,因此能够提高模糊测试的效率,而且有效字节的获取简单、方便,消耗不大。
下面针对本发明实施过程进行详细描述。
步骤一、通过确定性变异阶段的字节翻转阶段实现对有效字节信息的收集。
在变异阶段,如果确定性阶段没有被跳过,首先进行的就是按位翻转阶段——bitflip。bitflip采取的变异操作从它的名字可窥见一二,但又不局限于其中。bitflip阶段会根据不同步长进行多种不同的翻转,如下:
·bitflip 1/1,每次翻转1位,步长1位,从头开始
·bitflip 2/1,每次翻转相邻的2位,步长1位,从头开始
·bitflip 4/1,每次翻转相邻的4位,步长1位,从头开始
·bitflip 8/8,每次翻转相邻的8位,步长8位,从头开始
·bitflip 16/8,每次翻转相邻的16位,步长8位,从头开始
·bitflip 32/8,每次翻转相邻的32位,步长8位,从头开始
上述bitflip a/b表示:a为滑动窗口大小,即每次翻转的位数;b为步长,即进行下一次翻转时需要移动的位数。
因此,本发明利用该确定性变异阶段的bitfip阶段收集有效字节。在该阶段对测试用例i的全部字节逐一进行翻转生成测试用例i′,如果测试用例i′触发新的路径,则认为被翻转的字节是有效字节。传统AFL在确定性变异阶段使用完有效字节之后就丢弃了,本发明需要增加的操作是:统计有效字节,并维护在有效字节表中。这样在后续的变异操作时,能够利用有效字节表识别有效字节。
不过,在一些特殊情况下,不会进行上述操作:如果输入文件小于128字节,则直接认定所有字节都是有效字节。或者,当已经判定某个测试用例中的有效字节比例超过一定的数值(例如90%)时,那么认为该测试用例的所有字节都是有效字节。
步骤二、将有效字节信息应用于确定性变异阶段的变异操作。
确定性变异阶段包含arithmetic和interest两个部分。其中,该arithmetic为整数加/减运算阶段,即在确定性变异阶段对字节值进行加减一个值,以改变原测试用例;interest为感兴趣值替换阶段,感兴趣部分的确定是在测试用例输入时由AFL确定的,然后用感兴趣值替换原测试用例中的值。
具体来说,arithmetic阶段是确定性变异阶段的第二阶段。该阶段根据目标大小的不同也分成了几个子阶段,如下:
·arith 8/8,每次对8位进行加减运算,步长8位,从头开始
·arith 16/8,每次对16位进行加减运算,步长8位,从头开始
·arith 32/8,每次对32位进行加减运算,步长8位,从头开始
interest阶段是确定性变异阶段的第三阶段。该阶段进行的变异操作如下:
·interest 8/8,每次对8位进行替换,步长8位,从头开始
·interest 16/8,每次对16位进行替换,步长8位,从头开始
·interest 32/8,每次对32位进行替换,步长8位,从头开始
该阶段用于替换的特殊值,是预设的一些比较特殊的数,这些数多数是可能造成溢出的数。
本发明方法在确定性变异阶段中的arithmetic、interest两个阶段会用到上述生成的有效字节表。这两个阶段会按照现有的策略确定出需要确定性变异的字节,本发明要做的是判断确定性变异的整个字节是否为无效字节,如果确定性变异的整个字节都是无效字节,那么就跳过对该字节序列的变异。
步骤三、将有效字节信息应用于破坏性变异阶段的变异操作。
havoc是破坏性阶段,在AFL中,该阶段会随机对测试用例进行多轮变异,每一轮的变异由16种方式组合而成,如随机选取某个位进行翻转。
本发明在havoc阶段通过有效字节表对变异操作进行改进。该阶段随机选取字节,如果当前随机选择的字节是有效字节,则一定进行变异;否则,给予小概率变异。可以给予一个小于p的随机概率进行变异,p是根据实验调参决定的。相对之前完全随机的选择,元数据被变异的概率提高了,触发新路径的概率也就随即提高。
为了实现上述方法,本发明提供了一种基于AFL的模糊测试变异装置,包括:有效字节收集模块、破坏性变异模块和确定性变异模块。
有效字节收集模块用于收集测试用例的有效字节。在本实施例中,在确定性变异阶段的bitfip阶段收集有效字节;在该bitfip阶段对测试用例i的全部字节逐一进行翻转生成测试用例i′,如果测试用例i′触发新的路径,则认为被翻转的字节是有效字节;统计有效字节,并维护在有效字节表中,发送给破坏性变异模块和确定性变异模块使用。优选地,在确定有效字节时,当测试用例小于128字节,或者测试用例中有效字节比例超过一定的数值,那么认为测试用例的所有字节都是有效字节。
确定性变异模块,用于在确定性变异阶段,根据上述收集的有效字节信息确定变异字节,不变异全无效字节。
破坏性变异模块,用于在破坏性变异阶段,根据上述收集的有效字节信息指导变异,如果当前随机选择的字节是有效字节,则一定变异;否则给予小概率变异。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种基于AFL的模糊测试变异方法,其特征在于,包括:
在AFL的确定性变异阶段确定测试用例的有效字节;
在确定性变异阶段,根据所述有效字节的信息确定变异字节,不变异全无效字节;
在破坏性变异阶段,随机选取字节,根据所述有效字节的信息指导变异,如果当前随机选择的字节是有效字节,则一定变异;否则给予小概率变异。
2.如权利要求1所述的方法,其特征在于,所述确定测试用例的有效字节为:在AFL的确定性变异阶段的bitfip阶段收集;在该bitfip阶段对测试用例i的全部字节逐一进行翻转生成测试用例i′,如果测试用例i′触发新的路径,则认为被翻转的字节是有效字节;统计有效字节,并维护在有效字节表中;在变异时,利用有效字节表识别有效字节。
3.如权利要求2所述的方法,其特征在于,在确定有效字节时,当测试用例小于128字节,或者测试用例中有效字节比例超过一定的数值,那么认为测试用例的所有字节都是有效字节。
4.如权利要求1所述的方法,其特征在于,在确定性变异阶段,所述根据所述有效字节的信息确定变异字节为:AFL初步确定出待变异字节,根据所述有效字节的信息判断待变异字节是否为全无效字节,如果是,则忽略对待变异字节的变异;否则,将待变异字节确定为变异字节。
5.一种基于AFL的模糊测试变异装置,其特征在于,包括:
有效字节收集模块,用于在AFL的确定性变异阶段确定测试用例的有效字节;
确定性变异模块,用于在确定性变异阶段,根据所述收集的有效字节的信息确定变异字节,不变异全无效字节;
破坏性变异模块,用于在破坏性变异阶段,随机选取字节,根据所述收集的有效字节的信息指导变异,如果当前随机选择的字节是有效字节,则一定变异;否则给予小概率变异。
6.如权利要求5所述的装置,其特征在于,进一步包括有效字节收集模块,用于在确定性变异阶段的bitfip阶段收集有效字节;在该bitfip阶段对测试用例i的全部字节逐一进行翻转生成测试用例i′,如果测试用例i′触发新的路径,则认为被翻转的字节是有效字节;统计有效字节,并维护在有效字节表中,用于破坏性变异模块和确定性变异模块。
7.如权利要求6所述的装置,其特征在于,所述有效字节收集模块在确定有效字节时,当测试用例小于128字节,或者测试用例中有效字节比例超过一定的数值,那么认为测试用例的所有字节都是有效字节。
8.如权利要求5所述的装置,其特征在于,所述确定性变异模块根据所述有效字节的信息确定变异字节为:AFL初步确定出待变异字节,根据所述有效字节的信息判断待变异字节是否为全无效字节,如果是,则忽略对待变异字节的变异;否则,将待变异字节确定为变异字节。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810820845.3A CN109101422B (zh) | 2018-07-24 | 2018-07-24 | 一种基于afl的模糊测试变异方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810820845.3A CN109101422B (zh) | 2018-07-24 | 2018-07-24 | 一种基于afl的模糊测试变异方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109101422A CN109101422A (zh) | 2018-12-28 |
CN109101422B true CN109101422B (zh) | 2022-02-22 |
Family
ID=64847233
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810820845.3A Active CN109101422B (zh) | 2018-07-24 | 2018-07-24 | 一种基于afl的模糊测试变异方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109101422B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110162472B (zh) * | 2019-05-08 | 2022-08-12 | 安徽工业大学 | 一种基于fuzzing测试的测试用例生成方法 |
CN110096448B (zh) * | 2019-05-10 | 2020-09-18 | 南京大学 | 一种兼顾深度以及广度的模糊测试搜索方法 |
CN110175120B (zh) * | 2019-05-20 | 2020-11-27 | 北京理工大学 | 一种基于强化学习的模糊测试用例自适应变异方法和装置 |
CN114063606B (zh) * | 2022-01-13 | 2022-06-21 | 浙江大学 | Plc协议模糊测试方法及装置、电子设备、存储介质 |
CN114610601A (zh) * | 2022-01-25 | 2022-06-10 | 南京航空航天大学 | 一种对afl模糊测试器种子变异策略的优化方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107025168A (zh) * | 2015-12-15 | 2017-08-08 | 阿里巴巴集团控股有限公司 | 漏洞检测方法及装置 |
CN107193731A (zh) * | 2017-05-12 | 2017-09-22 | 北京理工大学 | 使用控制变异的模糊测试覆盖率改进方法 |
-
2018
- 2018-07-24 CN CN201810820845.3A patent/CN109101422B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107025168A (zh) * | 2015-12-15 | 2017-08-08 | 阿里巴巴集团控股有限公司 | 漏洞检测方法及装置 |
CN107193731A (zh) * | 2017-05-12 | 2017-09-22 | 北京理工大学 | 使用控制变异的模糊测试覆盖率改进方法 |
Non-Patent Citations (6)
Title |
---|
AFL(American Fuzzy Lop)实现细节与文件变异;rk700;《https://paper.seebug.org/496/#part-2afl》;20180105;part2 * |
AFL-fuzz工具分析;Chen_zju;《https://blog.csdn.net/Chen_zju/article/details/80791268》;20180624;全文 * |
AFL技术实现分析;TN_root;《https://blog.csdn.net/qq_32464719/article/details/80592902》;20180606;全文 * |
AFL改进小试;GalaxyLa;《http://galaxylab.pingan.com.cn/afl%E6%94%B9%E8%BF%9B%E5%B0%8F%E8%AF%95/》;20180509;全文 * |
AFL改进小试;rk700;《http://rk700.github.io/2018/02/02/afl-enhancement/》;20180202;全文 * |
基于遗传算法的二进制程序模糊测试方法;焦龙龙等;《浙江大学学报(工学版)》;20180515(第05期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109101422A (zh) | 2018-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109101422B (zh) | 一种基于afl的模糊测试变异方法和装置 | |
CN109032942B (zh) | 一种基于afl的模糊测试框架 | |
Riazanov et al. | Splitting without backtracking | |
US7234167B2 (en) | Automatic builder of detection and cleaning routines for computer viruses | |
CN112035359A (zh) | 程序测试方法、装置、电子设备及存储介质 | |
CN106407809A (zh) | 一种Linux平台恶意软件检测方法 | |
CN108600195B (zh) | 一种基于增量学习的快速工控协议格式逆向推断方法 | |
CN109542783B (zh) | 一种基于变量分割的扩展有限状态机测试数据生成方法 | |
CN113419960B (zh) | 用于可信操作系统内核模糊测试的种子生成方法及系统 | |
CN103713933A (zh) | 计算机程序中热点函数、变量的汇聚方法、装置及系统 | |
Yoon et al. | Improving determinization in hindsight for on-line probabilistic planning | |
CN113194010A (zh) | 一种非公开工业通信协议的字段语义分析方法 | |
Lin et al. | A priority based path searching method for improving hybrid fuzzing | |
CN106650453B (zh) | 一种检测方法和装置 | |
CN112948193B (zh) | 一种基于差异测试的fpga综合工具缺陷检测方法 | |
CN110162472A (zh) | 一种基于fuzzing测试的测试用例生成方法 | |
CN112825268B (zh) | 测序结果比对方法及其应用 | |
US8478575B1 (en) | Automatic anomaly detection for HW debug | |
Solehria et al. | Multiple pivot sort algorithm is faster than quick sort algorithms: An empirical study | |
CN112819160B (zh) | 一种神经网络模型的可视化方法、装置、设备及存储介质 | |
JP3712882B2 (ja) | 時間間隔を含む時系列パターン抽出装置 | |
CN111309846A (zh) | 索引处理方法、装置、设备及介质 | |
CN115865425B (zh) | 一种阶层式加密货币的挖矿行为识别方法及系统 | |
KR100884889B1 (ko) | 검색 데이터베이스의 자동 색인어 추가 방법 및 시스템 | |
CN112100084B (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 |