如何避免easyhook多次注入dll?

时间:2017-07-09 11:40:52

标签: hook easyhook

目标应用可以使用相同的dll多次注入。

这将导致相同的功能多次挂钩。

您知道是否有办法检测目标应用是否已经注入?或者有没有办法避免多次注射?

1 个答案:

答案 0 :(得分:0)

在继续进行注入之前,您可以检查DLL是否已在目标应用程序中加载:

  • 在.NET中,您可以使用Process.Modules属性迭代进程中加载​​的DLL。

  • 对于本机C / C ++,您可以使用Windows进程状态API方法EnumProcessModules来获得相同的结果。迭代过程模块的示例可以是found here

或者,您可以在DLL中使用已注入的命名系统互斥锁,以确保不会多次应用钩子创建逻辑。请参阅Mutex class for .NET,或CreateMutex获取本机。这将是更复杂的方法,并且需要您在删除挂钩时清理互斥锁。