我希望每次操作系统启动新进程时都会收到通知 请注意,我需要在本机代码中使用它(我知道它可以使用System.Management成员在托管代码中完成) 如果在进程开始运行之前有一种方法可以得到它的额外点:)(即在初始化期间)
感谢。
答案 0 :(得分:2)
使用驱动程序的问题是您需要安装它的权限,否则我认为是最安全的方法。
在用户空间中,您可以尝试创建一个窗口挂钩,如果此类应用程序使用窗口,它将起作用,但在其他方面非常令人讨厌。
答案 1 :(得分:0)
您无法控制进程创建或从用户空间注册回调。也许这篇文章可以帮助你。 "Hooking the native API and controlling process creation on a system-wide basis"
要注册回调,您可以使用MS DDK中提供的PsSetCreateProcessNotifyRoutine。其示例用法可以在www.codeproject.com/KB/threads/procmon.aspx
中找到答案 2 :(得分:0)
实时ETW跟踪将以较低的系统开销为您提供此信息。请注意,这不会让您挂钩进程创建(即它只是一个通知,您无法控制该进程是否真正开始)