用API HOOK 改变 recv等接收函数问题!不知道怎么IE等浏览器都断开了
用API HOOK 改变 recv等接收函数问题!只要加上钩子,不知道怎么IE等浏览器都断开了,中间我没有过滤数据!
代码如下!
int WINAPI hook_recv(SOCKET s, char FAR* buf, int len, int flags )
{
CShareMemory sm("IPPACK_RECEIVE",sizeof(CMessageData)+len,TRUE);
CMessageData *pData = (CMessageData*)sm.GetBuffer();
g_recv.Unhook();
int Ret = recv(s,pData->data(),len,flags);
g_recv.Rehook();
pData->scoket = s;
pData->dwThreadId = ::GetCurrentThreadId();
pData->DataLength = Ret;
pData->Recvbuf = buf;
int Rlen;
getpeername(s,(sockaddr *)&pData->SockAddr,&Rlen);
DWORD mipaddr = pData->SockAddr.sin_addr.S_un.S_addr;
memcpy(buf, pData->data(), pData->DataLength);// 返回数据
return Ret;
}