
typedef void(__cdecl* OriginalFunction)(int, char*, float);
__declspec(naked) void hkFunction(int arg1, char* arg2, float arg3)
{
__asm PUSHAD
printf("[%i] | [%s] | [%f]\n", arg1, arg2, arg3);
__asm POPAD
__asm JMP dwJumpBackAddr
}
DWORD __stdcall DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
{
if (dwReason == DLL_PROCESS_ATTACH)
{
PlaceJMP((BYTE*)ADDRESS_OF_ORIGINAL_FUNCTION, (DWORD)hkFunction, BYTES_OVERWRITTEN);
}
return TRUE;
}


