在windbg中查看崩溃转储时,我可以看到所有当前线程都停留在
> ~2k
ChildEBP RetAddr
00d2fcc8 7d4e27dc ntdll_7d600000!ZwWaitForMultipleObjects+0x15
或者是同类的SingleObject。
当将对象句柄传递给ZwWaitForMultipleObjects时,我认为可以通过以下方式推断出使用的对象:
!do <address>
有了正确的地址——但我不知道如何构造正确的地址。我假设我需要一些从ChildEBP的偏移量?
!do
用于托管对象 (.NET),但 ZwWFMO 很可能在等待本机句柄。使用~2kb
获取堆栈上方的良好文档化的 Win32 帧(希望是 WaitForMultipleObjects)及其前三个参数。您将需要取消引用第二个参数以获取句柄。当您获得句柄值时,请使用!handle <handle> f
获取有关特定句柄的信息。如果您需要帮助挖掘句柄值,请将输出发布到~2kb
。 - Marc Sherman