我正在尝试读取一个应该是数字20的进程的地址。我确定这个地址位于dll基本偏移量+一个偏移量为10的数字。我正在使用
ReadProcessMemory(phandle, (void*)address, &number, sizeof(number), 0);
读取特定地址。我的问题是如何正确搜索位于" 57B86F68"的地址? + 10偏移量?
答案 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直接访问内存。