2013-05-13 85 views
4

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

我可以打印使用lm xul.dll的基址,并手动设置的断点与

ba w (baseaddress + 0x7d760)

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

回答

4

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

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

1

模块名称减去后缀也可以用于表达的基地址:

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 
相关问题