在 !eb windbg 命令中使用 $t0 值写入物理内存

Using $t0 value in !eb windbg command to write physical memory

我正在编写一个 WinDbg 脚本来写入一些物理内存,运行使用 !ed 命令在内核调试模式下将其写入。

!ed 在我 运行 手动使用给定值时工作正常,例如!ed 9182f084 8

我现在想 运行 在脚本中执行此操作,其中要写入的值来自伪寄存器。但以下不起作用:

r $t0=8
!ed 9182f084 @$t0

我不太明白在这种情况下它写的是什么值,但它显然不是我希望的整数值 8。

感谢任何提示!

也不适合我。看起来 !ed 命令错误地解析了参数。您可以指定一些完全无效的内容,它只是默默地忽略该命令。例如,我什至没有收到错误:

kd> !ed 4318b20 XYZ

除了编写您自己的 !ed 版本之外,我认为绕过它的唯一方法是使用别名:

kd> r @$t0 = 8
kd> as /x ${/v:t0Val} @$t0
kd> !ed 4318b20 ${t0Val}
kd> !dd 4318b20 L1
# 4318b20 00000008

指定“8”的方式非常荒谬,但如果您尝试将其放入脚本中,它会起作用。