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
...