typedef struct _LOADED_IMAGE {
PSTR ModuleName; // 模块的名称
HANDLE hFile; // 模块文件的句柄
PUCHAR MappedAddress; // 模块的基地址
PIMAGE_NT_HEADERS64 FileHeader; // 模块的 NT 头部
PIMAGE_SECTION_HEADER LastRvaSection; // 最后一个 RVA 段
ULONG NumberOfSections; // 模块的节的数量
PIMAGE_SECTION_HEADER Sections; // 模块的节头部数组
ULONG Characteristics; // 模块的特征
BOOLEAN fSystemImage; // 是否为系统映像
BOOLEAN fDOSImage; // 是否为 DOS 映像
LIST_ENTRY InLoadOrderLinks; // 模块的装载顺序链接
LIST_ENTRY InMemoryOrderLinks; // 模块的内存顺序链接
LIST_ENTRY InInitializationOrderLinks; // 模块的初始化顺序链接
PVOID Reserved; // 保留字段
} LOADED_IMAGE, *PLOADED_IMAGE;
这个结构体包含以下字段:
- ModuleName: 模块的名称。
- hFile: 模块文件的句柄。
- MappedAddress: 模块的基地址。
- FileHeader: 模块的 NT 头部。
- LastRvaSection: 最后一个 RVA 段。
- NumberOfSections: 模块的节的数量。
- Sections: 模块的节头部数组。
- Characteristics: 模块的特征。
- fSystemImage: 表示是否为系统映像。
- fDOSImage: 表示是否为 DOS 映像。
- InLoadOrderLinks: 模块的装载顺序链接。
- InMemoryOrderLinks: 模块的内存顺序链接。
- InInitializationOrderLinks: 模块的初始化顺序链接。
- Reserved: 保留字段。
LOADED_IMAGE 结构通常在调试和符号处理的上下文中使用,用于获取已加载模块的信息,如基地址、文件句柄、模块头等。这对于调试工具和符号查找等场景非常有用。
转载请注明出处:http://www.zyzy.cn/article/detail/26399/Win32 API/Dbghelp.h/LOADED_IMAGE