DetoursNT
1.0.0
Detoursnt是一个具有一个目标的简单项目 - 使弯路仅取决于NTDLL.DLL ,而无需对原始代码进行任何修改。
NTDLL.DLL加载后立即加载挂钩库该存储库已将Microsoft的原始GIT存储库作为subsodule。因此,原始代码尚未以任何方式触摸。
仅通过创建一个c头文件detoursnt.h来实现仅ntdll依赖项,该c ewnoursnt.h h已被强制(msvc的/FI开关)到每个编译单元中。该标头模拟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