我想在xul.dll + 0x7d760的值上设置数据写断点,希望使用命令脚本。
我可以使用lm
打印xul.dll的基地址,并使用
ba w (baseaddress + 0x7d760)
但我无法找到一种方法将xul.dll的基地址存储到伪寄存器中,以便我可以自动执行此操作。有没有办法以某种方式将lm xul
的结果存储或解析为伪寄存器?
答案 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