查找哪个进程启动了另一个进程

查找哪个进程启动了另一个进程

假设我有进程资源管理器向我显示有一个名为正在EvilAppsRUs.exe运行的应用程序。

我将其关闭,但它又重新启动了。我已检查以确保它没有服务(在 Process Explorer 中右键单击它->属性)。

因此,我相当确信有另一个进程(可能被称为类似的良性进程DisplayDriver.exe)正在启动(并重新启动)EvilAppsRUs.exe

我如何才能找出重新启动恶意进程的进程的名称?

答案1

在 Windows 上,使用进程监视器可能会有所帮助。在那里,进程树工具 ( Ctrl+ T) 显示进程之间的关系。

您可以从以下网址下载并快速试用官方网站

非常有用且实时的进程监视器...

答案2

总结:不要相信通常显示进程树的工具所提供的信息。

如果没有这样的工具提及 进程监控或有点相关的系统监控 你无法知道从理论上讲,只要相应的工具捕获了进程创建事件并使用捕获的信息来(重新)构建流程树。

然而,父进程和子进程之间的关系并不是相关的在 Windows 上和在 Unix 上一样。在 Unix 上,父进程必须收集子进程的退出状态,以免子进程最终变成僵尸进程。这是一个重要的信息,因为它还解释了为什么Windows 并不像 Unix 一般那样重视父子进程关系。Windows 中的父进程不需要收集其子进程的退出状态。

更糟糕的是:在创建进程期间,你可以通过使用PROC_THREAD_ATTRIBUTE_PARENT_PROCESS,这通常应该让你了解进程树的可信度探索者是(提示:不是)。此信息可以可以在正在运行的进程上进行伪造,只要进行该操作的进程对被操作的进程具有适当的访问级别。

进程监视器的优势在于——理论上——它可以看到正在创建的进程,而不必依赖于你可以提取的信息事后来自每个相应的进程(并且可以伪造)。但是,我不知道该信息是否用于填充其进程树。看起来不是。鉴于可以在捕获之前显示进程树任何Process Monitor 中的事件,按理说它与 Process Explorer 类似,这意味着这些信息也不可信

尽管PROC_THREAD_ATTRIBUTE_PARENT_PROCESS是在 Windows 7 左右引入的,但即使在早期的 Windows 版本中,父子进程关系也从未有太大关系。


进一步阅读:

PS:常规工具要么使用文档tlhelp32CreateToolhelp32Snapshot等。PROCESSENTRY32W::th32ParentProcessID) 功能或 NT 本机 APINtQuerySystemInformation和某事喜欢 SystemProcessInformation(Nebbett 称之为SystemProcessesAndThreadsInformation)。这意味着他们将返回可能伪造的父 PID。

相关内容