0

由于我们的安全软件 dll 加载到 Explorer.exe 中,我在 Explorer.exe 中看到了崩溃。

崩溃发生在系统关闭期间。VM 连接到内核调试器。发生异常时,我没有看到内核调试器中断。我尝试了所有调试事件过滤器。但我无法成功。

有人可以建议我,为什么在出现异常时我看不到中断。 我想在异常发生时闯入调试器。我可以在内核模式中使用 SXE ud "dllName" 在卸载 perticula dll 时通知我吗?

例外是资源管理器崩溃,“0x6ad88b5 处的指令引用了 0x0000000 处的内存。无法读取内存”

4

2 回答 2

1

这应该有效:

  1. 从 WinDbg 启动 gflags.exe。
  2. 转到“图像文件”选项卡,输入“explorer.exe”并按 TAB 键。
  3. 检查第一项“异常停止”。

现在当 explorer.exe 崩溃并连接内核调试器时,WinDbg 应该会中断。

于 2014-01-05T18:23:35.600 回答
0

首先,在内核模式调试时加载或卸载DLL不会导致中断,但是在用户模式调试时它们工作得很好。

我相信在内核模式调试中,当加载或卸载像 .SYS 文件这样的内核模式二进制文件时,你应该能够中断。

现在,回答你的问题。一种方法可能是,

  1. 将 Windbg 设置为默认的事后调试器。windbg.exe -I. 这将确保您在发生任何异常时中断调试器。但这将是用户模式调试。

  2. 接下来,假设您有 KD 设置,只需执行.breakin,将带您从用户模式到内核模式调试。

斜体是调试器命令。

于 2014-01-05T15:12:30.820 回答