使用 Windows MiniFilter 驱动程序拦截进程访问
Intercept Process Access using a Windows MiniFilter Driver
我正在开发一个安全应用程序,它应该监控任何进程 activity。
由于 MiniFilter sample provided by Microsoft on GitHub.
,我通过安装 MiniFilter 驱动程序成功拦截了文件访问
但是,我没有找到任何关于如何使用 Minifilter 拦截 process creation/termination 的文档。
我想拦截任何父进程(可以使用 CreateProcess、ShellExecute 等函数)创建的新进程。
我还想拦截进程终止信号(由 TerminateProcess 等 API 发送)以避免我的安全程序进程被潜在的恶意软件杀死。
目前,我在我的 minifilter 驱动程序中设置了一个回调函数,它成功拦截了文件 I/O 操作,如 Microsoft 示例所示:
FLT_POSTOP_CALLBACK_STATUS ScannerPostCreate (
_Inout_ PFLT_CALLBACK_DATA CallbackData,
_In_ PCFLT_RELATED_OBJECTS FltObjects,
_In_opt_ PVOID CompletionContext,
_In_ FLT_POST_OPERATION_FLAGS Flags
)
我的问题是,我可以使用相同的回调函数来拦截进程访问吗?
或者,我需要设置不同的回调函数,还是使用完全不同的方法?
因为 minifilter 是一个内核模块,你可以使用任何由 kernel/HAL 或其他内核模块导出的例程。例如,PsSetCreateProcessNotifyRoutine。
我正在开发一个安全应用程序,它应该监控任何进程 activity。
由于 MiniFilter sample provided by Microsoft on GitHub.
,我通过安装 MiniFilter 驱动程序成功拦截了文件访问但是,我没有找到任何关于如何使用 Minifilter 拦截 process creation/termination 的文档。
我想拦截任何父进程(可以使用 CreateProcess、ShellExecute 等函数)创建的新进程。
我还想拦截进程终止信号(由 TerminateProcess 等 API 发送)以避免我的安全程序进程被潜在的恶意软件杀死。
目前,我在我的 minifilter 驱动程序中设置了一个回调函数,它成功拦截了文件 I/O 操作,如 Microsoft 示例所示:
FLT_POSTOP_CALLBACK_STATUS ScannerPostCreate (
_Inout_ PFLT_CALLBACK_DATA CallbackData,
_In_ PCFLT_RELATED_OBJECTS FltObjects,
_In_opt_ PVOID CompletionContext,
_In_ FLT_POST_OPERATION_FLAGS Flags
)
我的问题是,我可以使用相同的回调函数来拦截进程访问吗? 或者,我需要设置不同的回调函数,还是使用完全不同的方法?
因为 minifilter 是一个内核模块,你可以使用任何由 kernel/HAL 或其他内核模块导出的例程。例如,PsSetCreateProcessNotifyRoutine。