如何将十六进制数传递到WinDBG命令中?

2024-07-01 07:48:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我对十六进制和Windows调试器命令很陌生。我试图编写一个python脚本,在其中调用'.writemem函数,提供文件名、起始地址和要写入的字节数。以下是我目前所掌握的情况:

cmdstr = ".writemem " + filename + " " + startAddress + " L" + size
dbgCommand(cmdstr)

其中beginAddress是十六进制形式的起始地址字符串,size也是十六进制字符串。单独的'L'表示我不想指定地址范围,而是指定开始和大小。在

我发现的几个运行这个命令的例子都忽略了两个字符串开头的“0x”,我想知道是否需要这样做。我有点害怕运行它看看,因为writemem是一个很危险的函数。你知道如何格式化这个十六进制吗?在


Tags: 函数字符串命令脚本size文件名windows地址
2条回答

默认情况下,WinDbg将数字视为十六进制,因此0x前缀是可选的。但是,我希望更明确一些,只保留0x前缀。在

您可以使用?命令来尝试:

0:003> ? f
Evaluate expression: 15 = 00000000`0000000f
0:003> ? 0xf
Evaluate expression: 15 = 00000000`0000000f

如果要使用十进制值,可以使用0n前缀:

^{pr2}$

作为旁注:注意the range limit,并对大于512kb的区域使用L?语法。在

请参见hex函数。将int转换为十六进制。在

相关问题 更多 >

    热门问题