CN105786596A - 一种从64位Windows10操作系统的内存镜像文件中获取对象信息的方法 - Google Patents

一种从64位Windows10操作系统的内存镜像文件中获取对象信息的方法 Download PDF

Info

Publication number
CN105786596A
CN105786596A CN201610159574.2A CN201610159574A CN105786596A CN 105786596 A CN105786596 A CN 105786596A CN 201610159574 A CN201610159574 A CN 201610159574A CN 105786596 A CN105786596 A CN 105786596A
Authority
CN
China
Prior art keywords
value
handle table
type
address
variable
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
CN201610159574.2A
Other languages
English (en)
Other versions
CN105786596B (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 CN201610159574.2A priority Critical patent/CN105786596B/zh
Publication of CN105786596A publication Critical patent/CN105786596A/zh
Application granted granted Critical
Publication of CN105786596B publication Critical patent/CN105786596B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • G06F9/467Transactional memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/285Redundant cache memory
    • G06F2212/286Mirrored cache memory

Abstract

本发明的从64位Windows10操作系统的内存镜像文件中获取对象信息的方法,包括:a).查找非系统进程;b).获取对象句柄表的值;c).获取对象句柄表的位置;d).获取对象头指针的地址;e).获取对象类型;f).对于不是File和IoCompletion的对象,获取其nameInfo结构体;g).根据nameInfo结构体,遍历对象链表,获取链表中对象的名称及类型。本发明的方法中的对象类型的获取方式,与Windows 8.1以下版本的获取方式完全不同,是获取对象信息的重点与难点;对象类型索引表地址的确定,与以往各操作系统版本位置均不同,是成功获取对象信息的关键所在。

Description

一种从64位Windows10操作系统的内存镜像文件中获取对象信息的方法
技术领域
本发明涉及一种获取对象信息的方法,更具体的说,尤其涉及一种从64位Windows10操作系统的内存镜像文件中获取对象信息的方法。本方法将应用于计算机取证领域,主要用于信息安全事件和各类计算机犯罪案件的调查取证。
背景技术
计算机物理内存中存在某些能描述系统遭受攻击时所处状态的信息,如进程信息、每个进程开启的线程信息、打开的文件信息、网络连接信息等。这些信息随着计算机系统的关机而消失。因此,对获取计算机物理内存在计算机取证方面尤为重要。为推进物理内存分析技术的发展,DFRWS(DigitalForensicResearchWorkshop)于2005年推出了名为“ForensicsChallenge”的活动,活动的主题就是物理内存分析。从此,对于物理内存的分析和获取成为计算机取证的研究热点,内存分析工具支持到Windows7的内存镜像文件分析,对目前新推出的64位windows10系统内存镜像文件分析尚不支持。随着计算机硬件水平的不断发展提高,目前大多数计算机都具备4G以上内存空间,并支持64位操作系统,因此对64位windows10操作系统的内存镜像文件分析工作迫在眉睫。
在内存镜像文件分析工作中,进程打开的文件信息、系统运行日志信息、用户ntHash值的获取、注册表信息、系统日志信息等关系系统恶意代码分析或敏感信息分析的重要信息获取都依赖于系统对象信息的获取,只有分析出了系统对象信息,才能进一步获取以上信息。然而,对64位Windows10操作系统来说,使用以往64位Windows8操作系统及以下版本的对象信息获取方法来获取其对象信息是完全不可行的。
发明内容
本发明为了克服上述技术问题的缺点,提供了一种从64位Windows10操作系统的内存镜像文件中获取对象信息的方法。
本发明的从64位Windows10操作系统的内存镜像文件中获取对象信息的方法,其特别之处在于,通过以下步骤来实现:a).查找非系统进程,采用遍历进程链表的方式,当进程的id≠0且id≠4时,则该进程为非系统进程,并获取其进程结构体变量_Eprocess;b).获取对象句柄表的值,根据步骤a)中的进程结构体变量_Eprocess获取结构体中的对象句柄表ObjectTable变量的值;c).获取对象句柄表的位置,根据对象句柄表ObjectTable值的最后一个字节确定对象句柄表的级数,并确定出对象句柄表在内存镜像文件中的位置;d).获取对象头指针的地址,根据步骤c)中确定的对象句柄表的位置,遍历对象句柄表,分析对象句柄表表项结构,获取对象头指针ObjectHeader的地址;e).获取对象类型,根据步骤d)中获取的对象头指针ObjectHeader的地址,获取对象的类型;f).对象类型的判断,判断步骤e)中所获取的对象类型,对于对象类型不是File和IoCompletion的对象,获取其nameInfo结构体;g).获取对象名称及类型,根据步骤f)中所获取的nameInfo结构体,遍历对象链表,获取链表中对象的名称及类型。
本发明的从64位Windows10操作系统的内存镜像文件中获取对象信息的方法,步骤c)所述的获取对象句柄表位置的方法为:首先,根据_Eprocess进程结构体的内容,获取对象句柄表ObjectTable的地址,并获取对象句柄表ObjectTable;然后,分析进程句柄表的结构“_handle_table”,获取其中“TableCode”变量的值,这个值的低2位记录着对象句柄表的级数;
如果低2位的值为0,说明句柄表只有一级,此时“TableCode”变量的值就是对象句柄表的地址,句柄表是由所有内核对象指针组成的表;如果低2位的值为1,说明句柄表有两级,“TableCode”变量的值指向第一级句柄表,第一级句柄表里存储指向第二级句柄表的指针,第二级句柄表才是所有内核对象指针组成的表。
本发明的从64位Windows10操作系统的内存镜像文件中获取对象信息的方法,步骤d)中所述的对象头指针的地址通过公式(1)进行求取:
ObjectHeaderVal=(((HandleTableEntryVa>>20)&0xFFFFFFFFFFF)<<4)+0xFFFF000000000000;(1)
其中,ObjectHeaderVal表示对象头指针的地址,HandleTableEntryVa为对象指针位数ObjectPointerBits变量所在句柄表项的值,对象指针位数ObjectPointerBits的定义为占用表项中以bit20开始的44位。
本发明的从64位Windows10操作系统的内存镜像文件中获取对象信息的方法,步骤e)中所述的获取对象类型通过以下步骤来实现:
e-1).获取_object_header结构体中类型索引变量typeindex的值,设其值为typeindexFrom0bj;e-2).获取_object_header结构体对应类型索引值的变体,设其值为typeindexFromHeader;e-3).获取内核变量ObHeaderCookie的值,将其指向地址的第一个字节设置为typeindexCookie;e-4).根据公式(2)获取对象在对象类型表中的类型索引值typeindex:
typeindex=typeindexFrom0bj^typeindexFromHeader^typeindexCookie(2)
e-5).获取对象类型索引表的地址,根据当前分析的对象在对象类型索引表中的类型索引值typeindex,定位到对象类型表中相应位置,获取当前分析对象的类型。
本发明的从64位Windows10操作系统的内存镜像文件中获取对象信息的方法,步骤e-1)中typeindexFrom0bj的获取方法为:设步骤d)中获取的对象头指针的值为ObjectHeaderVal,该值也是_object_header结构体在内存镜像文件中的虚拟地址,则:
typeindexFrom0bj的虚拟地址=ObjectHeaderVal+0x18(3)
将该虚拟地址转换成物理地址后,从内存镜像文件中定位到该位置,从此处获取一个字节的数值即是typeindexFrom0bj的值。
本发明的从64位Windows10操作系统的内存镜像文件中获取对象信息的方法,步骤e-2)中所述的typeindexFromHeader通过公式(4)进行求取:
typeindexFromHeader=(ObjectHeaderVal>>8)&0xFF(4)。
本发明的从64位Windows10操作系统的内存镜像文件中获取对象信息的方法,步骤e-3)中所述的内核变量ObHeaderCookie的值通过以下步骤进行获取:
e-3-1).通过公式(5)获取对象类型索引表的虚拟地址ObTypeIndexTableVal:
ObTypeIndexTableVal=kdversionVal+0xbba50(5)
其中,kdversionVal是内核变量kdversion的值;
e-3-2).通过公式(6)获取内核变量ObHeaderCookie的值:
ObHeaderCookieVal=ObTypeIndexTableVal-0x490(6)
在64位Windows10操作系统中,内核变量ObHeaderCookie相对于内核变量bTypeIndexTable的偏移量是0x490。
本发明的从64位Windows10操作系统的内存镜像文件中获取对象信息的方法,步骤e-5)中对象类型通过对象类型的指针objTypePtr获取:
objTypePtr=typeindex*8+ObTypeIndexTableVal(7)
其中,ObTypeIndexTableVal为对象类型索引表的虚拟地址;对象类型的指针objTypePtr所指向的对象类型,即是当前分析对象的类型。
本发明的有益效果是:(1)本发明所公开的64位windows10内存镜像文件中对象信息的获取方法分析方法准确高效;(2)本发明中的对象类型的获取方式,与Windows8.1以下版本的获取方式完全不同,是获取对象信息的重点与难点;(3)本发明的64位windows10内存镜像文件中对象信息的获取方法中,对象类型索引表地址的确定,与以往各操作系统版本位置均不同,是成功获取对象信息的关键所在;(4)本发明的64位windows10内存镜像文件中对象信息的获取方法中,对象头指针在句柄表项中占用的16个字节中的位数与Windows8.1以下版本的位数不同,因此,获取方法也不相同,是获取对象信息的基础。
附图说明
图1为本发明的内存镜像文件中获取对象信息的方法的流程图;
图2为本发明中所获取到的对象句柄表在内存镜像文件中的内容;
图3为给出了本发明中获取对象类型的原理图;
图4为所获取的对象类型索引表的部分内容。
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
如图1所示,给出了本发明的64位windows10内存镜像文件中对象信息的获取方法的流程图,其按照“获取句柄表地址——获取对象类型——分析对象结构体,遍历一级对象目录”的流程来进行。由于每个进程都维护了一个句柄表,用于存放其操作的对象的头信息,对每个对象来讲,又可通过遍历该对象的目录结构,找到处于第一级的对象目录表,遍历此表便可获得所有内核对象信息。如图1所示,本发明的64位windows10内存镜像文件中对象信息的获取方法,首先要获取某个非系统进程的句柄表地址,由于在计算机操作系统中,可能存在有的进程其句柄表被交换到页面文件中的情况,因此并不能保证所有进程的句柄表都存在于物理内存镜像文件中的情况,在此处,需要对进程进行遍历,找到进程句柄表在物理内存中的非系统进程。然后遍历对象句柄表表项,获取对象索引,以确定对象类型;最后根据对象nameInfo结构体信息,获取第一级对象目录表地址,并遍历对象目录表结构,获得所有对象信息。其具体通过以步骤来实现:
a).查找非系统进程,采用遍历进程链表的方式,当进程的id≠0且id≠4时,则该进程为非系统进程,并获取其进程结构体变量_Eprocess;
b).获取对象句柄表的值,根据步骤a)中的进程结构体变量_Eprocess获取结构体中的对象句柄表ObjectTable变量的值;
c).获取对象句柄表的位置,根据对象句柄表ObjectTable值的最后一个字节确定对象句柄表的级数,并确定出对象句柄表在内存镜像文件中的位置;
该步骤中,所述的获取对象句柄表位置的方法为:首先,根据_Eprocess进程结构体的内容,获取对象句柄表ObjectTable的地址,并获取对象句柄表ObjectTable;然后,分析进程句柄表的结构“_handle_table”,获取其中“TableCode”变量的值,这个值的低2位记录着对象句柄表的级数;如果低2位的值为0,说明句柄表只有一级,此时“TableCode”变量的值就是对象句柄表的地址,句柄表是由所有内核对象指针组成的表;如果低2位的值为1,说明句柄表有两级,“TableCode”变量的值指向第一级句柄表,第一级句柄表里存储指向第二级句柄表的指针,第二级句柄表才是所有内核对象指针组成的表。
d).获取对象头指针的地址,根据步骤c)中确定的对象句柄表的位置,遍历对象句柄表,分析对象句柄表表项结构,获取对象头指针ObjectHeader的地址;
如图1所示,给出了本发明的64位windows10内存镜像文件中对象信息的获取方法中步骤c中获取到的对象句柄表在内存镜像文件中的内容。从表的偏移0x10处开始存有数据,其每个表项占用64个bit,其定义如下所示:
Ntdll!_handle_table_entry
+0x000VolatileLowValue:Int8B
+0x000LowValue:Int8B
+0x000InfoTable:Ptr64_HANDLE_TABLE_ENTRY_INFO
+0x008HighValue:Int8B
+0x008NextFreeHandleEntry:Ptr64_HANDLE_TABLE_ENTRY
+0x008LeafHandleValue:_EXHANDLE
+0x000RefCountField:Int8B
+0x000UnLocked:Pos0,1Bit
+0x000RefCnt:Pos1,16Bits
+0x000Attributes:Pos17,3Bits
+0x000ObjectPointerBits:Pos20,44Bits
+0x008GrantedAccessBits:Pos0,25Bits
+0x008NoRightsUpgrade:Pos25,1Bit
+0x008Spare1:Pos26,6Bits
+0x00cSpare2:Uint4B
可以看到,变量“ObjectPointerBits”占用64个bit中的以bit20开始的44位。设句柄表项的值为HandleTableEntryVal,设对象头指针的值为ObjectHeaderVa,
所述的对象头指针的地址通过公式(1)进行求取:
ObjectHeaderVal=(((HandleTableEntryVa>>20)&0xFFFFFFFFFFF)<<4)+0xFFFF000000000000;(1)
其中,ObjectHeaderVal表示对象头指针的地址,HandleTableEntryVa为对象指针位数ObjectPointerBits变量所在句柄表项的值。
e).获取对象类型,根据步骤d)中获取的对象头指针ObjectHeader的地址,获取对象的类型;
结构体_object_header保存了类型索引值typeindexFromObj,在64位Windows8.1及以下操作系统版本中,类型索引值typeindex=typeindexFromObj。但是,在64位Windows10操作系统中,typeindexFromObj只是获取最终类型索引值typeindex的一部分;类型索引值typeindex的第二部分typeindexFromHeader,来自于结构体_object_header的值objHeaderVal;类型索引值typeindex的第三部分typeindexCookie,来自于内核变量ObHeaderCookie,内核变量ObHeaderCookie指向地址的第一个字节就是typeindexCookie。
该步骤中,所述的获取对象类型通过以下步骤来实现:
e-1).获取_object_header结构体中类型索引变量typeindex的值,设其值为typeindexFrom0bj;
_object_header结构体在64位Windows10操作系统中的定义如下:
Dtnt!_object_header
+0x000PointerCount:Int8B
+0x008HandleCount:Int8B
+0x008NextToFree:Ptr64Void
+0x010Lock:_EX_PUSH_LOCK
+0x0018TypeIndex:UChar
+0x0019TraceFlags:UChar
……
由上述定义可知,“typeindex”变量在“_object_header”中的偏移为0x18,其值占用1个字节的位置,设上述步骤d中所获取的对象头指针值为objHeaderVal,该值也是“_object_header”结构体在内存镜像文件中的虚拟地址,则“typeindexFromObj”的虚拟地址=objHeaderVa+0x18,将该虚拟地址转换成物理地址后,在从内存镜像文件中定位到该位置,从此处获取1个字节的数值即是“typeindexFromObj”的值。
故,typeindexFrom0bj的获取方法为:设步骤d)中获取的对象头指针的值为ObjectHeaderVal,该值也是_object_header结构体在内存镜像文件中的虚拟地址,则:
typeindexFrom0bj的虚拟地址=ObjectHeaderVal+0x18(3)
将该虚拟地址转换成物理地址后,从内存镜像文件中定位到该位置,从此处获取一个字节的数值即是typeindexFrom0bj的值。
e-2).获取_object_header结构体对应类型索引值的变体,设其值为typeindexFromHeader;
该步骤中,所述的typeindexFromHeader通过公式(4)进行求取:
typeindexFromHeader=(ObjectHeaderVal>>8)&0xFF(4)。
e-3).获取内核变量ObHeaderCookie的值,将其指向地址的第一个字节设置为typeindexCookie;
该步骤中,所述的内核变量ObHeaderCookie的值通过以下步骤进行获取:
e-3-1).通过公式(5)获取对象类型索引表的虚拟地址ObTypeIndexTableVal:
ObTypeIndexTableVal=kdversionVal+0xbba50(5)
其中,kdversionVal是内核变量kdversion的值;
e-3-2).通过公式(6)获取内核变量ObHeaderCookie的值:
ObHeaderCookieVal=ObTypeIndexTableVal-0x490(6)
在64位Windows10操作系统中,内核变量ObHeaderCookie相对于内核变量bTypeIndexTable的偏移量是0x490。
如图4所示,可以看到步骤e-5中所涉及的64位Windows10操作系统中对象类型索引表的内容,其表项是由64bit组成的指针,每个指针指向一种对象类型。
e-4).根据公式(2)获取对象在对象类型表中的类型索引值typeindex:
typeindex=typeindexFrom0bj^typeindexFromHeader^typeindexCookie(2)
e-5).获取对象类型索引表的地址,根据当前分析的对象在对象类型索引表中的类型索引值typeindex,定位到对象类型表中相应位置,获取当前分析对象的类型。
该步骤中,对象类型通过对象类型的指针objTypePtr获取:
objTypePtr=typeindex*8+ObTypeIndexTableVal(7)
其中,ObTypeIndexTableVal为对象类型索引表的虚拟地址;对象类型的指针objTypePtr所指向的对象类型,即是当前分析对象的类型。
f).对象类型的判断,判断步骤e)中所获取的对象类型,对于对象类型不是File和IoCompletion的对象,获取其nameInfo结构体;
g).获取对象名称及类型,根据步骤f)中所获取的nameInfo结构体,遍历对象链表,获取链表中对象的名称及类型。
因此,通过上述各方法步骤,可以获取获取句柄表地址、从而获取对象类型,并通过分析nameInfo对象结构体,遍历对象目录。

Claims (8)

1.一种从64位Windows10操作系统的内存镜像文件中获取对象信息的方法,其特征在于,通过以下步骤来实现:
a).查找非系统进程,采用遍历进程链表的方式,当进程的id≠0且id≠4时,则该进程为非系统进程,并获取其进程结构体变量_Eprocess;
b).获取对象句柄表的值,根据步骤a)中的进程结构体变量_Eprocess获取结构体中的对象句柄表ObjectTable变量的值;
c).获取对象句柄表的位置,根据对象句柄表ObjectTable值的最后一个字节确定对象句柄表的级数,并确定出对象句柄表在内存镜像文件中的位置;
d).获取对象头指针的地址,根据步骤c)中确定的对象句柄表的位置,遍历对象句柄表,分析对象句柄表表项结构,获取对象头指针ObjectHeader的地址;
e).获取对象类型,根据步骤d)中获取的对象头指针ObjectHeader的地址,获取对象的类型;
f).对象类型的判断,判断步骤e)中所获取的对象类型,对于对象类型不是File和IoCompletion的对象,获取其nameInfo结构体;
g).获取对象名称及类型,根据步骤f)中所获取的nameInfo结构体,遍历对象链表,获取链表中对象的名称及类型。
2.根据权利要求1所述的从64位Windows10操作系统的内存镜像文件中获取对象信息的方法,其特征在于:步骤c)所述的获取对象句柄表位置的方法为:首先,根据_Eprocess进程结构体的内容,获取对象句柄表ObjectTable的地址,并获取对象句柄表ObjectTable;然后,分析进程句柄表的结构“_handle_table”,获取其中“TableCode”变量的值,这个值的低2位记录着对象句柄表的级数;
如果低2位的值为0,说明句柄表只有一级,此时“TableCode”变量的值就是对象句柄表的地址,句柄表是由所有内核对象指针组成的表;如果低2位的值为1,说明句柄表有两级,“TableCode”变量的值指向第一级句柄表,第一级句柄表里存储指向第二级句柄表的指针,第二级句柄表才是所有内核对象指针组成的表。
3.根据权利要求2所述的从64位Windows10操作系统的内存镜像文件中获取对象信息的方法,其特征在于:步骤d)中所述的对象头指针的地址通过公式(1)进行求取:
ObjectHeaderVal=(((HandleTableEntryVa>>20)&0xFFFFFFFFFFF)<<4)+0xFFFF000000000000;(1)
其中,ObjectHeaderVal表示对象头指针的地址,HandleTableEntryVa为对象指针位数ObjectPointerBits变量所在句柄表项的值,对象指针位数ObjectPointerBits的定义为占用表项中以bit20开始的44位。
4.根据权利要求1或2所述的从64位Windows10操作系统的内存镜像文件中获取对象信息的方法,其特征在于,步骤e)中所述的获取对象类型通过以下步骤来实现:
e-1).获取_object_header结构体中类型索引变量typeindex的值,设其值为typeindexFrom0bj;
e-2).获取_object_header结构体对应类型索引值的变体,设其值为typeindexFromHeader;
e-3).获取内核变量ObHeaderCookie的值,将其指向地址的第一个字节设置为typeindexCookie;
e-4).根据公式(2)获取对象在对象类型表中的类型索引值typeindex:
typeindex=typeindexFrom0bj^typeindexFromHeader^typeindexCookie(2)
e-5).获取对象类型索引表的地址,根据当前分析的对象在对象类型索引表中的类型索引值typeindex,定位到对象类型表中相应位置,获取当前分析对象的类型。
5.根据权利要求4所述的从64位Windows10操作系统的内存镜像文件中获取对象信息的方法,其特征在于,步骤e-1)中typeindexFrom0bj的获取方法为:设步骤d)中获取的对象头指针的值为ObjectHeaderVal,该值也是_object_header结构体在内存镜像文件中的虚拟地址,则:
typeindexFrom0bj的虚拟地址=ObjectHeaderVal+0x18(3)
将该虚拟地址转换成物理地址后,从内存镜像文件中定位到该位置,从此处获取一个字节的数值即是typeindexFrom0bj的值。
6.根据权利要求4或5所述的从64位Windows10操作系统的内存镜像文件中获取对象信息的方法,其特征在于,步骤e-2)中所述的typeindexFromHeader通过公式(4)进行求取:
typeindexFromHeader=(ObjectHeaderVal>>8)&0xFF(4)。
7.根据权利要求4或5所述的从64位Windows10操作系统的内存镜像文件中获取对象信息的方法,其特征在于,步骤e-3)中所述的内核变量ObHeaderCookie的值通过以下步骤进行获取:
e-3-1).通过公式(5)获取对象类型索引表的虚拟地址ObTypeIndexTableVal:
ObTypeIndexTableVal=kdversionVal+0xbba50(5)
其中,kdversionVal是内核变量kdversion的值;
e-3-2).通过公式(6)获取内核变量ObHeaderCookie的值:
ObHeaderCookieVal=ObTypeIndexTableVal-0x490(6)
在64位Windows10操作系统中,内核变量ObHeaderCookie相对于内核变量bTypeIndexTable的偏移量是0x490。
8.根据权利要求4或5所述的从64位Windows10操作系统的内存镜像文件中获取对象信息的方法,其特征在于,步骤e-5)中对象类型通过对象类型的指针objTypePtr获取:
objTypePtr=typeindex*8+ObTypeIndexTableVal(7)
其中,ObTypeIndexTableVal为对象类型索引表的虚拟地址;对象类型的指针objTypePtr所指向的对象类型,即是当前分析对象的类型。
CN201610159574.2A 2016-03-21 2016-03-21 一种从64位Windows10操作系统的内存镜像文件中获取对象信息的方法 Active CN105786596B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610159574.2A CN105786596B (zh) 2016-03-21 2016-03-21 一种从64位Windows10操作系统的内存镜像文件中获取对象信息的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610159574.2A CN105786596B (zh) 2016-03-21 2016-03-21 一种从64位Windows10操作系统的内存镜像文件中获取对象信息的方法

Publications (2)

Publication Number Publication Date
CN105786596A true CN105786596A (zh) 2016-07-20
CN105786596B CN105786596B (zh) 2018-04-13

Family

ID=56393143

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610159574.2A Active CN105786596B (zh) 2016-03-21 2016-03-21 一种从64位Windows10操作系统的内存镜像文件中获取对象信息的方法

Country Status (1)

Country Link
CN (1) CN105786596B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109740310A (zh) * 2018-12-29 2019-05-10 北京嘉楠捷思信息技术有限公司 用于嵌入式操作系统的内核对象访问方法和装置
CN114579525A (zh) * 2022-05-09 2022-06-03 山东省计算中心(国家超级计算济南中心) 面向ext4文件系统的数据无痕删除方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070171921A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and systems for interacting, via a hypermedium page, with a virtual machine executing in a terminal services session
CN101770551A (zh) * 2008-12-30 2010-07-07 中国科学院软件研究所 一种基于硬件模拟器的处理隐藏进程的方法
CN102279877A (zh) * 2011-07-26 2011-12-14 山东省计算中心 一种Mac OS系统的物理内存镜像文件分析方法
CN102945343A (zh) * 2012-09-25 2013-02-27 北京奇虎科技有限公司 一种用于枚举系统进程的方法及装置
CN105160001A (zh) * 2015-09-09 2015-12-16 山东省计算中心(国家超级计算济南中心) 一种Linux系统物理内存镜像文件分析方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070171921A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and systems for interacting, via a hypermedium page, with a virtual machine executing in a terminal services session
CN101770551A (zh) * 2008-12-30 2010-07-07 中国科学院软件研究所 一种基于硬件模拟器的处理隐藏进程的方法
CN102279877A (zh) * 2011-07-26 2011-12-14 山东省计算中心 一种Mac OS系统的物理内存镜像文件分析方法
CN102945343A (zh) * 2012-09-25 2013-02-27 北京奇虎科技有限公司 一种用于枚举系统进程的方法及装置
CN105160001A (zh) * 2015-09-09 2015-12-16 山东省计算中心(国家超级计算济南中心) 一种Linux系统物理内存镜像文件分析方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109740310A (zh) * 2018-12-29 2019-05-10 北京嘉楠捷思信息技术有限公司 用于嵌入式操作系统的内核对象访问方法和装置
CN114579525A (zh) * 2022-05-09 2022-06-03 山东省计算中心(国家超级计算济南中心) 面向ext4文件系统的数据无痕删除方法及系统

Also Published As

Publication number Publication date
CN105786596B (zh) 2018-04-13

Similar Documents

Publication Publication Date Title
CN106502745B (zh) 一种函数调用方法和装置
US20130103669A1 (en) Search Engine Indexing
Walls et al. Forensic Triage for Mobile Phones with {DEC0DE}
US11132409B2 (en) Identifying client states
EP3014479A2 (en) Omega names: name generation and derivation
US20070124302A1 (en) Mapping a Source File From a Source System To a Target System
Lee et al. ExtSFR: scalable file recovery framework based on an Ext file system
CN111104377A (zh) 文件管理的方法、电子设备和计算机可读存储介质
CN105786596A (zh) 一种从64位Windows10操作系统的内存镜像文件中获取对象信息的方法
US7437367B2 (en) Pack URI scheme to identify and reference parts of a package
Atwal et al. Shining a light on Spotlight: Leveraging Apple's desktop search utility to recover deleted file metadata on macOS
US20150347402A1 (en) System and method for enabling a client system to generate file system operations on a file system data set using a virtual namespace
CN107590233B (zh) 一种文件管理方法及装置
CN106874147B (zh) 一种恢复并解析Windows操作系统预读文件的方法
CN110287172B (zh) 一种格式化HBase数据的方法
Carbone et al. Generating computer forensic super-timelines under Linux
CN107656868B (zh) 一种利用线程私有数据获取线程名字的调试方法及系统
CN113553587B (zh) 一种文件检测方法、装置、设备及可读存储介质
CN107203706B (zh) App内部权限的检测方法及装置
Dija et al. Cyber forensics: Discovering traces of malware on windows systems
CN111562940B (zh) 项目数据构建方法以及装置
JP4521413B2 (ja) データベース管理システム及びプログラム
KR100887547B1 (ko) 데이터 손상률 확인 방법 및 장치
CN116126620A (zh) 数据库日志处理方法、数据库变更查询方法及相关装置
An et al. Data reconstruction and recovery of deduplicated files having non-resident attributes in NTFS volume

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