我們要先看看微軟官方的著名HOOK庫:
Detours Professional 3.0
售價:US$9,999.95
功能列表:
Detours 3.0 includes the following new features over Detours 2.x:
-
Support for 64-bit code on x64 and IA64 processors (Professional Edition only).
-
Support for all Windows processors (Professional Edition only).
-
Removed requirement for including detoured.dll in processes.
-
Compatibility improvements for detouring APIs used by managed-code (MSIL) programs, especially on x64 processors.
-
Addition of APIs to enumerate PE binary Imports and to determine the module referenced by a function pointer.
從上面我們可以看到 功能着實強大啊,對64位以及64相關進程甚至全部WINDOWS進程均可以HOOK,基本上可以稱之為牛逼庫。
實際上使用過免費版的知道,基本上Detours還能分析PE結構,導入表和導出表修改等。
本次我要介紹的是像我這種窮人屌絲才能用得起的,EASYHOOK。
我們來看看EASYHOOK的介紹:
EasyHook的口號:
EasyHook Continuing Detours
我們可以理解為它就是Detours的替代品,用於替代那些買不起昂貴微軟產品的屌絲們。
OK我們再來看看它的強大:
-
首先他支持C#語言(此處已超越Detours),擁有C# Wapper
-
與Detours的收費版本一致的是,支持全部類型的進程
-
完美支持64位進程以及目標
-
已經持續更新很久,並且擁有強大的支持。
-
著名游戲引擎UNREAL在使用該系統,雖然我沒注意過在哪里使用過。
-
支持托管以及非托管級別的代碼調用以及HOOK
-
開放全部源碼,可以學習修改,提取甚至靜態編譯
-
超級簡單的注入遠程DLL至對方進程,這點比Detours要簡單的多。
-
強大的接口文檔,這個寫的非常詳細了
-
驅動級選項,認真讀文檔會知道他可以選擇性的使用驅動程序來提升本身的權限
-
擁有強大的API可以檢測到目標進程或系統進程是否為64位
-
注入時可針對64位和32位做不同的接口
缺點是 有C++的接口,只是需要提煉和編譯一下,研究成本明顯略高。