DetoursNT
1.0.0
Detoursnt是一個具有一個目標的簡單項目 - 使彎路僅取決於NTDLL.DLL ,而無需對原始代碼進行任何修改。
NTDLL.DLL加載後立即加載掛鉤庫該存儲庫已將Microsoft的原始GIT存儲庫作為subsodule。因此,原始代碼尚未以任何方式觸摸。
通過創建一個已強制( /FI開關)到每個編譯單元中的c頭文件detoursnt.h來實現僅ntdll依賴性。該標頭模擬KERNEL32.DLL的函數,以在detoursnt.cpp中定義的自定義實現。
我要感謝以下項目的作者:
KERNEL32.DLL函數NTDLL.DLL函數的原型由於原始彎路源代碼是作為git subsodule附加的,因此您必須忘記獲取它:
git clone --recurse-submodules https://github.com/wbenny/DetoursNT
之後,使用Visual Studio 2017編譯Detoursnt 。包括解決方案文件。無需其他依賴。
在Visual Studio中擊中F7並進行所有內容進行編譯後,您可以檢查SampleHookDLL.dll的確僅取決於NTDLL.DLL :

此掛鉤DLL僅用於指示目的的NtTestAlert函數。在此存儲庫中,還有Sample項目。唯一的目的是調用LoadLibrary(TEXT("SampleHookDLL.dll")) , NtTestAlert()和FreeLibrary()以向您表明鉤子是否在起作用。

該軟件是根據MIT許可證開源的。請參閱此存儲庫中的許可證文件。
Detours已根據MIT許可獲得許可(許可證的副本包含在單獨的GIT子模塊中)
如果您覺得這個項目很有趣,可以給我買咖啡
BTC 3GwZMNGvLCZMi7mjL8K6iyj6qGbhkVMNMF
LTC MQn5YC7bZd4KSsaj8snSg4TetmdKDkeCYk