Advertisement
Guest User

InjectDll

a guest
Jan 13th, 2013
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 0.80 KB | None | 0 0
  1. procedure InjectDll(ProcessId : DWord; DllName : pAnsiChar);
  2. var
  3.   hProcess, hThread, BytesWritten, ThreadId : Cardinal;
  4.   RemoteString, RemoteThread : Pointer;
  5. begin
  6.   hProcess := OpenProcess(PROCESS_ALL_ACCESS,  false,  ProcessId);
  7.  
  8.   RemoteString := VirtualAllocEx(hProcess, nil, StrLen(DllName) + 1, MEM_COMMIT or MEM_RESERVE, PAGE_READWRITE);
  9.  
  10.   WriteProcessMemory(hProcess, RemoteString, Pointer(DllName), StrLen(DllName) + 1, BytesWritten);
  11.  
  12.   RemoteThread := GetProcAddress(GetModuleHandle('kernel32.dll'), 'LoadLibraryA');
  13.  
  14.   hThread := CreateRemoteThread(hProcess, nil, 0, RemoteThread, RemoteString, 0, ThreadId);
  15.  
  16.   WaitForSingleObject(hThread, INFINITE);
  17.  
  18.   CloseHandle(hThread);
  19.  
  20.   VirtualFreeEx(hProcess, RemoteString, StrLen(DllName) + 1, MEM_RELEASE);
  21.  
  22.   CloseHandle(hProcess);
  23. end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement