Dump文件数据存储格式(八)
十、已卸载模块列表流(UnloadedModuleListStream
)
UnloadedModuleListStream
流包含卸载模块的模块信息。跟随在ModuleListStream
的后面。ModuleListStream
相关信息如下:
0x29c0+0n26680=0x91f8
而UnloadedModuleListStream
相关信息如下:
可知,UnloadedModuleListStream
的RVA为0x91f8,所以它紧随在ModuleListStream
的后面,大小为324字节。数据如下:
这些数据按如下结构组织:
首先是相当于头结构的_MINIDUMP_UNLOADED_MODULE_LIST,包含流的一些数据量
typedef struct _MINIDUMP_UNLOADED_MODULE_LIST { ULONG32 SizeOfHeader; ULONG32 SizeOfEntry; ULONG32 NumberOfEntries; } MINIDUMP_UNLOADED_MODULE_LIST, *PMINIDUMP_UNLOADED_MODULE_LIST;
成员如下:
SizeOfHeader
流的头数据的大小,以字节为单位。这通常是sizeof(MINIDUMP_UNLOADED_MODULE_LIST)。
SizeOfEntry
头后面的每个条目的大小(以字节为单位)。这通常是sizeof(MINIDUMP_UNLOADED_MODULE)。
NumberOfEntries
流中的条目数。这些通常是MINIDUMP_UNLOADED_MODULE结构。条目跟随头部。
而MINIDUMP_UNLOADED_MODULE包含模块的相关信息,结构如下:
typedef struct _MINIDUMP_UNLOADED_MODULE { ULONG64 BaseOfImage; ULONG32 SizeOfImage; ULONG32 CheckSum; ULONG32 TimeDateStamp; RVA ModuleNameRva; } MINIDUMP_UNLOADED_MODULE, *PMINIDUMP_UNLOADED_MODULE;
成员如下:
BaseOfImage
内存中模块可执行映像的基址。
SizeOfImage
内存中模块可执行映像的大小,以字节为单位。
CheckSum
模块可执行映像的校验和值。
TimeDateStamp
模块可执行映像的时间戳值,采用time_t格式。
ModuleNameRva
指定模块名称的MINIDUMP_STRING结构的RVA。比如: