我有一个驱动程序,它通过在进程开始时使用 call 发送 APC 调用来篡改用户空间进程PsSetCreateProcessNotifyRoutine
。
我希望避免篡改任何对操作系统稳定性至关重要的进程,因为我的 APC 最终也决定终止该进程。
到目前为止,我已经使用PsIsProtectedProcess
和PsIsProtectedProcessLight
来检测受保护的进程。
但是,似乎有一些过程,例如smss.exe
和crss.exe
和wininit.exe
,被定义为关键过程,我也希望避免它们。
也许有人知道受保护进程和关键进程之间的区别,以及我如何从内核模式以编程方式检测关键进程(也许它在 EPROCESS 中有临时字段?)
谢谢,