Не получается правильный адрес с указателем и смещением

Я новичок в C ++ и
Я пытаюсь получить значение здоровья игрока в CS: GO, но я столкнулся с некоторой проблемой. С CheatEngine я обнаружил, что база игрока равна «client_panorama.dll» + 0xCBD6B4, а смещение значения здоровья равно 0x100. Это прекрасно работает, но у меня есть проблемы с преобразованием этого в C ++.
Я использую DLL-инъекцию, но в моей внедренной DLL я не могу получить те же адреса, что и в CheatEngine.
Изображение CE: https://i.imgur.com/TlUwZV3.jpg

Я искал решение на нескольких форумах, но не смог его найти. Это моя попытка кода:

DWORD dwClientBase = (DWORD)GetModuleHandleA((LPCSTR)"client_panorama.dll");
DWORD dwClientBaseOffset = 0xCBD6B4;
DWORD dwOffset = 0x100;

DWORD dwplayerBase = *(DWORD *)(dwClientBase + dwClientBaseOffset);

Но с этой попыткой я не получаю тот же адрес PlayerBase, как в Cheatengine.

Backround: я не пытаюсь взломать, а научиться извлекать информацию из реальной игры. В будущем я хочу попробовать программировать AI для реальных игр, и поэтому очень полезно, если у вас есть больше информации, чем просто визуальный вывод игры.

Спасибо за помощь,
Varsius

-3

Решение

Ваш код правильный. Если ваш код выполняется правильно, тогда dwplayerBase будет равен адресу объекта проигрывателя.

Если вы хотите получить адрес здоровья, вам нужно будет добавить dwOffset. Я полагаю, что вы в замешательстве, потому что вы ожидали адрес здоровья. Чтобы получить его, просто добавьте эту строку:

DWORD healthAddr = dwplayerBase + dwOffset;
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector