其他数据空间

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

系统总线
ReadBusDataWriteBusData 读取和写入系统总线数据的方法。

Control-Space 内存
ReadControlWriteControl 读取和写入控制空间内存的方法。

I/O 内存。
ReadIoWriteIo 读取和写入系统和总线 I/O 内存的方法。

模型特定寄存器 (MSR)
ReadMsrWriteMsr 读取和写入 MSR 的方法,这些 MSR 是控制寄存器,用于启用和禁用功能,并支持调试特定 CPU 模型。

处理

在用户模式调试中,可以使用目标进程拥有的系统句柄获取有关系统对象的信息。 ReadHandleData 方法可用于读取此信息。

可以使用 GetCurrentThreadHandleGetCurrentProcessHandle 方法获取线程和进程系统对象的系统句柄。 当发生 create-thread 和 create-process 调试事件时,这些句柄也提供给 IDebugEventCallbacks::CreateThreadIDebugEventCallbacks::CreateProcess 回调方法。

注意 在内核模式下,进程和线程句柄是人工句柄。 它们不是系统句柄。