【发布时间】:2012-01-28 13:49:41
【问题描述】:
我正在读取这样一个进程的内存:
int MEM_BATTLESPEED_ADDR = 0x12EC900; // <- this is a static address
int MEM_battleSpeed;
if (ReadProcessMemory(hProcess,(void *) MEM_BATTLESPEED_ADDR, &MEM_battleSpeed, 4, NULL))
{
cout << "MEM_battleSpeed: " << MEM_battleSpeed << "\r\n";
}
地址是静态的,所以当我重新启动应用程序时它永远不会改变。我可以毫无问题地阅读这个。没关系。
我的问题是,有些地址不是静态的。我知道偏移量和指针,但我不知道如何阅读以下内容:
[Info]
$Static = 0x12BCAC8
$Offset_1 = 0x07F8
$Offset_2 = 0x000C
$Offset_3 = 0x0284
如何读取 [Info] 值?
【问题讨论】:
-
偏移量是从 $Static 开始的吗?
-
是的,它们是 4 个字节。此外,它们在 C.E 中看起来像这样:i.imgur.com/hSs6K.png
-
“它们是 4 个字节”是什么意思?偏移量远大于此。你的意思是$Offset_1、$Offset_2和$Offset_3的值应该被解释为内存地址$Static的偏移量,是4字节的倍数?
标签: c++ memory pointers process offset