我截获了WSASend,但怎么都截获不到WSARecv代码如下:
int WSAAPI WSPRecv(
SOCKET s,
LPWSABUF lpBuffers,
DWORD dwBufferCount,
LPDWORD lpNumberOfBytesRecvd,
LPDWORD lpFlags,
LPWSAOVERLAPPED lpOverlapped,
LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine,
LPWSATHREADID lpThreadId,
LPINT lpErrno
)
{
int iRet = NextProcTable.lpWSPRecv(s,lpBuffers,dwBufferCount,lpNumberOfBytesRecvd,lpFlags,
lpOverlapped,lpCompletionRoutine,lpThreadId,lpErrno);
if (MB_Flag)
{
WaitForSingleObject(hMutex02,INFINITE);
RtlZeroMemory(lpRMemory,4096);
CopyMemory(lpRMemory,lpBuffers->buf,500);
ReleaseMutex(hMutex02);
hWnd = FindWindow(NULL,"GetEveBuffer");
if (hWnd)
PostMessage(hWnd,(WM_USER+101),0,0);
}
return iRet;
}
我调用了下一个服务提供者,返回后,lpBuffers->buf指向的内存却不对(我用IRIS工具对比了),表明我没有截获到WSARecv封包,而且lpNumberOfBytesRecvd指向的变量是0,这个指针指向的是实际接收到的字节数啊,这是为什么