All pastes #292743 Raw Edit

Untitled

public text v1 · immutable
#292743 ·published 2006-12-26 22:02 UTC
rendered paste body
#include <winsock2.h>
#include <windows.h>
#include <stdio.h>
#include "winsock2hooks.h"
#include "ISXWoWPackets.h"

DETOUR_TRAMPOLINE_EMPTY(int WSAAPI Trampoline_send(SOCKET s,const char FAR * buf,int len,int flags));
DETOUR_TRAMPOLINE_EMPTY(int WSAAPI Trampoline_recv(SOCKET s,char FAR * buf,int len,int flags));
DETOUR_TRAMPOLINE_EMPTY(int WSAAPI Trampoline_recvfrom(SOCKET s,char FAR * buf,int len,int flags,struct sockaddr FAR * from,int FAR * fromlen));
DETOUR_TRAMPOLINE_EMPTY(int WSAAPI Trampoline_WSARecv(SOCKET s,LPWSABUF lpBuffers,DWORD dwBufferCount,LPDWORD lpNumberOfBytesRecvd,LPDWORD lpFlags,LPWSAOVERLAPPED lpOverlapped,LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine));
DETOUR_TRAMPOLINE_EMPTY(int WSAAPI Trampoline_WSASend(SOCKET s,LPWSABUF lpBuffers,DWORD dwBufferCount,LPDWORD lpNumberOfBytesSent,DWORD dwFlags,LPWSAOVERLAPPED lpOverlapped,LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine));

FILE * fpLog;

int WSAAPI my_send(SOCKET s,const char FAR * buf,int len,int flags)
{
	fprintf(fpLog,"[send] %s\r\n\r\n",buf);
	int ret = Trampoline_send(s,buf,len,flags);
	return ret;
}

int WSAAPI my_recv(SOCKET s,char FAR * buf,int len,int flags)
{
	fprintf(fpLog,"[recv] %s\r\n\r\n",buf);
	int ret = Trampoline_recv(s,buf,len,flags);
	return ret;
}

int WSAAPI my_recvfrom(SOCKET s,char FAR * buf,int len,int flags,struct sockaddr FAR * from,int FAR * fromlen)
{
	fprintf(fpLog,"[recvfrom] %s\r\n\r\n",buf);
	int ret = Trampoline_recvfrom(s,buf,len,flags,from,fromlen);
	return ret;
}

int WSAAPI my_WSARecv(SOCKET s,LPWSABUF lpBuffers,DWORD dwBufferCount,LPDWORD lpNumberOfBytesRecvd,LPDWORD lpFlags,LPWSAOVERLAPPED lpOverlapped,LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine)
{
	fprintf(fpLog,"[WSARecv] %s\r\n\r\n",lpBuffers->buf);
	int ret = Trampoline_WSARecv(s,lpBuffers,dwBufferCount,lpNumberOfBytesRecvd,lpFlags,lpOverlapped,lpCompletionRoutine);
	return ret;
}

int WSAAPI my_WSASend(SOCKET s,LPWSABUF lpBuffers,DWORD dwBufferCount,LPDWORD lpNumberOfBytesSent,DWORD dwFlags,LPWSAOVERLAPPED lpOverlapped,LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine)
{
	fprintf(fpLog,"[WSASend] %s\r\n\r\n",lpBuffers->buf);
	int ret = Trampoline_WSASend(s,lpBuffers,dwBufferCount,lpNumberOfBytesSent,dwFlags,lpOverlapped,lpCompletionRoutine);
	return ret;
}