Hallo Relicted.
1. Du hast das
Handle eines fremden Prozesses mit den Sourcen im angegebenen Link ermittelt.
2. Wie himitsu geschrieben hat, musst du in den fremden Prozess
Dies kannst du mit
Dll-Injection, einfacher aber mit CreateRemoteThread erreichen.
Zu beachten ist, dass die notwendigen Synchronization Object Security and
Access Rights vorhanden sind.
Siehe
MSDN Link.
Delphi-Quellcode:
function RemoteCloseHandle(PID, FileHandle, Timeout: DWORD): LongBool;
var
hProcess, hThread, TID: DWORD;
begin
Result := False;
hProcess := OpenProcess(PROCESS_ALL_ACCESS, False, PID);
if hProcess <> 0 then begin
try
hThread := CreateRemoteThread(hProcess, nil, 0,
GetProcAddress(GetModuleHandle('kernel32.dll'), 'CloseHandle'),
ptr(FileHandle), CREATE_SUSPENDED, TID);
if hThread <> 0 then begin
ResumeThread(hThread);
WaitForSingleObject(hThread, Timeout);
CloseHandle(hThread);
Result := True;
end;
finally
CloseHandle(hProcess);
end;
end;
end;
[
msdn]http://
msdn.microsoft.com/en-us/library/ms686670(VS.85).aspx[/
msdn]
lg. Astat