#ifndef CDETOURS_H #define CDETOURS_H #include char last_loaded_file[256]; DETOUR_TRAMPOLINE ( HANDLE __stdcall pCreateFile ( LPCTSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile ), CreateFile ); HANDLE __stdcall InjectedFile ( LPCTSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile ) { LPCSTR lpRepFileName = lpFileName; if ( !strcmp ( lpFileName, "main.scm" ) ) { lpRepFileName = "gtam.scm"; } sprintf ( last_loaded_file, "%s", lpRepFileName ); return pCreateFile ( lpRepFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile ); } void InstallDetourHook () { DetourFunctionWithTrampoline ( (PBYTE)pCreateFile, (PBYTE)InjectedFile ); } #endif