如何在 windBG 内核模式下设置内存断点



我想在内核模式调试器中在windbg中设置访问时设置内存断点

我希望每次内核调试器命中用户模式下的特定模块时调试器都会中断。

但是我已经在某处读到无法设置它,为了制作内存断点,我必须编写一个插件来制作它

我尝试将SDbgExt插件与!vprotect命令一起使用,但它无法设置内存bp

如果我必须编写一个插件以允许内核模式下的内存 bp 它必须是驱动程序?

我已经阅读了Windows内部书籍中的一些章节,但它对我根本没有帮助。

我找不到太多如何开始处理它的信息

可以从内核模式对用户模式地址设置断点。您唯一应该注意的是使用".process/i"命令切换到正确的进程

如果它是一次性断点 - 也就是说,您满足于通过调试销毁进程 - 则使用 e 命令(编辑内存)将整个模块清零。将整个事情设置为 cc(据我所知,这是 int 3)......零也可以。一旦您触摸模块的任何代码,您就会中断。

下一步,记住您所在的位置(相对于模块)并设置适当的断点。

希望有帮助。

(编辑)你有完整的符号吗?如果你这样做了,你试过bm模块吗!

听起来

您想设置"访问断点",但不是指定地址,而是要指定范围?我从未见过它在windbg中完成。BA 断点使用 HW 调试寄存器,而不是像 SW 断点那样插入 INT,因此这绝对是特定于硬件平台的。我曾经使用硬件调试器在ARM芯片组上完成此操作。ARM 上的 ETM 允许您在地址范围上设置触发器。

最新更新