通过EasyHook卸载注入的DLL

时间:2014-04-04 13:12:40

标签: dll-injection easyhook

我尝试使用EasyHook将DLL注入另一个进程,但是当主机进程关闭时,EasyHook和其他注入的DLL仍在进行中。 有谁知道如何从目标进程中卸载它们?

感谢。

2 个答案:

答案 0 :(得分:1)

Easyhook的当前版本在执行应用程序域退出时卸载注入的dll。如果你想从注入程序中退出注入的dll,可以使用注入的dll进行某种形式的通信,让它知道它是时候退出app域。

See this issue

答案 1 :(得分:0)

正如EasyHook 2.6 Tutorial所说:

  

可以将Run方法视为应用程序入口点。如果您从中退回,您的图书馆将被卸载。但这不是真的;-)。实际上,在CLR决定卸载它之前,您的库仍然存活。在将来的EasyHook版本中,这种行为可能会因使用CLR Hosting API而发生变化,但目前我们根本就不知道!

所以你所能做的就是确保从Run方法正确返回,这样你注入的DLL就不再被主动挂钩或运行了。它将一直存在,直到该过程最终终止。就目前的EasyHook版本(2.7)而言,没有什么可以强制卸载的。