当需要整数类型以外时,使用整数类型的伪寄存器

时间:2011-06-27 18:55:41

标签: debugging windbg

在我的Windbg脚本中,我定义了一个存储整数的pesudo寄存器。接下来,从我的脚本调用.writemem。 .writemem的第一个参数采用文件名。我希望文件名是伪寄存器的值。

这是我的Windbg脚本的简化版本不起作用(因为伪寄存器是整数,.writemem的第一个参数需要不同于整数的类型)。

r $ t0 = 0;

以下的$$代码序列可能会更改$ t0的值

.writemem $ t0 eip L100

2 个答案:

答案 0 :(得分:1)

您可以使用伪寄存器的值创建别名字符串并使用它。例如:

0: kd> r @$t0 = 5+5
0: kd> aS /x ${/v:fileName} @$t0
0: kd> .writemem ${fileName}.txt @eip L100
Writing 100 bytes.

将创建一个名为“0xa.txt”的文件。

-Scott

答案 1 :(得分:0)

伪寄存器可与r?一起使用,允许将类型分配给寄存器。

以下是将字符串分配给寄存器

的示例

r? @$t0 = (_UNICODE_STRING*) 0x0139df70+0x8

以下是使用此内容的write up