拒绝进程启动

 首先设置进程启回调,PsSetCreateProcessNotifyRoutine,在回调函数里发现没有什么返回值可以阻止进程启动,只好换一种思路,反正PID是有的,打开以后Terminate就可以了。但是打开不是那么容易的,因为回调是运行在启动进程的父进程环境中,如果该进程没有Debug权限,那么。。。看了半天源代码,发现只要KTHREAD的PreviousMode域为KernelMode就不会检测权限了,那么就临时把当前线程的PreviousMode改一下(我不知道这么做是不是有危险,反正目前我还没遇到问题,多核CPU可以先把其他的锁掉),然后就可以顺利ZwOpenProcess,ZwTerminateProcess了。

 

今天又研究了一下,发现只要PsLookupProcessByProcessId,然后切换到对应的进程空间调用ZwTerminateProcess就可以了。。。又OUT了

你可能感兴趣的:(拒绝进程启动)