
05.05.2011, 15:31
|
Прохожий
|
|
Регистрация: 20.04.2011
Адрес: Киров
Сообщения: 35
Версия Delphi: 7 Enterprise
Репутация: 148
|
|
Сначала добавляем в uses модуль TlHelp32.
Код:
//Запись в процесс Project2.exe по адресу 00abcdef 4-байтовое целое число 42
const
ExeName = 'Project2.exe'; //Имя исполняемого файла процесса
var
hSnap, hProc: THandle;
ProcEtr: TProcessEntry32;
ProcAddr: Cardinal;
Data: Integer;
dummy: Cardinal;
FindProc: Boolean;
begin
hSnap:= CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
ProcEtr.dwSize:= SizeOf(ProcEtr);
Process32First(hSnap, ProcEtr);
//Ищем процесс с заданным именем
repeat
FindProc:= ProcEtr.szExeFile = ExeName;
if FindProc then
Break;
until not Process32Next(hSnap, ProcEtr);
if not FindProc then
Exit; //Не нашли процесс
ProcAddr:= $00abcdef; //Адрес в процессе
hProc:= OpenProcess(PROCESS_VM_OPERATION or PROCESS_VM_READ or PROCESS_VM_WRITE, False,
ProcEtr.th32ProcessID);
Data:= 42; //Данные, которые мы пишем в память
WriteProcessMemory(hProc, Ptr(ProcAddr), @Data, 4, dummy);
CloseHandle(hProc)
ProcAddr:= $00abcdef; //Адрес в процессе
hProc:= OpenProcess(PROCESS_VM_OPERATION or PROCESS_VM_READ or PROCESS_VM_WRITE, False,
ProcEtr.th32ProcessID);
Data:= 42; //Данные, которые мы пишем в память
WriteProcessMemory(hProc, Ptr(ProcAddr), @Data, 4, dummy);
CloseHandle(hProc);
end;
Последний раз редактировалось Raskolnikov, 05.05.2011 в 15:36.
|