Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Трейнеры [Delphi, Windows]


Alecsey ©   (2005-03-16 21:48:00) 

Люди подскажыте как писать трейнеры для игрушек.


Игнатенков Станислав   (2005-03-17 09:37:00) [1]

через артмани находишь адреса памяти в которых лежат нужные данные (жизни, патроны), а потом юзаешь в дельфи функции

hwnd := FindWindow(nil,'Заголовок окна'); //вроде так :)
ADDRESS := собсвтвенно номер ячейки в памяти

function WriteMemory(Handle:HWND;address,value:integer):integer;
var
 RetVal,Pid,pHandle: DWORD;
begin
 GetWindowThreadProcessId(Handle,pid);
 pHandle := OpenProcess(PROCESS_ALL_ACCESS, False, pid);
 WriteProcessMemory(pHandle, ptr(address) , @value, 4,RetVal);
 result := RetVal;
end;

function WriteMemory2b(Handle:HWND;address,value:smallint):integer;
var
 RetVal,Pid,pHandle: DWORD;
begin
 GetWindowThreadProcessId(Handle,pid);
 pHandle := OpenProcess(PROCESS_ALL_ACCESS, False, pid);
 WriteProcessMemory(pHandle, ptr(address) , @value, 2,RetVal);
 showmessage(IntToStr(RetVal));
 result := RetVal;
end;

function ReadMemory(Handle:HWND;address:integer):integer;
var
 RetVal,Pid,pHandle: DWORD;
 e:integer;
begin
 GetWindowThreadProcessId(Handle,pid);
 pHandle := OpenProcess(PROCESS_ALL_ACCESS, False, pid);
 ReadProcessMemory(pHandle, ptr(address) , @e, 4,RetVal);
 result := e;
end;

function ReadMemory1b(Handle:HWND;address:integer):byte;
var
 RetVal,Pid,pHandle: DWORD;
 e:byte;
begin
 GetWindowThreadProcessId(Handle,pid);
 pHandle := OpenProcess(PROCESS_ALL_ACCESS, False, pid);
 ReadProcessMemory(pHandle, ptr(address) , @e, 1,RetVal);
 result := e;
end;

function ReadMemoryStr(Handle:HWND;address:integer):string;
var
 RetVal,Pid,pHandle: DWORD;
 e:string[255];
begin

 GetWindowThreadProcessId(Handle,pid);
 pHandle := OpenProcess(PROCESS_ALL_ACCESS, False, pid);
 ReadProcessMemory(pHandle, ptr(address) , @e, 255,RetVal);
 result := e[0]+Copy(e,0,pos(#0,e)-1);
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо