【发布时间】:2017-09-26 05:27:47
【问题描述】:
我想将 每个 调用挂接到 CreateProcess(以及一些其他相关的 API),无论过程如何。可以使用现代 Detours 来做到这一点,而无需枚举所有进程并执行注入吗?
我已经阅读了几篇关于 API 挂钩和专门使用 Detours 的文章,回复:
API Hooking with MS Detours (InfoSec Institute)
我对这些文章有两个问题:
它们已经很老了,情况可能已经发生了变化。
他们没有专门使用 Detours 彻底解决系统范围的挂钩问题。
我知道这可以通过驱动程序完成,但据说 Detours 是一个强大的工具,并且目前仍受支持,所以我想知道如何使用 Detours 完成。
到目前为止,我阅读的文献都是针对使用 Detours 的特定程序,虽然它提出了如何枚举每个进程并执行 DLL 注入然后尝试使用 Detours 的想法,但这似乎像一个非常不可靠的方式。
【问题讨论】:
-
你了解绕道的工作原理吗?你真的希望一个你不注入的过程被绕道吗?
-
是的,但我发现很难相信这可能是一种连接此类广泛调用的可行方法,例如用于防病毒或黑客软件。我的假设错了吗?
-
您认为某个随机过程会在您不要求的情况下开始向您发送消息。如果您真的考虑过什么是弯路,您可以回答自己的问题。
-
@the_endian:防病毒、防火墙等的运行级别远低于用户级应用程序通常运行的级别。他们使用定制的系统驱动程序、低级系统挂钩和回调等。挂钩
CreateProcess是针对低级问题的高级方法。这听起来像XY Problem。 -
@the_endian 不,它没有。它只是直接在内存中修补功能。所以它不能跨越进程边界。阅读 technical paper,它解释了 Detours 是如何实际工作的