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。比如:

原文地址:https://www.cnblogs.com/yilang/p/13891906.html