カーネル ドライバーを使用しない Win32 プロセスの作成/終了の検出
PsSetCreateProcessNotifyRoutine のような API を使用してカーネル モード ドライバーを実装する際、プロセス アクティビティを監視する場合、ドライバー開発に頼らずに C で Win32 API 関数を使用してこの機能を実現することもできます。
Win32 API 関数
Win32 API には 2 つの機能があります。カーネル ドライバーを使用せずに Win32 プロセスの作成と終了を検出するための主なアプローチ:
RegisterWaitForSingleObject を使用したコード例:
VOID CALLBACK WaitOrTimerCallback( _In_ PVOID lpParameter, _In_ BOOLEAN TimerOrWaitFired ) { MessageBox(0, L"The process has exited.", L"INFO", MB_OK); return; } DWORD dwProcessID = 1234; HANDLE hProcHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwProcessID); HANDLE hNewHandle; RegisterWaitForSingleObject(&hNewHandle, hProcHandle , WaitOrTimerCallback, NULL, INFINITE, WT_EXECUTEONLYONCE);
この例では、ターゲット プロセスの終了時に WaitOrTimerCallback が呼び出されます。
追加の考慮事項
カーネル ドライバーを使用せずにプロセス監視を実装する場合の追加の考慮事項は次のとおりです。
以上がカーネルドライバーを使用せずに Win32 プロセスの作成/終了を検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。