O Detoursnt é um projeto simples com uma meta - faça desvios dependentes apenas do NTDLL.DLL sem nenhuma modificação do código original.
NTDLL.DLLEste repositório anexou o repositório Git original de desvios da Microsoft como submódulo. Portanto, o código original não foi tocado de forma alguma.
A dependência somente para NTDLL foi alcançada criando um arquivo de cabeçalho C Detoursnt.h, que foi incluído em força ( /FI switch do MSVC) em todas as unidades de compilação de desvios. Este cabeçalho zomba das funções do KERNEL32.DLL para implementação personalizada definida em detursnt.cpp.
Gostaria de agradecer aos autores dos seguintes projetos:
KERNEL32.DLLNTDLL.DLLComo o código -fonte original do Detours está anexado como um submódulo Git, você não deve esquecer de buscá -lo:
git clone --recurse-submodules https://github.com/wbenny/DetoursNT
Depois disso, a compilação de desvios usando o Visual Studio 2017. O arquivo de solução está incluído. Nenhuma outra dependência é necessária.
Depois de atingir F7 no Visual Studio e ter tudo compilado, você pode verificar que SampleHookDLL.dll depende apenas do NTDLL.DLL :

Essa dll de enforcamento apenas preenche a função NtTestAlert para fins demonstrativos. Neste repositório, também há um projeto Sample . O único objetivo é chamar LoadLibrary(TEXT("SampleHookDLL.dll")) , NtTestAlert() e FreeLibrary() para mostrar que o gancho está funcionando.

Este software é de código aberto sob a licença do MIT. Consulte o arquivo License.txt neste repositório.
O Detours é licenciado sob licença do MIT (uma cópia da licença é incluída no submódulo Git separado)
Se você achar este projeto interessante, você pode me comprar um café
BTC 3GwZMNGvLCZMi7mjL8K6iyj6qGbhkVMNMF
LTC MQn5YC7bZd4KSsaj8snSg4TetmdKDkeCYk