C ++使用指针+偏移量读取内存地址

时间:2016-08-24 00:56:00

标签: c++ memory process

我正在尝试读取一个应该是数字20的进程的地址。我确定这个地址位于dll基本偏移量+一个偏移量为10的数字。我正在使用

ReadProcessMemory(phandle, (void*)address, &number, sizeof(number), 0);

读取特定地址。我的问题是如何正确搜索位于" 57B86F68"的地址? + 10偏移量?

1 个答案:

答案 0 :(得分:2)

如果phandle是具有PROCESS_VM_READ访问权限的进程句柄,则可以从句柄中读取数据:

ReadProcessMemory(phandle, (void*)(0x57B86F68 + 0x10), &number, sizeof(number), 0);

要获得流程句柄的正确访问权限,请检查OpenProcess标记,PROCESS_VM_READ应该在那里。

如果仍然没有工作,事情会复杂得多。您应该翻译virtual address to physical address,然后通过kernel mode直接访问内存。