rendered paste body#include <winsock2.h>
#include <windows.h>
#include <stdio.h>
#include "winsock2hooks.h"
#include "ISXWoWPackets.h"
DETOUR_TRAMPOLINE_EMPTY(int WINAPI Trampoline_send(SOCKET s,const char FAR * buf,int len,int flags));
DETOUR_TRAMPOLINE_EMPTY(int WINAPI Trampoline_recv(SOCKET s,char FAR * buf,int len,int flags));
DETOUR_TRAMPOLINE_EMPTY(int WINAPI Trampoline_recvfrom(SOCKET s,char FAR * buf,int len,int flags,struct sockaddr FAR * from,int FAR * fromlen));
DETOUR_TRAMPOLINE_EMPTY(int WINAPI Trampoline_WSASend(SOCKET s,LPWSABUF lpBuffers,DWORD dwBufferCount,LPDWORD lpNumberOfBytesSent,DWORD dwFlags,LPWSAOVERLAPPED lpOverlapped,LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine));
DETOUR_TRAMPOLINE_EMPTY(int WINAPI Trampoline_WSARecv(SOCKET s,LPWSABUF lpBuffers,DWORD dwBufferCount,LPDWORD lpNumberOfBytesRecvd,LPDWORD lpFlags,LPWSAOVERLAPPED lpOverlapped,LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine));
FILE * fpLog;
int WINAPI my_send(SOCKET s,const char FAR * buf,int len,int flags)
{
if (buf) fprintf(fpLog,"[send] %s\r\n\r\n",buf);
int ret = Trampoline_send(s,buf,len,flags);
return ret;
}
int WINAPI my_recv(SOCKET s,char FAR * buf,int len,int flags)
{
int ret = Trampoline_recv(s,buf,len,flags);
if (buf) fprintf(fpLog,"[recv] %s\r\n\r\n",buf);
return ret;
}
int WINAPI my_recvfrom(SOCKET s,char FAR * buf,int len,int flags,struct sockaddr FAR * from,int FAR * fromlen)
{
int ret = Trampoline_recvfrom(s,buf,len,flags,from,fromlen);
if (buf) fprintf(fpLog,"[recvfrom] %s\r\n\r\n",buf);
return ret;
}
int WINAPI my_WSASend(SOCKET s,LPWSABUF lpBuffers,DWORD dwBufferCount,LPDWORD lpNumberOfBytesSent,DWORD dwFlags,LPWSAOVERLAPPED lpOverlapped,LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine)
{
if (lpBuffers->buf) fprintf(fpLog,"[WSASend] %s\r\n\r\n",lpBuffers->buf);
int ret = Trampoline_WSASend(s,lpBuffers,dwBufferCount,lpNumberOfBytesSent,dwFlags,lpOverlapped,lpCompletionRoutine);
return ret;
}
int WINAPI my_WSARecv(SOCKET s,LPWSABUF lpBuffers,DWORD dwBufferCount,LPDWORD lpNumberOfBytesRecvd,LPDWORD lpFlags,LPWSAOVERLAPPED lpOverlapped,LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine)
{
int ret = Trampoline_WSARecv(s,lpBuffers,dwBufferCount,lpNumberOfBytesRecvd,lpFlags,lpOverlapped,lpCompletionRoutine);
if (lpBuffers->buf) fprintf(fpLog,"[WSARecv] %s\r\n\r\n",lpBuffers->buf);
return ret;
}