C++ C++;用指针读取内存地址+;抵消

C++ C++;用指针读取内存地址+;抵消,c++,memory,process,C++,Memory,Process,我试图读取一个进程的地址,它应该是数字20。我确定此地址位于dll基偏移量+偏移量为10的数字处。我正在使用 ReadProcessMemory(phandle, (void*)address, &number, sizeof(number), 0); 读一个特定的地址。我的问题是如何正确搜索位于“57B86F68”+10偏移的地址 如果您的phandle是一个进程句柄,并且被授予进程\u VM\u读取权限,则可以从句柄读取数据: ReadProcessMemory(phandle,

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

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

读一个特定的地址。我的问题是如何正确搜索位于“57B86F68”+10偏移的地址

如果您的
phandle
是一个进程句柄,并且被授予进程\u VM\u读取权限,则可以从句柄读取数据:

ReadProcessMemory(phandle, (void*)(0x57B86F68 + 0x10), &number, sizeof(number), 0);
要获得进程句柄的正确访问权限,请检查您的
OpenProcess
标志,
process\u VM\u READ


如果它仍然不起作用,事情就会复杂得多。您应该翻译您的文件,然后通过直接访问内存。

请记住,除非禁用它,否则您可能需要处理ASLR。这有点令人困惑。您是在查找地址
0x57b86f68+10
,还是在查找存储在该位置的地址(或其他类型的值)?不管怎样,您都不需要搜索任何内容。@drescherjm,我确保通过代码获取基址,所以据我所知这不是一个问题。@molbdnilo很抱歉造成混淆,因此在某个位置有一个静态指针。我找到了这个位置,它指向一个地址,偏移量为10的地址是我想要读取的值。但我不确定我如何才能做到这一点。例如,我正在读地址a,它指向b。我不是在尝试获取b+10的值,有没有一种简单的方法可以做到这一点?@Jack在调用
ReadProcessMemory
call
GetLastError
后获取有关
ReadProcessMemory
失败原因的更多信息。检查您的
OpenProcess
标志,
PROCESS\u VM\u READ
也应该在那里。