3

我为 Windows XP 开发了一个驱动程序,它能够监视进程的执行。

回调函数使用标准 WDK API (PsSetCreateProcessNotifyRoutine) 接收通知。

然后,驱动程序决定是否应该授权该过程;如果没有,它必须阻止它的执行/杀死它。

以这种方式拦截执行的最干净的方法是什么?我不介意它是否没有记录,但如果可能的话,我宁愿不使用挂钩。

4

2 回答 2

1

PsSetCreateProcessNotifyRoutineEx (Vista+) 将允许您通过将 CreateInfo->CreationStatus 成员更改为 NTSTATUS 错误代码来导致进程创建操作失败。

于 2010-07-23T06:14:43.533 回答
1

好的,根据这个文件:

http://download.microsoft.com/download/4/4/b/44bb7147-f058-4002-9ab2-ed22870e3fe9/Kernal%20Data%20and%20Filtering%20Support%20for%20Windows%20Server%202008.doc

我需要为 IRP_MJ_ACQUIRE_FOR_SECTION_SYNCHRONIZATION 安装一个微过滤器并检查 PageProtection == PAGE_EXECUTE。

于 2010-06-21T16:23:58.110 回答