2

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

谢谢。

4

2 回答 2

1

当前版本的 Easyhook 在其执行应用程序域退出时会卸载注入的 dll。如果您想从注入程序中退出注入的 dll,请与注入的 dll 进行某种形式的通信,让它知道是时候退出其应用程序域了。

看到这个问题

于 2015-03-06T03:34:58.787 回答
0

正如EasyHook 2.6 教程所说:

Run 方法可以被视为应用程序的入口点。如果您从它返回,您的库将被卸载。但这不是真的;-)。事实上,在 CLR 决定卸载它之前,您的库一直处于活动状态。通过使用 CLR Hosting API,这种行为可能会在未来的 EasyHook 版本中改变,但目前我们根本不知道!

因此,您所能做的就是确保您从 Run 方法正确返回,以便您注入的 DLL 不再被主动挂钩或操作。它将一直呆在那里,死了,直到进程最终终止。就目前的 EasyHook 版本(2.7)而言,您无法强制卸载它。

于 2014-05-17T15:41:24.870 回答