C++内存地址和偏移写/读
C++ memory address and offset writing / read
你好抱歉我的英语不好。
我想计算一个带偏移量的地址。
示例我有一个基地址: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);
但是不行。
记忆没有改变。我的错误是什么?
根据 msdn,ReadProcessMemory returns 一个 BOOL,您将其用作 WriteProcessMemory 的地址 2。怎么改内存?
建议从 msdn 搜索 ReadProcessMemory 和 WriteProcessMemory 及其示例,并学习如何使用这两个函数。
认为您有一个简单的错字 -- 尝试;
//Write Memory
WriteProcessMemory(phandle,(void*)base,&value,(DWORD)sizeof(value),NULL);
你好抱歉我的英语不好。 我想计算一个带偏移量的地址。
示例我有一个基地址: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);
但是不行。 记忆没有改变。我的错误是什么?
根据 msdn,ReadProcessMemory returns 一个 BOOL,您将其用作 WriteProcessMemory 的地址 2。怎么改内存?
建议从 msdn 搜索 ReadProcessMemory 和 WriteProcessMemory 及其示例,并学习如何使用这两个函数。
认为您有一个简单的错字 -- 尝试;
//Write Memory
WriteProcessMemory(phandle,(void*)base,&value,(DWORD)sizeof(value),NULL);