我想在内核模式调试器
中设置windbg访问时的内存断点我希望每次使用内核调试器命中usermode中的特定模块时,调试器都会中断。
但是我已经在某个地方读过它不可能设置它,为了制作一个内存断点我必须编写一个插件来实现它
我尝试使用带有!vprotect命令的SDbgExt插件,但无法设置内存bp
如果我必须编写一个插件以在内核模式下允许内存bp它必须是一个驱动程序?
我已经阅读了windows internals book中的一些章节,但它根本不能帮助我。
我无法找到太多关于如何开始处理它的信息
答案 0 :(得分:0)
您可以在内核模式下在用户模式地址上设置断点。你应该注意的唯一事情是用" .process / i"切换到正确的过程。命令
答案 1 :(得分:0)
如果它是一次性断点 - 也就是说,您对通过调试销毁进程感到满意 - 使用e命令(编辑内存)将整个模块清零。将整个事物设置为cc(据我记得是int 3)...零也可以。一旦触摸任何模块的代码,您就会中断。
下一步,记住你所处的位置(相对于模块)并设置一个合适的断点。
希望有所帮助。
(编辑)你有完整的符号吗?如果你这样做,你是否尝试过bm模块!*
答案 2 :(得分:0)
听起来您想要设置“访问断点”,而不是指定要指定范围的地址?我从未在windbg中看到它。 BA断点使用HW调试寄存器而不是像SW断点那样插入INT,因此这绝对是特定于HW平台的。 一旦使用HW调试器,我就在ARM芯片组上完成了这项工作。 ARM上的ETM允许您在地址范围上设置触发器。