Застрял в чтении смещения / указатель - PullRequest
0 голосов
/ 28 января 2012

Я читаю память такого процесса:

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]?

1 Ответ

0 голосов
/ 28 января 2012

Добавление смещения к содержимому указателя дает желаемый адрес:

Static   = 0x12BCAC8;
Offset_1 = 0x07F8;

ReadProcessMemory(hProcess,(void *) (Static + Offset_1), &value, 4, NULL);
...