CN101414304A - 基于KPCR结构的Windows系统物理内存分析方法 - Google Patents

基于KPCR结构的Windows系统物理内存分析方法 Download PDF

Info

Publication number
CN101414304A
CN101414304A CNA2008101592608A CN200810159260A CN101414304A CN 101414304 A CN101414304 A CN 101414304A CN A2008101592608 A CNA2008101592608 A CN A2008101592608A CN 200810159260 A CN200810159260 A CN 200810159260A CN 101414304 A CN101414304 A CN 101414304A
Authority
CN
China
Prior art keywords
kpcr
address
physical
memory
windows
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.)
Granted
Application number
CNA2008101592608A
Other languages
English (en)
Other versions
CN101414304B (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.)
Shandong Computer Science Center
Original Assignee
Shandong Computer Science Center
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 Shandong Computer Science Center filed Critical Shandong Computer Science Center
Priority to CN2008101592608A priority Critical patent/CN101414304B/zh
Publication of CN101414304A publication Critical patent/CN101414304A/zh
Application granted granted Critical
Publication of CN101414304B publication Critical patent/CN101414304B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种Windows系统物理内存的分析方法。本发明基于KPCR结构体和CR3寄存器内容,在内存镜像文件文件中搜索KPCR结构体,以该结构体为基础查找到CR3寄存器内容,以CR3寄存器内容确定内存页模式,然后转换内存虚拟地址为物理地址;根据内存镜像文件中的系统版本信息确定所获得KPCR和CR3的正确性,若正确,即可相应得到内核信息中的进程信息和驱动信息。本发明提供了一种能够准确地实现虚拟地址到物理内存地址转换,且能够准确查找系统进程、系统模块信息的Windows系统物理内存分析方法。

Description

基于KPCR结构的Windows系统物理内存分析方法
(一)技术领域
本发明涉及一种Windows系统物理内存的分析方法,其通过对Windows系统物理内存的分析以找到Windows运行过的线程、系统模块和进程等信息,从而获得信息安全事件和各类计算机犯罪案件的证据。KPCR指控制器处理区。
(二)背景技术
2005年之前,对物理内存镜像文件的分析,基本上只是停留在字符串查找上。为推进物理内存分析技术的发展,DFRWS(Digital ForensicResearch Workshop)于2005年推出了名为“Forensics Challenge”的活动,活动的主题就是物理内存分析。从此,对于物理内存的分析和获取成为计算机取证的研究热点。
Andreas Schuster于2006年在DFRWS年会中提出了Windows内存镜像文件中进程和线程的查找方法,并使用Perl语言开发了PTfinder.pl,该工具可以找到Windows内存文件的线程和进程,不过其开发所针对的Windows版本仅限于Microsoft Windows2000,适用范围受到很大限制。
Mariusz Burdach通过对linux内存的研究,开发了分析windows内存的工具WMFT(Windows Memory Forensic Toolkit),该工具可以列出所有的Windows进程信息。Mariusz Burdach所使用的内存分析方法主要是通过字符串查找来实现的,现将其方法具体描述如下:
通过查找“smss.exe”、“csrss.exe”字符串来查找eproccess结构的进程块。字符串“smss.exe”对应的是eprocess结构成员ImageFileName,ImageFileName在eprocess结构的偏移地址是0x154。ActiveProcessLinks是_LIST_ENTRY结构,在eprocess结构体重偏移位置为0x88,_LIST_ENTRY的结构是:
+0x000Flink:Ptr32_LIST_ENTRY
+0x004Blink:Ptr32_LIST_ENTRY
字符串“smss.exe”所在的物理地址减去0x154就是smss进程的起始物理地址,这个起始物理地址加上0x88就是ActiveProcessLinks的物理地址。ActiveProcessLinks中flink的内容指向csrss进程的ActiveProcessLinks地址。同样,字符串csrss.exe所在的物理地址-0 x 154+0 x 88为csrss进程ActiveProcessLinks的物理地址,两者之差为内核内存空间虚拟地址与物理地址的偏移量(Rva),即Rva等于smss的ActiveProcessLinks结构中flink的指针地址,减去0 x 800000,再减去csrss进程ActiveProcessLinks的物理地址。说明书附图1示出了Eprocess结构的进程间的连接关系,图中,1为smss进程,2为csrss进程。
smss进程的ActiveProcessLinks结构blink指向系统进程的ActiveProcessLinks地址,该地址-o x 80000000-Rva-0 X 88为系统进程的物理内存起始地址。同样上述过程,可以得到每个进程在物理内存的起始地址,进而可以得到每个进程的详细信息。
上述字符串查找的办法,在实际的物理内存分析办法中存在着一定的问题,主要表现在以下几个方面:
1)在不同的操作系统版本中,使用“smss.exe”和“crcss.exe”查找定位存在一定的不确定性,在实际的编程实现查找过程存在编程繁琐的问题:
在不同的操作系统版本中,eprocess结构是有差异的:ImageFileName的偏移不一定就是0x154,在Windows Xp SP2系统中,它的偏移是0 x 174,在Windows 2003sp2下它的偏移是0 x 164。在偏移地址不能确定的情况下,由于在内存文件中存在多个字符串“smss.exe”和“crcss.exe”,编程实现这种方法比较繁琐。
2)虚拟地址到物理地址的转换问题:
上述的方法只对Windows系统的空间管理使用是大页模式的情况下适用。事实上,在实际的Windows系统的内存管理中,大页模式和小页模式是混合使用的。在这种情况下,利用这种方法就会出现问题。
3)系统内核基地址和PsLoadedModuleList地址的查找办法也不是很实用:
例如在操作系统Windows Xp sp2中,大约在查到第4个”ntos“字符串时,才是所需要的地址。而查到这个的地址,验证这个地址是否正确也比较困难。
基于上述原因,导致了使用WMFT工具前,需要手工配置系统的rva、offset、initproc,使得WMFT工具的使用存在很大的局限性。。
(三)发明内容
因此,基于上述原因,本发明意在提供一种能够准确地实现虚拟地址到物理内存地址转换,且能够准确查找系统进程、系统模块信息的Windows系统物理内存分析方法。
本发明采用以下技术方案:
其包括以下步骤:
1)在Windows内存镜像文件中按照KPCR结构体的结构特征搜索KPCR结构体;
2)根据所获得KPCR结构体确定KPCR的物理地址和用于定位系统版本信息的KdVersionBlock指针地址;
3)根据所述KPCR物理地址查找CR3寄存器中的内容,确定其指向的物理地址;
4)依据上述CR3寄存器物理地址第一字节内容判断内存页模式;
5)根据所得内存页模式按照Intel处理器地址转换方式获取内存分页虚拟地址所对应的物理地址和所述KdVersionBlock指针的物理地址;
6)依据所述KdVersionBlock指针物理地址查找内存镜像位置在此地址处的系统版本信息的系统子版本号;
7)验证上述系统子版本号与微软所发布的系统子版本号是否一致,若一致则所获得的KPCR结构体和CR3寄存器的地址正确,根据KdVersionBlock后的内核变量获取系统驱动信息和进程信息;若错误,且KdVersionBlock指针未到文件尾,文件指针后移0x100后在Windows内存镜像文件中继续搜索KPCR结构体。
所述搜索KPCR结构体的方法优选通过在内存镜像文件中寻找两个大于0 x 80000000的邻近值,且这两个值满足相差0 x 120,此地址减去0 x 1c即为KPCR地址。
上述的基于KPCR结构的Windows系统物理内存分析方法,所述获取CR3寄存器内容的方法为优选取KPCR地址加上0 x 410所得地址指向的内容。
本发明相对于现有分析系统物理内存的方法依赖于单一操作系统的缺陷,开辟新途径。由于需要支持多个CPU,Windows内核中为此定义了一套以处理器控制区KPCR为枢纽的数据结构,使每个CPU都对应一个KPCR结构,用于保存与线程切换有关的全局信息,KPCR在线性空间中的位置不会随Windows版本变动而改变。本发明基于KPCR结构对系统物理内存进行分析,不受Windows操作系统版本的影响,适用范围广。且由于在具体的操作系统中,KPCR是一个固定的值,从而可以准确的验证某一字符串的值,使本方法的可靠性比较高;在内存镜像文件中查找KPCR结构体比较容易,通过编程也比较容易实现,工作效率相对也比较高。现在系统物理内存分析方法由于需要在传统的用户态下获得信息安全事件和各类计算机犯罪案件的证据,容易受木马或者恶意程序攻击或干扰的缺陷,相对地,本发明只需要打开某一内存的镜像文件,即可获取系统进程信息以及驱动信息,不容易受到病毒或者恶意程序攻击和干扰。
由于不同的操作系统对应的内存分页方式不一样,通常是大小页混用的,现有的物理内存分析方法不能准确的区分大小页,更无法准确的确定各页的物理地址,从而,无法完成虚拟地址到物理地址的转换。而本发明借助于CR3寄存器来确定所搜索内存分页的模式,由于CR3寄存器地址的首字节可以用来区分内存页的模式,因此,本发明可以准确查找系统进程、系统模块信息。
(四)附图说明
下面结合说明书附图来具体说明一下本发明的原理,以使本领域的技术人员更好的理解本发明,其中:
图1为_Eprocess结构的进程间的连接关系具体实施方式。
图2为本发明实施例的流程图。
图3为Intel处理器页大小4KB的地址转换方式示意图。
图4为Intel处理器页大小4MB的地址转换方式示意图。
图5为PAE机制下,页大小为4KB的地址转换方式示意图。
图6为PAE机制下,页大小为2MB的地址转换方式示意图。
图7为PSE-36机制下的地址转换示意图。
PAE为Physical Address Extension的缩写,指物理内存扩展;PSE为Page Size Extension的缩写,指页面尺寸扩展。
图中:1为smss的_Eprocess结构,2为csrss的_Eprocess结构。
(五)具体实时方式
以下为本发明结合说明书附图的具体实施方式,对本发明技术方案的示例性描述,其技术特征的所有等同替代方式和明显变形方式均属于本发明的保护范围。
首先,KPCR结构不会随着Windows版本的变动而改变,其结构如下:
nt!_KPCR
+0 x 000 NtTib                                 :_NT_TIB
+0 x 01c SelfPcr                               :Ptr32_KPCR
+0 x 020 Prcb                                  :Ptr32_KPRCB
+0 x 024 Irq1                                  :UChar
+0 x 028 IRR                                   :Uint4B
+0 x 02c IrrActive                             :Uint4B
+0 x 030 IDR                                   :Uint4B
+0 x 034 KdVersionBlock                        :Ptr32Void
+0 x 038 IDT                                   :Ptr32_KIDTENTRY
+0 x 03c GDT                                   :Ptr32_KGDTENTRY
+0 x 040 TSS                                   :Ptr32_KTSS
+0 x 044 MajorVersion                          :Uint2B
+0 x 046 MinorVersion                          :Uint2B
+0 x 048 SetMember                             :Uint4B
+0 x 04c StallScaleFactor                       :Uint4B
+0 x 050 DebugActive                           :UChar
+0 x 051 Number                                :UChar
+0 x 052 Spare0                                :UChar
+0 x 053 SecondLevelCacheAssociativity         :UChar
+0 x 054 VdmAlert                              :Uint4B
+0 x 058 KernelReserved                        :[14]Uint4B
+0 x 090 SecondLevelCacheSize                  :Uint4B
+0 x 094 HalReserved                           :[16]Uint4B
+0 x 0d4 InterruptMode                         :Uint4B
+0 x 0d8 Spare1                                :UChar
+0 x 0dc KernelReserved2                       :[17]Uint4B
+0 x 120 PrcbData                              :_KPRCB
从KPCR结构体中可以看到,在0 x 1c处为指向自身的指针,0 x 20处为指向KPRCB的指针,这两个指针的差值为0 x 120,可以根据此特征来寻找KPCR。因此,参照说明书附图2,本实施例采用具有以下步骤的方案:
步骤S100,搜索KPCR结构体:在内存镜像文件中根据KPCR结构体的上述特征进行搜索,由于其地址特征是准确的,以此为基础进行搜索快捷、准确。搜索KPCR结构体的目的是获取KPCR结构体,从而
步骤S120,从KPCR结构体中获取_DBGKD_GET-VERSION64结构体的虚拟地址,以对操作系统版本信息进行验证;
步骤S110,获取KPCRB结构体,从上面对KPCR结构体的描述可知,KPCRB在本方法中的重要性,也可以反推得知,内存镜像文件中寻找两个大于0 x 80000000的邻近值,且满足这两个值差为0 x 120的条件,此地址减去0 x 1c为KPCR的值,因此,
步骤S111进一步的在_KPCRB结构体中查找_KPROCESSOR_STATE结构,该结构体中0 x 2cc处为SpecialRegister成员,在SpecialRegister偏移地址为0 x 08处为CR3寄存器。通过分析该处保存的总是系统进程的页目录信息,当禁用物理地址拓展,保存的就是系统进程页目录的基地址。综上分析,KPCR的物理地址加上0 x 410后所得的地址指向的内容即为CR3寄存器中的内容。因此,就此可进行
步骤S200,获取CR3寄存器内容:在内存中存储的地址一般都是虚拟地址,而物理内存中地址定位的是物理地址,因此计算虚拟地址(线形地址)到物理地址的映射关系是内存分析的关键。如图3至7可知,现有Intel内存虚拟地址到物理地址的转换方式需要明确知道内存页面的页面模式,才能按照其方式进行转换,而CR3寄存器物理地址的第一个字节存储了页面模式信息的标志位,其中,该字节信息若是0 x 01,则表明页面使用的是PAE模式,从而可以完全按照Intel处理器地址转换方式获取内存分页虚拟地址所对应的物理地址和所述KdVersionBlock指针的物理地址,即图3至7,或图2中所述流程中S220-S202、S210-S202的内容。
从而,依据上述方式,步骤S102获取_DBGKD_GET-VERSION64结构的物理地址,KdVersionBlock的结构体如下:
1kd>dt_DBGKD_GET_VERSION64
nt!_DBGKD_GET_VERSION64
+0 x 000 MajorVersion           :Uint2B
+0 x 002 MinorVersion           :Uint2B
+0 x 004 ProtocolVersion        :Uint2B
+0 x 006 Flags                           :Uint2B
+0 x 008 MachineType                     :Uint2B
+0 x 00a MaxPacketType                   :UChar
+0 x 00b MaxStateChange                  :UChar
+0 x 00c MaxManipulate                   :UChar
+0 x 00d Simulation                      :UChar
+0 x 00e Unused                          :[1]Uint2B
+0 x 010 KernBase                        :Uint8B
+0 x 018 PsLoadedModuleList              :Uint8B
+0 x 020 DebuggerDataList                :Uint8B
依据该结构体,通过步骤S103获取系统版本信息,将KdVersionBlock的指针地址按照上述方法转换为物理地址,定位到镜像位置此地址处即可获取系统版本信息。然后
根据总结,发行的Windows Vista的子版本号为6000或者6001,Windows Xp的子版本号为2600,Windows 2003的子版本号为3790,Windows 2000的小版本号为2195。如果上述方法获取的子版本号为上述小版本号之一,说明求得的为正确的KPCR和CR3。所以
步骤S104,判断版本是否合理,用来验证所获的物理地址是否正确,若正确,则表明获得了正确的KPCR和CR3,从而
执行步骤S105’,获取内核变量,在内核变量中查找进程信息和系统驱动信息:得dVersionBlock在_DBGKD_GET_VERSION64之后,对应的内核变量分别是:
ULONG64 KernBase;
ULONG64 BreakpointWithStatus;
ULONG64 SavedContext;
USHORT ThCallbackStack;
USHORT NextCallback;
USHORT FramePointer;
USHORT PaeEnabled:1;
ULONG64 KiCallUserMode;
ULONG64 KeUserCallbackDispatcher;
ULONG64 PsLoadedModuleList;
ULONG64 PsActiveProcessHead;
...\
这些内核变量在内存分析中将起到非常重要的作用,根据psLoadedModuleList可以找到所有加载的驱动程序,根据变量PsActiveProcessHead可以找到所有的活动进程。
对于系统版本信息的验证,如果和所得系统版本信息与微软发布的系统响应版本信息不一致,则表明版本信息不合理。为了进一步的搜索KPCR结构体,需要首先确定系统内存镜像文件是否搜索完毕,因此执行步骤S106,即判断文件指针是否指像文件结尾,若已到文件尾,退出本查找;如果没有到文件尾,则执行
步骤S107,将文件指针后移0 x 100位继续按照KPCR结构特征进行检索,即执行步骤S100,进行下一搜索循环。

Claims (3)

1.一种基于KPCR结构的Windows系统物理内存分析方法,其包括以下步骤:
1)在Windows内存镜像文件中按照KPCR结构体的结构特征搜索KPCR结构体;
2)根据所获得KPCR结构体确定KPCR的物理地址和用于定位系统版本信息的KdVersionBlock指针地址;
3)根据所述KPCR物理地址查找CR3寄存器中的内容,确定其指向的物理地址;
4)依据上述CR3寄存器物理地址第一字节内容判断内存页模式;
5)根据所得内存页模式按照Intel处理器地址转换方式获取内存分页虚拟地址所对应的物理地址和所述KdVersionBlock指针的物理地址;
6)依据所述KdVersionBlock指针物理地址查找内存镜像位置在此地址处的系统版本信息的系统子版本号;
7)验证上述系统子版本号与微软所发布的系统子版本号是否一致,若一致则所获得的KPCR结构体和CR3寄存器的地址正确,根据KdVersionBlock后的内核变量获取系统驱动信息和进程信息;若错误,且KdVersionBlock指针未到文件尾,文件指针后移0x100后在Windows内存镜像文件中继续搜索KPCR结构体。
2.根据权利要求1所述的基于KPCR结构的Windows系统物理内存分析方法,其特征在于:所述搜索KPCR结构体的方法为通过在内存镜像文件中寻找两个大于0 x 80000000的邻近值,且这两个值满足相差0 x 120,此地址减去0 x 1c即为KPCR地址。
3.根据权利要求2所述的基于KPCR结构的Windows系统物理内存分析方法,其特征在于:所述获取CR3寄存器内容的方法为取KPCR地址加上0 x 410所得地址指向的内容。
CN2008101592608A 2008-11-27 2008-11-27 基于KPCR结构的Windows系统物理内存分析方法 Expired - Fee Related CN101414304B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101592608A CN101414304B (zh) 2008-11-27 2008-11-27 基于KPCR结构的Windows系统物理内存分析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101592608A CN101414304B (zh) 2008-11-27 2008-11-27 基于KPCR结构的Windows系统物理内存分析方法

Publications (2)

Publication Number Publication Date
CN101414304A true CN101414304A (zh) 2009-04-22
CN101414304B CN101414304B (zh) 2010-12-15

Family

ID=40594839

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101592608A Expired - Fee Related CN101414304B (zh) 2008-11-27 2008-11-27 基于KPCR结构的Windows系统物理内存分析方法

Country Status (1)

Country Link
CN (1) CN101414304B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102279877A (zh) * 2011-07-26 2011-12-14 山东省计算中心 一种Mac OS系统的物理内存镜像文件分析方法
CN101727323B (zh) * 2009-12-04 2012-08-01 山东省计算中心 Vista操作系统下网络信息的获取方法
CN102902575A (zh) * 2012-09-25 2013-01-30 北京奇虎科技有限公司 一种用于枚举系统进程的方法及装置
CN102945346A (zh) * 2012-09-25 2013-02-27 北京奇虎科技有限公司 一种用于枚举系统进程的方法及装置
CN104182269A (zh) * 2014-08-12 2014-12-03 山东省计算中心(国家超级计算济南中心) 一种kvm虚拟机的物理内存取证方法
CN105160001A (zh) * 2015-09-09 2015-12-16 山东省计算中心(国家超级计算济南中心) 一种Linux系统物理内存镜像文件分析方法
CN105573818A (zh) * 2015-12-14 2016-05-11 北京北信源软件股份有限公司 一种虚拟化环境中的windows内核基地址及编译版本识别方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101727323B (zh) * 2009-12-04 2012-08-01 山东省计算中心 Vista操作系统下网络信息的获取方法
CN102279877A (zh) * 2011-07-26 2011-12-14 山东省计算中心 一种Mac OS系统的物理内存镜像文件分析方法
CN102279877B (zh) * 2011-07-26 2013-03-13 山东省计算中心 一种Mac OS系统的物理内存镜像文件分析方法
CN102902575A (zh) * 2012-09-25 2013-01-30 北京奇虎科技有限公司 一种用于枚举系统进程的方法及装置
CN102945346A (zh) * 2012-09-25 2013-02-27 北京奇虎科技有限公司 一种用于枚举系统进程的方法及装置
CN102945346B (zh) * 2012-09-25 2016-03-30 北京奇虎科技有限公司 一种用于枚举系统进程的方法及装置
CN104182269A (zh) * 2014-08-12 2014-12-03 山东省计算中心(国家超级计算济南中心) 一种kvm虚拟机的物理内存取证方法
CN104182269B (zh) * 2014-08-12 2017-04-26 山东省计算中心(国家超级计算济南中心) 一种kvm虚拟机的物理内存取证方法
CN105160001A (zh) * 2015-09-09 2015-12-16 山东省计算中心(国家超级计算济南中心) 一种Linux系统物理内存镜像文件分析方法
CN105160001B (zh) * 2015-09-09 2017-03-08 山东省计算中心(国家超级计算济南中心) 一种Linux系统物理内存镜像文件分析方法
CN105573818A (zh) * 2015-12-14 2016-05-11 北京北信源软件股份有限公司 一种虚拟化环境中的windows内核基地址及编译版本识别方法
CN105573818B (zh) * 2015-12-14 2018-09-11 北京北信源软件股份有限公司 一种虚拟化环境中的windows内核基地址及编译版本识别方法

Also Published As

Publication number Publication date
CN101414304B (zh) 2010-12-15

Similar Documents

Publication Publication Date Title
CN101414304B (zh) 基于KPCR结构的Windows系统物理内存分析方法
Remmert et al. HHblits: lightning-fast iterative protein sequence searching by HMM-HMM alignment
US8037292B2 (en) Method for accelerating BIOS running
CN101421701A (zh) 使用nand闪存的直接引导配置
WO2017067175A1 (zh) 一种加载elf文件的方法、装置、设备和计算机存储介质
CN102279877B (zh) 一种Mac OS系统的物理内存镜像文件分析方法
US11042383B2 (en) System and method for boot speed optimization using non-volatile dual in-line memory modules
WO2006044201A3 (en) Method, apparatus, and system for facilitating secure computing
CN107479931B (zh) 一种linux系统应用层刷新BIOS的方法
US20050152600A1 (en) Method and apparatus for performing handwriting recognition by analysis of stroke start and end points
TW200414045A (en) Firmware updating method and related apparatus for checking content of replacing firmware before firmware updating
KR102655347B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
JP2004528637A5 (zh)
CN102567054B (zh) 双塔放大器的控制方法及相应的装置
CN107391038B (zh) 资料存储型闪存的数据写入方法、闪存及存储介质
WO2012177982A1 (en) Apparatus and method for accelerated hardware page table walk
CN109840090A (zh) 用于缓解高频执行路径中的高等待时间指令的技术
CN109508546A (zh) 一种基于软件基因的软件同源性分析方法和装置
JPS5854449A (ja) 分岐命令短縮化処理方式
KR101681851B1 (ko) 웹 브라우저 동작 방법 및 시스템
JP5601236B2 (ja) 情報抽出プログラム、情報抽出方法、および情報抽出装置
CN101727323A (zh) Vista操作系统下网络信息的获取方法
US8176306B2 (en) Boot block
CN103455757A (zh) 一种识别病毒的方法及装置
CN111859089B (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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20101215

Termination date: 20131127