Привет! У тебя для записи в память используется WinAPI-функция WriteProcessMemory, которая принимает в качестве аргументов адрес, размер и значение для записи. Соответственно, переменную adress, bytessize и массив байт bytes. Адрес при этом задан статический. Указатели по своей сути - это статический адрес + одно или несколько смещений от него, которые тоже хранят адрес, а самый последний - нужное значение. Для того, чтобы получить адрес, на который указывает некоторый указатель, нужно знать статический адрес этого указателя и смещения, а потом просто прочитать его, используя арифметику. Для чтения понадобится функция ReadProcessMemory, читать нужно будет, скорее всего, 4 байта. Тут я просто думаю, что игра 32-битная, а в 32-битном адресном пространстве адреса как раз по 4 байта каждый. Допустим, есть у тебя какой-то такой указатель: [[[0x1234567] + 0x10] + 0x20] Что тебе нужно сделать? А вот так вот: 0. Прочитать значение по адресу 0x1234567 (статический адрес). 1. Прибавить к полученному 0x10 (первое смещение). 2. Прочитать значение по полученному адресу. 3. Прибавить к полученному 0x20 (второе смещение). 4. Прочитать значение по полученному адресу. После 4-го шага в данном примере в переменной для чтения как раз и будет адрес, который дальше можно будет использовать для записи в память. PS: У меня в блоге даже нашлась [запись] на эту тему.