【发布时间】:2016-09-01 23:16:20
【问题描述】:
我的想法是,为每个将要创建的新进程创建一个弹出窗口,这样我就可以确定只有经过我许可的进程。
问题是,我如何在 Windows 创建新进程之前链接我的函数。
我尝试了一些 dll 注入,但它不起作用。
有没有人解决这个问题,或者甚至不可能?
谢谢!
【问题讨论】:
标签: c++ windows createprocess
我的想法是,为每个将要创建的新进程创建一个弹出窗口,这样我就可以确定只有经过我许可的进程。
问题是,我如何在 Windows 创建新进程之前链接我的函数。
我尝试了一些 dll 注入,但它不起作用。
有没有人解决这个问题,或者甚至不可能?
谢谢!
【问题讨论】:
标签: c++ windows createprocess
这样做的合法方法是创建一个内核驱动程序,该驱动程序使用PsSetCreate|ProcessNotifyRoutineEx(Vista SP1 及更高版本支持)来控制进程创建(和终止)。此例程允许您注册一个回调函数,该函数在创建进程或终止进程时调用。在创建情况下,您的回调可能决定阻止该过程。回调获取有关新进程的以下信息:
1) 图像文件名,
2) 命令行参数,
3) PID,
4) 其父代的 PID,
5) TID:创建进程和线程的PID。
如果您不想开发内核驱动程序,您可以提供一个近似的解决方案。 AFAIK WMI 能够通知您刚刚创建了一个新进程。当您收到通知时,您可能会暂停该过程并询问用户(或做任何您想做的事情)。
【讨论】: