Hey,
ich arbeite grad an einen simplen fopen hook.
Bisher hab ich folgendes
Code:
typedef FILE * ( _cdecl *openOrigT )( const char * filename, const char * mode );
openOrigT fileOrgi = NULL;
FILE * _cdecl myFileOpen( const char * filename, void* unk, const char * mode )
{
return fileOrgi(filename,mode);
}
und hier der detour
Code:
DWORD fopenAddr = (DWORD)GetProcAddress(
GetModuleHandle(TEXT("msvcrt.dll")),
"fopen");
fileOrgi = (openOrigT)DetourFunction((BYTE*) fopenAddr,(BYTE*) &myFileOpen);
Jedoch erzeugt das anscheinend eine falsche FILE oder was ähnliches, da das Game versucht die Datei direkt nochmal zu öffnen und es dann nochmal fehlschlägt und dann zum beenden des Programmes kommt.
MFG
Gelöst

hatte noch den void* parameter drin.