忽略 Windbg 条件断点中的某些位置



我正在尝试使用以下语法在 Windbg 中的 Windows 内核模式下设置条件硬件断点:

ba w1 ffff802312345678 "j(@rip==ffff802387654321 || @rip==ffff802387654330) 'gc';''"

我使用上面的命令是为了忽略从ffff802387654321ffff802387654330对我的目标位置(ffff802312345678(的每次访问,所以每次从其他地方访问时,我都会收到通知。

但问题是,它仍然在其他位置ffff802387654321ffff802387654330中断。

我还阅读了有关">条件断点和寄存器符号扩展"的官方文档,并测试了类似以下内容:

ba w1 ffff802312345678 "j((@rip & 0xffffffffffffffff)=ffff802387654321 || (@rip & 0xffffffffffffffff)=ffff802387654330) 'gc';''"

但它仍然行不通。

所以我的问题是:

  • 上面的命令有什么问题,我怎样才能达到所需的目标 结果?

没有||MASM 运算符。这是or.

ba w1 ffff802312345678 "j(@rip==ffff802387654321 or @rip==ffff802387654330) 'gc';''"

我没有复制您的确切情况,而是一个更简单的例子:

0:000> r rip
rip=0000000076db6fb0
0:000> j (@rip==0000000076db6fb0 || @rip==0) '.echo 5';'.echo 6"
Numeric expression missing from '| @rip==0) '.echo 5';'.echo 6"'
0:000> j (@rip==0000000076db6fb0 or @rip==0) '.echo 5';'.echo 6"
5

最新更新