WdbgExts 内存访问

本主题简要概述了如何使用 WdbgExts API 执行内存访问。 有关调试器引擎中内存访问的概述,请参阅本文档的“调试器引擎概述”部分中的“内存”。

虚拟内存

可以使用 ReadMemory 函数读取目标的虚拟内存,并使用 WriteMemory 函数进行写入。 可以使用 ReadPointerReadPtrWritePointer 函数读取和写入目标内存中的指针。

若要搜索虚拟内存中的字节模式,请使用 SearchMemory 函数。

TranslateVirtualToPhysical 函数可用于将虚拟内存地址转换为物理内存地址。

Disasm 函数可用于对目标反汇编单个程序集指令。

若要在使用物理地址扩展(PAE)时检查低 4 GB 内存是否损坏,请使用操作 Ioctl 进行 IG_LOWMEM_CHECK

物理内存

物理内存只能在内核模式调试中直接访问。

可以使用 ReadPhysical 和ReadPhysicalWithFlags 函数读取目标上的物理内存,并使用 WritePhysical 和 WritePhysicalWithFlags 函数进行写入。

若要在物理内存中搜索指向指定范围内位置的指针,请使用 IoctlIG_POINTER_SEARCH_PHYSICAL

其他数据空间

在内核模式调试中,除了主内存之外,还可以将数据读取和写入各种数据空间。 可以访问以下数据空间:

Control-Space 内存
ReadControlSpaceReadControlSpace64ReadTypedControlSpace32ReadTypedControlSpace64 函数将从控制空间读取数据。 WriteControlSpace 函数会将数据写入控件空间。

I/O 内存
ReadIoSpaceReadIoSpace64ReadIoSpaceEx64 函数将从系统 I/O 内存和总线 I/O 内存中读取数据。 WriteIoSpace、WriteIoSpace64、WriteIoSpaceExWriteIoSpaceEx64 函数会将数据写入系统 I/O 内存和总线 I/O 内存。

模型特定寄存器 (MSR)
函数 ReadMsrWriteMsr 读取和写入 MSR。

系统总线
Ioctl操作IG_GET_BUS_DATAIG_SET_BUS_DATA用于读取和写入系统总线数据。

其他信息

有关更强大的内存访问 API,请参阅本文档的“使用调试器引擎 API”部分中的“内存访问”。