Einzelnen Beitrag anzeigen

Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
809 Beiträge
 
Delphi XE Professional
 
#5

Re: CreateProcess und uallHook.InjectLibrary

  Alt 29. Mär 2008, 01:33
Hi,

danke für deine Antwort
Also, es klappt nicht nur nicht mit uallHook, sondern auch mit einer anderen (einfacheren) Funktion. Es kommt aufs gleiche hinaus (Beep und Prozess ist weg), hier ist mal der Code:
Delphi-Quellcode:
function InjectIntoProcess(lpProcessID: Cardinal; lpDllname: String):Boolean;
var
  hProc: Cardinal;
  oAlloc: Pointer;
  cWPM: Cardinal;
  hRemThread: Cardinal;
begin
  result := false;
  SetLastError(ERROR_SUCCESS);
  hProc := OpenProcess(PROCESS_ALL_ACCESS, false, lpProcessID);
  oAlloc := VirtualAllocEx(hProc, 0, length(lpDllname), MEM_COMMIT, PAGE_EXECUTE_READWRITE);
  WriteProcessMemory(hProc, oAlloc, PChar(lpDllName), length(lpDllName), cWPM);
  CreateRemoteThread(hProc, nil, 0, GetProcAddress(GetModuleHandle('kernel32.dll'), 'LoadLibraryA'), oAlloc, 0, hRemThread);
  if GetLastError = ERROR_SUCCESS then
   result := true;
  CloseHandle(hProc);
end;
Der Code kommt von irgendwoher, ich schätze aber mal, dass der Code in Ordnung ist, weil das ganze sowohl mit dieser Funktion als auch mit uallHook funktioniert, wenn ich z.B. ein Sleep(500) zwischen CreateProcess() und die Inject-Funktion setze...

Eine andere Sache noch nebenbei: sndvol32 erstellt sein Fenster erst, wenn die MessageBox weggeklickt wurde. Sollte die MessageBox nicht sozusagen Zeitgleich mit dem Programmfenster erscheinen? Weil die doch in einem anderen Thread erstellt wird...?

Danke für Antworten und einen schönen Abend noch ...
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat