Прочитал темку (
http://coderx.ru/showthread.php?t=4868) решил написать аналог АЦП (существующие не работают, т.к. на сервере защита)
Сделал всё получил следующий код:
Код:
var
bufferaddress : pointer;
HP_Max,temppointer: integer;
tempBuffer: array [0..3] of byte;
temp: byte;
car:Cardinal;
ipbuf,PID,hProcess,BytesCount:dword;
begin
car:=0;
showmessage(IntToStr(pHandle));
ReadProcessMemory(pHandle, ptr($7D1C0090), @tempBuffer, 4,car);
temppointer:=PInteger(@tempBuffer[0])^;
ReadProcessMemory(pHandle, ptr(temppointer+$55C), @tempBuffer, 4,car);
temppointer:=PInteger(@tempBuffer[0])^;
ReadProcessMemory(pHandle, ptr(temppointer+$98), @tempBuffer, 4,car);
temppointer:=PInteger(@tempBuffer[0])^;
ReadProcessMemory(pHandle, ptr(temppointer+$64), @tempBuffer, 4,car);
temppointer:=PInteger(@tempBuffer[0])^;
ReadProcessMemory(pHandle, ptr(temppointer+$34), @tempBuffer, 4,car);
temppointer:=PInteger(@tempBuffer[0])^;
ReadProcessMemory(pHandle, ptr(temppointer+$228), @tempBuffer, 4,car);
temppointer:=PInteger(@tempBuffer[0])^;
HP_Max:= temppointer + $22C;
MainForm.Label1.Caption:=IntToStr(HP_Max);
Который упорно не хочет правильно работать.
Пробовал в качестве начального адреса брать $1BFC268 (3D0000 Engine.dll + $0182C268) - не помогло.
Cheat Engine нормально читает и редактирует память (т.е. если даже и есть защита в клиенте то она обходиться, клиент Евро офф Gracia Final)
кто может подсказать в чём ошибка?
Запускаю клиент через свою прогу, чтоб не мучатся с поиском процесса. (к примеру заголовок окна легко меняю).
Кто может подсказать в чём ошибка?