library Hook; uses Windows, AdvApiHook, NativeAPI; var TrueZwTerminateProcess:Function (ProcessHandle:dword; ExitStatus:dword):NTStatus;stdcall; // function NewZwTerminateProcess (ProcessHandle:dword; ExitStatus:dword):NTStatus;stdcall; var pid: DWORD; MyHandle: DWORD; begin pid:=GetProcessId('Explorer.EXE'); //так для примера :) MyHandle:=OpenProcess(PROCESS_ALL_ACCESS, false,pid); if MyHandle = ProcessHandle then MessageBox(0, 'Нашёлся :)', 'Проверка', MB_ICONINFORMATION or MB_OK) else TrueZwTerminateProcess(ProcessHandle, ExitStatus); end; procedure LibraryProc (Reason : integer); begin case Reason of DLL_PROCESS_ATTACH : //событие присоединения к процессу begin //ставим хук HookProc('ntdll.dll', 'ZwTerminateProcess', @NewZwTerminateProcess, @TrueZwTerminateProcess); end; DLL_PROCESS_DETACH : //Отсоединение от процесса // снимаем хук begin UnhookCode(@TrueZwTerminateProcess); end; end; end; begin DllProc := LibraryProc; DllProc (DLL_PROCESS_ATTACH); end.