繁体   English   中英

WriteProcessMemory无法正常工作

[英]WriteProcessMemory won't work

我想使用int WriteProcessMemory ,然后再次将int设置为负数。 我知道如何在VB.NET中执行此操作; 我尝试了相同的方法,但是在C ++中,它将无法正常工作。

 WriteProcessMemory(hProcess, (void*)(MYBASE + 0x6F4), &number, 4, NULL);
 WriteProcessMemory(hProcess, (void*)(MYBASE + 0xA54), "-" & &number, 4, NULL);

您的"-" & &number没有执行您似乎认为的操作。 在C中, &二进制运算符表示按位与,而不是字符串连接(C没有本机字符串类型)。 因此,第二行使用指针值( number地址),并使用连字符的ASCII数值按位与(即,使用address & 46 ),这将给您一个无意义的地址,而不是你想要什么。

WriteProcessMemory第三个参数是地址,因此您需要一个变量来获取地址。 用这两行替换第二行:

int negativeNumber = -number;
WriteProcessMemory(hProcess, (void*)(MYBASE + 0xA54), &negativeNumber, 4, NULL);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM