我最近在写入处理C++内存时遇到了一个非常恼人的问题......我无法写入处理具有多个偏移量的内存!即使有成千上万的页面解释了你如何解决这个问题,它似乎仍然不适合我。我一整天都在搜索谷歌,并且发现了很多如何解决这个问题的例子,但它似乎仍然不适合我。具有多个偏移量的WriteProcessMemory C++
所以,让我先解释一下自己如何编写处理内存,然后你就可以纠正它。
让我们说我有一个基本地址:0x04AF3C94
首先偏移为:为0x1C
第二偏移为:0x20的
三为:0x568
;第四为:量0x134
我怎么这样做自己:
DWORD offset1 = 0x1C;
DWORD offset2 = 0x20;
DWORD offset3 = 0x568;
DWORD offset4 = 0x134;
DWORD base = 0x04AF3C94;
DWORD pointer;
DWORD pointer2;
DWORD pointer3;
DWORD pointer4;
DWORD pointer5;
ReadProcessMemory(handle, LPVOID(base), &pointer, sizeof(pointer), 0);
ReadProcessMemory(handle, LPVOID(pointer + offset1), &pointer2, sizeof(pointer2), 0);
ReadProcessMemory(handle, LPVOID(pointer2 + offset2), &pointer3, sizeof(pointer3), 0);
ReadProcessMemory(handle, LPVOID(pointer3 + offset3), &pointer4, sizeof(pointer4), 0);
ReadProcessMemory(handle, LPVOID(pointer4 + offset4), &pointer5, sizeof(pointer4), 0);
int value = 500;
WriteProcessMemory(handle, LPVOID(pointer5), &value, sizeof(value), 0);
正如你所看到的,如果我有4个偏移量,例如在这个例子中,我将每个偏移量一次一个添加到基地址,直到我有一个值存储每个偏移量添加到基地址。 这显然不工作,我该怎么办!?
_This显然不工作 - 什么*确切*不起作用,你在阅读,写作或宇宙突然自我重启时遇到崩溃? – zett42
那么,如果我有例如我的价值我想改变,它不会改变...程序不会崩溃或任何东西,但是我试图改变的值根本不受影响。 –