c++内存地址和偏移量写/读

C++ memory address and offset writing / read

本文关键字:偏移量 内存 地址 c++      更新时间:2023-10-16

你好,很抱歉我的英语不好。我想计算一个带有偏移量的地址

示例我有一个基址: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返回一个BOOL值,您将其用作WriteProcessMemory的addr2。怎样才能改变记忆呢?

建议从msdn上搜索ReadProcessMemory和WriteProcessMemory及其示例,并学习如何使用这两个函数

认为你有一个简单的打字错误——Try;

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