检测流程创建

时间:2009-12-01 00:00:25

标签: .net process code-injection

我需要检测第三方.NET应用程序的进程创建。我的目标是注入一个插件DLL来增强这个应用程序的功能。我宁愿尽早注入这个,所以我可以捕获应用程序的初始化事件。有没有办法检测何时创建此进程并在调用Main之前注入DLL?

3 个答案:

答案 0 :(得分:4)

通常的解决方案是使用存根替换目标应用程序图像,该存根在受控参数下启动原始图像。

还有其他方法,例如GFlags,但它们用于调试而不是正常操作。

答案 1 :(得分:2)

如果你不能像Remus建议那样替换原始应用程序,你可能需要研究使用系统级钩子并拦截CreateProcess()API族函数并监视它们的所有调用。

请参阅:API hooking revealed

这有点复杂,你可能遇到各种各样的问题,例如vista上的问题和其他挂钩库: http://forum.madshi.net/viewtopic.php?p=15833

答案 2 :(得分:-2)

糟糕的主意。

你可能会觉得我很苛刻,但我看到我的进程崩溃了,因为有些小丑认为将一些随机DLL注入“增强功能”是一个好主意。你可能会破坏其他人的地址空间。停下来。更糟糕的是,当你的坏代码将它们搞砸时,它们会受到指责。

允许您将代码注入另一个进程的API实际上是用于编写调试器。如果您没有编写调试器,请不要在生产代码中使用它们。你在玩火。