【发布时间】:2017-04-20 20:48:13
【问题描述】:
现在,我知道以前可能有人问过类似的问题,相信我,在过去的几天里,我一直在互联网上寻找一个已经回答的情况,但是我仍然无法得到这个工作,老实说,不知道为什么它不工作。我试图做的是在游戏中获得弹药价值。 readMemory 是一个 int,应该包含这个值,但它只是输出 0。
ReadProcessMemory(handle, (PBYTE*)(base_adr), &pAddress1, sizeof(pAddress1), 0);
ReadProcessMemory(handle, (PBYTE*)(pAddress1 + offset_1), &pAddress2, sizeof(pAddress2), 0);
ReadProcessMemory(handle, (PBYTE*)(pAddress2 + offset_2), &pAddress3, sizeof(pAddress3), 0);
ReadProcessMemory(handle, (PBYTE*)(pAddress3 + offset_3), &pAddress4, sizeof(pAddress4), 0);
ReadProcessMemory(handle, (PBYTE*)(pAddress4 + offset_4), &pAddress5, sizeof(pAddress5), 0);
while (1)
{
ReadProcessMemory(handle, (PBYTE*)(pAddress5 + offset_5), &readMemory, sizeof(readMemory), 0);
cout << readMemory << endl;
}
显然,这不是添加指针的有效方式(我猜这也不是一种有效的方式),我正在寻找可以为我指明正确方向的人。谢谢,再次为(很可能在您看来)一个基本问题感到抱歉。
DWORD base_adr = 0xCC8408;
const DWORD offset_1 = 0x23C;
const DWORD offset_2 = 0x7A4;
const DWORD offset_3 = 0x34C;
const DWORD offset_4 = 0x5B0;
const DWORD offset_5 = 0x2D8;
DWORD pAddress1;
DWORD pAddress2;
DWORD pAddress3;
DWORD pAddress4;
DWORD pAddress5;
【问题讨论】:
-
什么不起作用?
-
@RbMm 好吧,我正在尝试获取游戏中的弹药值,但是 'readMemory' (int) 输出为 0。将进行编辑以向大家澄清,抱歉。
-
@4Dimensions 建议设置一个包含简单数据结构的简单程序,以用作您的测试虚拟对象。当您可以读取和修改测试假人的内存时,就开始尝试操作“真实”程序。
-
如果 api 失败 - 调用 GetLastError 以获取更多信息为什么。但更快的是你使用错误的地址
-
如果您向我们展示
pAddress1、pAddress2等的声明,将会有所帮助。向指针添加值需要知道您要添加的指针是什么。跨度>