All pastes #292776 Raw Edit

Someone

public text v1 · immutable
#292776 ·published 2006-12-26 22:39 UTC
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;
}