![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Трейнеры [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;