我开发了一个能够监视进程执行情况的Windows XP驱动程序。在NT驱动程序中拦截进程执行
回调函数使用标准的WDK API(PsSetCreateProcessNotifyRoutine)接收通知。
司机然后决定是否应授权过程;如果没有,它必须阻止它的执行/杀死它。
以这种方式拦截执行的最简洁的方法是什么?如果没有记录,我不介意,但如果可能的话,我宁愿不要求助于挂钩。
我开发了一个能够监视进程执行情况的Windows XP驱动程序。在NT驱动程序中拦截进程执行
回调函数使用标准的WDK API(PsSetCreateProcessNotifyRoutine)接收通知。
司机然后决定是否应授权过程;如果没有,它必须阻止它的执行/杀死它。
以这种方式拦截执行的最简洁的方法是什么?如果没有记录,我不介意,但如果可能的话,我宁愿不要求助于挂钩。
确定,根据该文件:
我需要安装一个微过滤器对IRP_MJ_ACQUIRE_FOR_SECTION_SYNCHRONIZATION和检查PageProtection == PAGE_EXECUTE。
PsSetCreateProcessNotifyRoutineEx(Vista +)将允许您通过将CreateInfo-> CreationStatus成员更改为NTSTATUS错误代码来导致进程创建操作失败。
Vista RTM不支持PsSetCreateProcessNotifyRoutineEx(升级到SP1) – unixman83 2011-09-18 16:57:14