c - 使用 Windows MiniFilter 驱动程序拦截进程访问
问题描述
我正在开发一个安全应用程序,它应该监视任何进程的活动。
感谢微软在 GitHub 上提供的 MiniFilter 示例,我通过安装 MiniFilter 驱动程序成功地拦截了文件访问。
但是,我没有找到任何有关如何使用 Minifilter 拦截进程创建/终止的文档。
我想拦截任何父进程(可以使用 CreateProcess、ShellExecute 等函数)创建的新进程。
我还想拦截进程终止信号(由TerminateProcess等 API 发送),以避免我的安全程序进程被潜在的恶意软件杀死。
目前我在我的微过滤驱动程序中设置了一个回调函数,它成功拦截了文件 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
)
我的问题是,我可以使用相同的回调函数来拦截进程访问吗?或者,我需要设置不同的回调函数,还是使用完全不同的方法?
解决方案
由于微过滤器是内核模块,您可以使用内核/HAL 或其他内核模块导出的任何例程。例如,PsSetCreateProcessNotifyRoutine。
推荐阅读
- ios - Ionic 1/Cordova 6.2.0“无法加载网页并出现错误:不支持的 URL”错误
- javascript - Shopware 管理模块在管理后未显示:build
- javascript - 将 webpack 作为子进程运行以生成源文件
- authorization - 使用 Cloud Foundry UAA 的弹簧安全反应“无效凭据”错误
- office-js - 仅在选定的表格单元格中获取段落项目
- node.js - 如何在 Azure Api 的 nodejs 中使用 recyclesignalenabled
- react-native - 如何从 React Native 中的三个同时发生的事件中接收一个回调?
- javascript - javascript中有没有类似python的`with`语句的东西?
- java - 如何将数据字段插入数据库中的表?
- c# - 有没有办法使用连接工厂设置实体框架核心 DbContext?