2017-07-09 152 views
0

目標應用程序可以注入多個相同的DLL。如何避免easyhook多次注入dll?

這將導致相同的功能被多次掛鉤。

您是否知道是否有方法檢測目標應用程序是否已被注入?或者有沒有辦法避免多次注入?

回答

0

你可以檢查DLL與注射繼續之前已經加載到目標應用程序:

  • 在.NET中你可以使用Process.Modules屬性來遍歷進程中加載​​的DLL。

  • 對於本地C/C++,您可以使用Windows進程狀態API方法EnumProcessModules來實現相同的結果。迭代進程模塊的示例可以是found here

或者,您可以在被注入的DLL中使用命名的系統互斥鎖,以確保您的掛鉤創建邏輯不會多次應用。請參閱用於.NET的Mutex class,或用於本機的CreateMutex。這將是更復雜的方法,並且需要您在清除掛鉤時清除互斥鎖。