All pastes #457018 Raw Edit

Anonymous

public text v1 · immutable
#457018 ·published 2007-04-25 03:37 UTC
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