我想用 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 没有 native 字符串类型)。因此,您的第二行采用指针值(number
的地址)并使用连字符的 ASCII 数值进行按位与运算(即,您采用地址 & 46
),这会给你一个无意义的地址,而不是做你想做的。
WriteProcessMemory
的第三个参数是一个地址,因此您需要一个变量来获取地址。用这两行替换第二行:
int negativeNumber = -number;
WriteProcessMemory(hProcess, (void*)(MYBASE + 0xA54), &negativeNumber, 4, NULL);
关于c++ - WriteProcessMemory 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9764281/