windbg:在dll + offset处设置数据断点

时间:2013-05-13 18:16:09

标签: windbg

我想在xul.dll + 0x7d760的值上设置数据写断点,希望使用命令脚本。

我可以使用lm打印xul.dll的基地址,并使用

手动设置断点

ba w (baseaddress + 0x7d760)

但我无法找到一种方法将xul.dll的基地址存储到伪寄存器中,以便我可以自动执行此操作。有没有办法以某种方式将lm xul的结果存储或解析为伪寄存器?

2 个答案:

答案 0 :(得分:4)

.foreach /pS 4 /ps 3 (modbase {lm p m xul}) {ba w 4 (${modbase} + 0x7d760)}

在此命令中,模块的基址将存储在${modbase}中。将xul替换为另一个模块,或编辑{ba w 4 (${modbase} + 0x7d760)}块以根据需要替换不同的命令或偏移量。

答案 1 :(得分:2)

模块名称减去后缀也可用于表示基址:

0:000> lm mole32
start             end                 module name
000007ff`344b0000 000007ff`3462e000   ole32      (deferred)             
0:000> ? ole32
Evaluate expression: 8792675385344 = 000007ff`344b0000
0:000> ? ole32 + 0x7d760
Evaluate expression: 8792675899232 = 000007ff`3452d760
0:000> ? 000007ff`3452d760 - ole32
Evaluate expression: 513888 = 00000000`0007d760