在内核调试时如何让用户模式断点在windbg中命中?

时间:2017-08-04 15:19:12

标签: debugging kernel windbg breakpoints usermode

当我进行内核调试时,我无法在windbg中获取用户模式断点。我知道我必须在目标进程的上下文中设置用户模式断点,但这似乎仍然无法可靠地工作。有时候它会起作用,但是我无法绕过变量是什么让它有时起作用而不是其他变量。这就是我在做的事情。

1) !process <process> 0x17, then find a thread that I am curious 
   about.  See that the thread is in mixed user/kernel callstack, 
   identify return address I want to break on.

2) .process /r /p <process>, to change to the target process context

3) .thread <thread>, to change to the thread identified in step (1)

4) bp <addr>, to break on that particular address I care about

5) g

有时断点会发生。有时候它没有(除非我有证据表明线程已经返回)。这使得调试真的令人沮丧,因为我从来不知道事情是否会奏效。谢谢你的帮助。

编辑:这不是关于特定于线程的断点,在我的例子中我只更改线程以获取一个callstack,因为callstack显示了我需要打破的地址。实际上,只要该地址被击中,我就想破解。

1 个答案:

答案 0 :(得分:0)

处于进程上下文有助于解密虚拟地址。

我不记得处于上下文保密程序或线程特定中断。

使用bp / p eprocess地址语法设置特定于进程的断点

虽然我没有使用我记得有线程特定的bps witj bp / t ethread地址参考文档