Показать сообщение отдельно

  #4932  
Старый 18.11.2009, 15:53
ZET36
Участник форума
Регистрация: 08.10.2007
Сообщений: 259
С нами: 9785147

Репутация: 137
По умолчанию

Цитата:
Так что советую почитать тебе на васме про инжект DLL в процесс.
Нашёл вот на сорцах ру
http://forum.sources.ru/index.php?showtopic=282574

Код:
function InjectLibrary(Process: LongWord; DLLPath: PChar): Boolean;
var
  Parameters: Pointer;
  BytesWritten, Thread, ThreadID: dword;
begin
  Result := False;
  Parameters := VirtualAllocEx(Process, nil, 4096, MEM_COMMIT, PAGE_READWRITE);
  if Parameters = nil then
    Exit;
  WriteProcessMemory(Process, Parameters, Pointer(DLLPath), 4096, BytesWritten);
  Thread := CreateRemoteThread(Process, nil, 0, GetProcAddress(GetModuleHandle('KERNEL32.DLL'), 'LoadLibraryA'), Parameters, 0, ThreadId);
  WaitForSingleObject(Thread, 3000);
  VirtualFreeEx(Process, Parameters, 0, MEM_RELEASE);
  if Thread = 0 then
    Exit;
  CloseHandle(Thread);
  Result := True;
end;
Только вот не понимаю как должна выглядеть переменная процесса (Process: LongWord), как её получить? Вроде ProcessID это Dword

Последний раз редактировалось ZET36; 18.11.2009 в 16:04..
 
Ответить с цитированием