Detoursnt - это простой проект с одной целью - сделать объезд зависимы только от NTDLL.DLL без каких -либо изменений исходного кода.
NTDLL.DLLЭтот репозиторий прикрепил оригинальный репозиторий GIT от обхода из Microsoft в качестве подмодуля. Поэтому исходный код никоим образом не был затронут.
Зависимость только для NTDLL была достигнута путем создания файла заголовка C, который был включен в силу ( /FI переключатель MSVC) в каждую единицу компиляции обходных путей. Этот заголовок издевается над функциями KERNEL32.DLL для пользовательской реализации, определенной в doutoursnt.cpp.
Я хотел бы поблагодарить авторов следующих проектов:
KERNEL32.DLLNTDLL.DLLПоскольку исходный код оригинального обхода прикреплен как подмодуль GIT, вы не должны забывать его извлекать:
git clone --recurse-submodules https://github.com/wbenny/DetoursNT
После этого компилируйте обходные данные с использованием Visual Studio 2017. Файл решения включен. Никаких других зависимостей не требуется.
После того, как вы нажимаете F7 в Visual Studio и все скомпилировали, вы можете проверить, что SampleHookDLL.dll действительно зависит только от NTDLL.DLL :

Этот зацепление DLL зацепит функцию NtTestAlert только для демонстративных целей. В этом репозитории также есть Sample проект. Единственная цель состоит в том, чтобы вызовать LoadLibrary(TEXT("SampleHookDLL.dll")) , NtTestAlert() и FreeLibrary() чтобы показать вам, что крюк работает.

Это программное обеспечение имеет открытый источник по лицензии MIT. См. Файл License.txt в этом репозитории.
Обходы лицензируются по лицензии MIT (копия лицензии включена в отдельный подмодуль GIT)
Если вы найдете этот проект интересным, вы можете купить мне кофе
BTC 3GwZMNGvLCZMi7mjL8K6iyj6qGbhkVMNMF
LTC MQn5YC7bZd4KSsaj8snSg4TetmdKDkeCYk