Permet de décorer les API Windows. [[https://github.com/microsoft/detours|Site GitHub]] {{ :lib:detours:detours-2020-12-09.zip |Archive du 09/12/2019 le 07/02/2020}} ===Compilation=== Se compile avec ''nmake.exe'' de Visual Studio. J'ai dû ajouter au ''CFLAGS'' du fichier ''src/Makefile'' /I "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\um" /I "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\shared" /I "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\include" /I "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\ucrt" ===Exemple=== Exemple pris sur le Wiki du site GitHub. #include #include // Target pointer for the uninstrumented Sleep API. // static VOID(WINAPI * TrueSleep)(DWORD dwMilliseconds) = Sleep; // Detour function that replaces the Sleep API. // VOID WINAPI TimedSleep(DWORD dwMilliseconds) { // Save the before and after times around calling the Sleep API. DWORD dwBeg = GetTickCount(); TrueSleep(dwMilliseconds); DWORD dwEnd = GetTickCount(); OutputDebugStringW(L"My output string.\n"); } int main() { if (DetourIsHelperProcess()) { return TRUE; } DetourRestoreAfterWith(); DetourTransactionBegin(); DetourUpdateThread(GetCurrentThread()); DetourAttach(&(PVOID&)TrueSleep, TimedSleep); DetourTransactionCommit(); Sleep(100); Sleep(100); Sleep(100); DetourTransactionBegin(); DetourUpdateThread(GetCurrentThread()); DetourDetach(&(PVOID&)TrueSleep, TimedSleep); DetourTransactionCommit(); return 0; } Sortie dans la console : My output string. My output string. My output string.