when i inject this dll to program, the program crash when meet function memcpy.
I want to hook function memcpy with detours. Please Help.
#include <windows.h>
#include<iostream>
#include "detours\detours.h"
#pragma comment( lib, "msvcrt.lib" )
#pragma comment( lib, "detours.lib" )
void * (__cdecl *memcpy_o)(void *dest, const void *src, size_t count);
void* __cdecl Mine_Memcpy(void *dest, const void *src, size_t count) {
char cislo[24]; // just big enough
void* asd = &memcpy;
sprintf(cislo,"0x%08x", &asd);
MessageBoxA(0, cislo, cislo, 0);
return memcpy_o(dest, src, count);
}
BOOL WINAPI DllMain(HINSTANCE, DWORD dwReason, LPVOID) {
HANDLE memcpy_get = GetProcAddress(GetModuleHandleA("msvcrt"), "memcpy");
switch (dwReason) {
case DLL_PROCESS_ATTACH:
DetourTransactionBegin();
DetourUpdateThread(GetCurrentThread());
memcpy_o = (void * (__cdecl *)(void *dest, const void *src, size_t count))DetourAttach(&(PVOID&)memcpy_get, Mine_Memcpy);
DetourTransactionCommit();
break;
case DLL_PROCESS_DETACH:
DetourTransactionBegin();
DetourUpdateThread(GetCurrentThread());
DetourDetach(&(PVOID &)memcpy_o, Mine_Memcpy);
DetourTransactionCommit();
break;
}
return TRUE;
}
I inject this dll to program. when the program what to use mecpy it stop working please help, where is the mistake ?