如何检测创建应用程序进程的应用程序的名称?

例如,如果有人愿意,他们可以调用CreateProcess并将其传递给已挂起的标志并注入到我的应用程序中。

有没有办法阻止CreateProcess或弄清楚哪个进程创建了我的应用程序实例?

我已经迷上了loadlibrary,createthread和所有其他简单的东西,但是CreateProcess似乎可以绕开它。

我这样做是为了娱乐和学习,而不是用于现实世界。我只是没有看到任何可检测到CreateProcess的东西。

有什么想法吗?

最佳答案

您可以使用工具帮助库找到父流程ID:


呼叫CreateToolhelp32Snapshot
调用Process32FirstProcess32Next枚举进程。
在某些时候,您会遇到一个PROCESSENTRY32结构,其中th32ProcessID是您的进程的进程ID。
读出th32ParentProcessID成员以查找父代的进程ID。
现在您已经知道父流程,您可以再次枚举以获得有关它的信息。


为此,请做好准备以终止父进程。

关于c++ - 检测CreateProcess或创建流程的人,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22428517/

10-13 08:34