Detoursnt es un proyecto simple con un objetivo: hacer que los desvíos dependan solo de NTDLL.DLL sin ninguna modificación del código original.
NTDLL.DLLEste repositorio ha adjuntado el repositorio de desvíos Git original de Microsoft como un submódulo. Por lo tanto, el código original no se ha tocado de ninguna manera.
La dependencia de solo NTDLL se ha logrado creando un archivo de encabezado C Detoursnt.h que ha sido incluido la fuerza ( /FI de MSVC) en cada unidad de compilación de desvíos. Este encabezado se burla de las funciones de KERNEL32.DLL a la implementación personalizada definida en Detoursnt.cpp.
Me gustaría agradecer a los autores de los siguientes proyectos:
KERNEL32.DLLNTDLL.DLLDebido a que el código fuente original de Detours se adjunta como un submódulo GIT, no debe olvidar obtenerlo:
git clone --recurse-submodules https://github.com/wbenny/DetoursNT
Después de eso, compile el desvío utilizando Visual Studio 2017. Se incluye el archivo de solución. No se requieren otras dependencias.
Después de presionar F7 en Visual Studio y compilarse todo, puede verificar que SampleHookDLL.dll depende solo de NTDLL.DLL :

Esta DLL de enganche solo engancha la función NtTestAlert para fines demostrativos. En este repositorio también hay un proyecto Sample . Su único propósito es llamar LoadLibrary(TEXT("SampleHookDLL.dll")) , NtTestAlert() y FreeLibrary() para mostrarle que el gancho está funcionando.

Este software es de código abierto bajo la licencia MIT. Consulte el archivo License.txt en este repositorio.
Detours tiene licencia bajo la licencia MIT (una copia de la licencia se incluye en el submódulo GIT por separado)
Si encuentra interesante este proyecto, puede comprarme un café
BTC 3GwZMNGvLCZMi7mjL8K6iyj6qGbhkVMNMF
LTC MQn5YC7bZd4KSsaj8snSg4TetmdKDkeCYk