【发布时间】:2014-12-21 14:24:12
【问题描述】:
首先,我想做的是改变游戏记忆中的一个值。 为了写入该变量,我需要添加以下指针和偏移量,因为这样我总是会得到一个有效的地址:
baseAddr + offset1 + offset2 + offset3 = myDesiredAddr
现在,这就是我试图做的......
ReadProcessMemory(
hProc, (LPVOID)(BaseAddr + offset1), &myDesiredAddr, sizeof(myDesiredAddr), 0
);
ReadProcessMemory(
hProc, (LPVOID)(myDesiredAddr + offset2), &myDesiredAddr, sizeof(myDesiredAddr), 0
);
ReadProcessMemory(
hProc, (LPVOID)(myDesiredAddr + offset3), &myDesiredAddr, sizeof(myDesiredAddr), 0
);
我已经厌倦了在我得到的最终地址上写入进程内存,但它没有成功读取和写入。任何建议都会有所帮助。
【问题讨论】:
-
ReadProcessMemory提供返回值和获取读取数据量的方法,您可以忽略这两者。添加一些错误检查。 -
不,我会检查它是否成功。这只是一个简单的例子。
-
如果您不发布真实代码,很难给出阅读答案。如果您遇到错误,那是什么?非常重要的信息。
-
我想知道在添加偏移量时我是否走在正确的方向,或者它是否做错了......
-
我猜想最终地址 (
myDesiredAddr + offset3) 不是hProc中的有效地址。在我看来,您正试图将指向/指向该进程对象的指针跟踪到最终内存位置。我怀疑这是否可行,因为在您阅读时其他进程的内存可能会发生变化,从而导致您的最终地址无效。
标签: c++ pointers memory offset