i detoured the send() with success, and in my detoured function i want to call the ORIGINAL function ! How to do it if the original itself get hooked, its will go into a loop ! Code: void *DetourFunc(BYTE *src, const BYTE *dst, const int len) { BYTE *jmp = (BYTE*)malloc(len+5); DWORD dwback; VirtualProtect(src, len, PAGE_READWRITE, &dwback); memcpy(jmp, src, len); jmp += len; jmp[0] = 0xE9; *(DWORD*)(jmp+1) = (DWORD)(src+len - jmp) - 5; src[0] = 0xE9; *(DWORD*)(src+1) = (DWORD)(dst - src) - 5; VirtualProtect(src, len, dwback, &dwback); return (jmp-len); } int WINAPI mysend(SOCKET s, const char* buf, int len, int flags) { MessageBox(NULL, buf, "I caught a packet :) !!!", NULL); send(s, buf, len, flags); return 1; } BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { DisableThreadLibraryCalls(hModule); hMod = LoadLibrary("ws2_32.dll"); DetourFunc((BYTE*)GetProcAddress(hMod, "send"), (BYTE*)mysend,2); return TRUE; } im new here, i hope that members can help me. thank you