【问题标题】:For every CreateProcess, call my function first [closed]对于每个 CreateProcess,首先调用我的函数 [关闭]
【发布时间】:2016-09-01 23:16:20
【问题描述】:

我的想法是,为每个将要创建的新进程创建一个弹出窗口,这样我就可以确定只有经过我许可的进程。

问题是,我如何在 Windows 创建新进程之前链接我的函数。

我尝试了一些 dll 注入,但它不起作用。

有没有人解决这个问题,或者甚至不可能?

谢谢!

【问题讨论】:

标签: c++ windows createprocess


【解决方案1】:

这样做的合法方法是创建一个内核驱动程序,该驱动程序使用PsSetCreate|ProcessNotifyRoutineEx(Vista SP1 及更高版本支持)来控制进程创建(和终止)。此例程允许您注册一个回调函数,该函数在创建进程或终止进程时调用。在创建情况下,您的回调可能决定阻止该过程。回调获取有关新进程的以下信息:

1) 图像文件名,

2) 命令行参数,

3) PID,

4) 其父代的 PID,

5) TID:创建进程和线程的PID。

如果您不想开发内核驱动程序,您可以提供一个近似的解决方案。 AFAIK WMI 能够通知您刚刚创建了一个新进程。当您收到通知时,您可能会暂停该过程并询问用户(或做任何您想做的事情)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-10
    • 1970-01-01
    • 1970-01-01
    • 2012-12-20
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 2012-07-06
    相关资源
    最近更新 更多