用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;
}
代码如下!
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;
}
...全文
相关推荐
HOOK SEND RECV函数拦截网络封包的程序.rar
当拦截SEND和RECV函数时,开发者可以实现以下功能:1. 数据日志:记录发送和接收的所有网络通信,这对于调试网络问题或分析应用行为非常有用。2.
hook recv debugprint 接收数据输出补丁
总的来说,"hook recv debugprint 接收数据输出补丁"是一个关于网络通信调试的高级技术,它结合了函数hook、日志记录和调试工具的使用,对于软件开发者尤其是网络编程人员来说,是提高效率和解决问题的重要手段
全局HOOK的例子,HOOK了IE用到的send
当DLL注入成功后,每次IE浏览器尝试通过`send`函数发送数据时,都会首先经过我们设置的HOOK。HOOK函数可以记录下这些数据,分析它们,甚至改变数据内容。
APIHook.rar_Detours hook recv_WindowsAPICodePack.d_apihook.r_de
在IT领域,API Hook是一种技术,它允许程序员在运行时改变特定API函数的行为。
hook 浏览器控件收发包
在压缩包文件"SimpleIE"中,可能包含了一个简单的MFC项目,演示了如何实现对IE浏览器控件的hook。


网络编程
