[C ++内存地址和偏移量写入/读取

问题描述 投票:0回答:2

你好,我英语不好。我想计算一个偏移量的地址。

该示例我有一个基本地址:0x00D2038,偏移量为0x1c

我已经尝试过了。

DWORD address = 0x004D2038;
DWORD offset = 0x1c;

DWORD base = (DWORD)(address + offset);
int old_value = 0;
int value = 3000;

//Obtain new address form the address whit offset.
DWORD addr2 =  ReadProcessMemory(phandle,(void*)base,&old_value,sizeof(old_value),0);

//Write Memory
WriteProcessMemory(phandle,(void*)addr2,&value,(DWORD)sizeof(value),NULL);

但是它不起作用。内存未更改。我的错误是什么?

c++ memory offset
2个回答
1
投票

认为您有一个简单的错字-尝试;

//Write Memory
WriteProcessMemory(phandle,(void*)base,&value,(DWORD)sizeof(value),NULL);

3
投票

根据msdn,ReadProcessMemory返回一个BOOL,您可以将其用作WriteProcessMemory的addr2。如何更改内存?

建议从msdn上读取ReadProcessMemory和WriteProcessMemory及其示例,并学习如何使用这两个功能。

© www.soinside.com 2019 - 2024. All rights reserved.