Python 将地址转换为PyKD可以使用的数字/等效于WinDbg?命令

Python 将地址转换为PyKD可以使用的数字/等效于WinDbg?命令,python,windbg,pykd,Python,Windbg,Pykd,在WinDbg中,我有几个选项来定义一个数字 0:006> ? 17 Evaluate expression: 23 = 00000017 0:006> ? 0x17 Evaluate expression: 23 = 00000017 0:006> ? 0n23 Evaluate expression: 23 = 00000017 0:006> ? ntdll Evaluate expression: 2004549632 = 777b0000 0:006> ?

在WinDbg中,我有几个选项来定义一个数字

0:006> ? 17
Evaluate expression: 23 = 00000017
0:006> ? 0x17
Evaluate expression: 23 = 00000017
0:006> ? 0n23
Evaluate expression: 23 = 00000017
0:006> ? ntdll
Evaluate expression: 2004549632 = 777b0000
0:006> ? ntdll+100
Evaluate expression: 2004549888 = 777b0100
0:006> ? ntdll!NtCreateThreadEx
Evaluate expression: 2005018944 = 77822940
0:006> ? 0t755
Evaluate expression: 493 = 000001ed
0:006> ? 0y1111
Evaluate expression: 15 = 0000000f
我正在寻找PyKD等价物,以使用所有这些可能性作为脚本的输入

也就是说:我在sys.argv[1]中得到一个字符串,它可以是上述任何一种格式,我需要将其转换为PyKD可以理解的地址

我试过:

from pykd import *
address = addr64(sys.argv[1])
PyKd命令是

expr((str)表达式[,(bool)cplusplus])->对象:

计算windbg表达式

这个命令甚至会考虑在WEBBG中使用<代码> N< /代码>命令设置的号码库。

要模拟WinDbg的
行为,可以使用

print("Evaluate expression:", expr(sys.argv[1]), "=", hex(expr(sys.argv[1])), sep=" ")