rendered paste body#ifndef CDETOURS_H
#define CDETOURS_H
#include <detours.h>
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