WriteProcessMemory填写内存地址问题

来源:百度知道 编辑:UC知道 时间:2024/06/17 20:08:37
我要修改一个程序内存地址,用游戏修改器找到它们的地址,得出地址格式全部以0x开头,例如:0x0064C69C;
我用VB自已编一个内存修改器,用WriteProcessMemory的时候,把刚才搜到的址填入:
WriteProcessMemory Proc.th32ProcessID, 0x0064C69C, "2", 1, 0&
x1=WriteProcessMemory Proc.th32ProcessID, 02D5C2EE, "2", 1, 0&
以上都提示我语法错误,缺少语句结束,我觉得是我搜到的内存地址格式有问题,因为我在网上找WriteProcessMemory教程时,看到他们的内存地址格式都以&H开头.
问题1:我搜到的内存地址有问题吗(0x0064C69C)?
问题2:如果我搜到的内存地址有问题,怎样转换所需要的格式?

谢谢!

对,在VB里面十六进制(包括地址)必须用&H开头,你得出的0x0064C69C要转换为&H0064C69C或者去掉前面的零&H64C69C才行。嫌手动转换麻烦的话,可以用下面的代码来转换。其中s1是你得出的地址,s2是转换好的地址。
Dim s1 As String, s2 As String
s1 = "0x0064C69C"
s2 = Replace(s1, "0x", "&H")

VB里用&H64C69C
顺便说一下函数参数错误,应该改成
x1=WriteProcessMemory Proc.th32ProcessID, &H2D5C2EE, 2, 1, 0&
2是长整形,不能用引号

H0064C69C

vb里面的十六进制的表达应该是 以h开头吧