/* Copyright 2006, Marcus Low of Malaysia. Use at your own risk, using all related sources in this project signifies that you agree that you will be using these sources without any warranty from the author for whatsoever event/damage/reason. Work provided here is as is. */ // winsock2.cpp : Defines the entry point for the DLL application. // #include "stdafx.h" #include "Judgestl.h" #include #include #include "stdafx.h" #include "Judgestl.h" #include "MyTrace.H" #include "ApiProxy.H" LPCTSTR DEBUG_FILE_LOG = "c:\\winsock2.dll.log"; LPCTSTR DEBUG_FILE_FLAG = "c:\\winsock2.dll.var"; LPCTSTR DEBUG_FILE_BINARY_LOG = "c:\\winsock2.dll.binary.log.var"; //-------------------------------------------------------------------------// VOID PrintBlock(PVOID start, ULONG offset) { ULONG i, j, m, n; PCHAR tmpstr; tmpstr = (PCHAR)start; if(start == 0 || start == (PVOID)0xFFFFFFFF) return; m = offset / 16; n = offset % 16; for(i = 0; i < m + (n == 0 ? 0 : 1); i++) { Log("0x%08X ", tmpstr + (i * 16)); Log("%04X ", i * 16); for (j = 0; j < (i < m ? 16 : n); j ++) { Log("%02X ", tmpstr[(i * 16) + j] & 0x00FF); } for(; j < 16; j++) Log((".. ")); for (j = 0; j < (i < m ? 16 : n); j ++) { if(tmpstr[(i * 16) + j] >= 32) Log("%c", tmpstr[(i * 16) + j]); else Log("."); } for(; j < 16; j++) Log(".. "); Log("\n"); } Log("\n"); } //-------------------------------------------------------------------------// VOID PrintBuffers (DWORD numOfBuffers, LPWSABUF lpBuffers, DWORD ByteCount) { int Offset = 0; DWORD ByteCountCopy = ByteCount; int LenCopy = ByteCount; for (int i = 0; i < numOfBuffers; i++) { if (LenCopy > lpBuffers[i].len) { LenCopy = lpBuffers[i].len; } ByteCountCopy -= LenCopy; PrintBlock(lpBuffers[i].buf, LenCopy); Offset+=LenCopy; LenCopy = ByteCountCopy; if (LenCopy == 0) break; } } //-------------------------------------------------------------------------// TCHAR ModuleFileNameLog[MAX_PATH]; BOOL g_BinaryLog = FALSE; //-------------------------------------------------------------------------// void InitBinaryLog (void) { ZeroMemory(ModuleFileNameLog, sizeof(ModuleFileNameLog)); GetModuleFileName(NULL, ModuleFileNameLog, sizeof(ModuleFileNameLog)); _tcscat(ModuleFileNameLog, ".log"); ifstream fin(DEBUG_FILE_BINARY_LOG); if (!fin.fail()) { g_BinaryLog = TRUE; Log("Binary Log active : %s\n", ModuleFileNameLog); DeleteFile(ModuleFileNameLog); } } //-------------------------------------------------------------------------// void BinaryLogData (DWORD Context, PVOID pszData, int len) { if (!g_BinaryLog) return; DWORD dl = GetLastError(); TCHAR TextMsg[MAX_PATH]; wsprintf(TextMsg, "", Context); ofstream fout(ModuleFileNameLog, ios::app | ios::binary); fout.write(TextMsg, _tcslen(TextMsg)); fout.write((LPTSTR)pszData, len); wsprintf(TextMsg, "", Context); fout.write(TextMsg, _tcslen(TextMsg)); SetLastError(dl); } //-------------------------------------------------------------------------// void BinarLogBuffers (DWORD Context, DWORD numOfBuffers, LPWSABUF lpBuffers, DWORD ByteCount) { if (!g_BinaryLog) return; int Offset = 0; DWORD ByteCountCopy = ByteCount; int LenCopy = ByteCount; for (int i = 0; i < numOfBuffers; i++) { if (LenCopy > lpBuffers[i].len) { LenCopy = lpBuffers[i].len; } ByteCountCopy -= LenCopy; BinaryLogData(Context, lpBuffers[i].buf, LenCopy); Offset+=LenCopy; LenCopy = ByteCountCopy; if (LenCopy == 0) break; } } //-------------------------------------------------------------------------// BOOL WINAPI DllMain( HINSTANCE hinstDLL, // handle to DLL module DWORD fdwReason, // reason for calling function LPVOID lpvReserved) // reserved { if ( fdwReason == DLL_PROCESS_ATTACH ) // When initializing.... { // We don't need thread notifications for what we're doing. Thus, get // rid of them, thereby eliminating some of the overhead of this DLL, // which will end up in nearly every GUI process anyhow. DisableThreadLibraryCalls( hinstDLL ); char szRealWININET[ MAX_PATH ]; GetSystemDirectory( szRealWININET, sizeof(szRealWININET) ); strcat( szRealWININET, "\\ws2_32.DLL" ); //GetWindowsDirectory( szRealWININET, sizeof(szRealWININET) ); //strcat( szRealWININET, "\\ws2_32.DLL" ); HMODULE hModWininet = LoadLibrary( szRealWININET ); if ( 0 == hModWininet ) { MessageBox( 0, "Unable to load real ws2_32.DLL", 0, MB_OK ); return FALSE; } Log("Ok hooking winsock now\n"); InitBinaryLog(); // // Call GetProcAddress for each WININET function, and store the return // value into the appropriately named g_pfnXXX pointer // #define SPYMACRO( x ) \ g_pfn##x = GetProcAddress( hModWininet, #x ); #include "winsock2.inc" } else if ( fdwReason == DLL_PROCESS_DETACH ) // When shutting down... { } return TRUE; } extern "C" { /* Socket function prototypes */ SOCKET WSAAPI accept( IN SOCKET s, OUT struct sockaddr FAR * addr, IN OUT int FAR * addrlen ) { int retValue; Log("accept\n"); SPYCALL(g_pfnaccept, 3) sockaddr_in* pin = (sockaddr_in*)addr; Log("accept-> from %s:%d\n", inet_ntoa(pin->sin_addr), ntohs(pin->sin_port)); return retValue; } //-------------------------------------------------------------------------// int WSAAPI bind( IN SOCKET s, IN const struct sockaddr FAR * name, IN int namelen ) { int retValue; SPYCALL(g_pfnbind, 3) sockaddr_in* pin = (sockaddr_in*)name; Log("bind on from %s:%d\n", inet_ntoa(pin->sin_addr), ntohs(pin->sin_port)); return retValue; } //-------------------------------------------------------------------------// int WSAAPI closesocket( IN SOCKET s ) { int retValue; Log("closesocket\n"); SPYCALL(g_pfnclosesocket, 1) return retValue; } //-------------------------------------------------------------------------// int WSAAPI connect( IN SOCKET s, IN const struct sockaddr FAR * name, IN int namelen ) { int retValue; sockaddr_in* pin = (sockaddr_in*)name; Log("connect %s:%d\n", inet_ntoa(pin->sin_addr), ntohs(pin->sin_port)); SPYCALL(g_pfnconnect, 3) return retValue; } //-------------------------------------------------------------------------// int WSAAPI ioctlsocket( IN SOCKET s, IN long cmd, IN OUT u_long FAR * argp ) { int retValue; Log("ioctlsocket\n"); SPYCALL(g_pfnioctlsocket, 3) return retValue; } //-------------------------------------------------------------------------// int WSAAPI getpeername( IN SOCKET s, OUT struct sockaddr FAR * name, IN OUT int FAR * namelen ) { int retValue; Log("getpeername\n"); SPYCALL(g_pfngetpeername, 3) return retValue; } //-------------------------------------------------------------------------// int WSAAPI getsockname( IN SOCKET s, OUT struct sockaddr FAR * name, IN OUT int FAR * namelen ) { int retValue; Log("getsockname\n"); SPYCALL(g_pfngetsockname, 3) return retValue; } //-------------------------------------------------------------------------// int WSAAPI getsockopt( IN SOCKET s, IN int level, IN int optname, OUT char FAR * optval, IN OUT int FAR * optlen ) { int retValue; Log("getsockopt\n"); SPYCALL(g_pfngetsockopt, 5) return retValue; } //-------------------------------------------------------------------------// u_long WSAAPI htonl( IN u_long hostlong ) { int retValue; //Log("htonl\n"); SPYCALL(g_pfnhtonl, 1) return retValue; } //-------------------------------------------------------------------------// u_short WSAAPI htons( IN u_short hostshort ) { int retValue; //Log("htons\n"); SPYCALL(g_pfnhtons, 1) return retValue; } //-------------------------------------------------------------------------// unsigned long WSAAPI inet_addr( IN const char FAR * cp ) { int retValue; Log("inet_addr\n"); SPYCALL(g_pfninet_addr, 1) return retValue; } //-------------------------------------------------------------------------// char FAR * WSAAPI inet_ntoa( IN struct in_addr in ) { char* retValue; SPYCALL(g_pfninet_ntoa, 1) Log("inet_ntoa = %s\n", retValue); return retValue; } //-------------------------------------------------------------------------// int WSAAPI listen( IN SOCKET s, IN int backlog ) { int retValue; Log("listen\n"); SPYCALL(g_pfnlisten, 2) return retValue; } //-------------------------------------------------------------------------// u_long WSAAPI ntohl( IN u_long netlong ) { int retValue; //Log("ntohl\n"); SPYCALL(g_pfnntohl, 1) return retValue; } //-------------------------------------------------------------------------// u_short WSAAPI ntohs( IN u_short netshort ) { int retValue; //Log("ntohs\n"); SPYCALL(g_pfnntohs, 1) return retValue; } //-------------------------------------------------------------------------// int WSAAPI recv( IN SOCKET s, OUT char FAR * buf, IN int len, IN int flags ) { int retValue; Log("recv\n"); SPYCALL(g_pfnrecv, 4) PrintBlock((void*)buf, len); BinaryLogData(s, buf, len); return retValue; } //-------------------------------------------------------------------------// int WSAAPI recvfrom( IN SOCKET s, OUT char FAR * buf, IN int len, IN int flags, OUT struct sockaddr FAR * from, IN OUT int FAR * fromlen ) { int retValue; Log("recvfrom\n"); SPYCALL(g_pfnrecvfrom, 6) return retValue; } //-------------------------------------------------------------------------// int WSAAPI select( IN int nfds, IN OUT fd_set FAR * readfds, IN OUT fd_set FAR * writefds, IN OUT fd_set FAR *exceptfds, IN const struct timeval FAR * timeout ) { int retValue; Log("select\n"); SPYCALL(g_pfnselect, 5) return retValue; } //-------------------------------------------------------------------------// int WSAAPI send( IN SOCKET s, IN const char FAR * buf, IN int len, IN int flags ) { int retValue; Log("send\n"); SPYCALL(g_pfnsend, 4) PrintBlock((void*)buf, len); BinaryLogData(s, (PVOID)buf, len); return retValue; } //-------------------------------------------------------------------------// int WSAAPI sendto( IN SOCKET s, IN const char FAR * buf, IN int len, IN int flags, IN const struct sockaddr FAR * to, IN int tolen ) { int retValue; Log("sendto\n"); SPYCALL(g_pfnsendto, 6) return retValue; } //-------------------------------------------------------------------------// int WSAAPI setsockopt( IN SOCKET s, IN int level, IN int optname, IN const char FAR * optval, IN int optlen ) { int retValue; Log("setsockopt\n"); SPYCALL(g_pfnsetsockopt, 5) return retValue; } //-------------------------------------------------------------------------// int WSAAPI shutdown( IN SOCKET s, IN int how ) { int retValue; Log("shutdown\n"); SPYCALL(g_pfnshutdown, 2) return retValue; } //-------------------------------------------------------------------------// SOCKET WSAAPI socket( IN int af, IN int type, IN int protocol ) { int retValue; Log("socket\n"); SPYCALL(g_pfnsocket, 3) return retValue; } //-------------------------------------------------------------------------// /* Database function prototypes */ struct hostent FAR * WSAAPI gethostbyaddr( IN const char FAR * addr, IN int len, IN int type ) { hostent* retValue; Log("gethostbyaddr\n"); SPYCALL(g_pfngethostbyaddr, 3) return retValue; } //-------------------------------------------------------------------------// struct hostent FAR * WSAAPI gethostbyname( IN const char FAR * name ) { hostent* retValue; SPYCALL(g_pfngethostbyname, 1) Log("gethostbyname=%s\n", name); return retValue; } //-------------------------------------------------------------------------// int WSAAPI gethostname( OUT char FAR * name, IN int namelen ) { int retValue; SPYCALL(g_pfngethostname, 2) Log("gethostname -> %s\n", name); return retValue; } //-------------------------------------------------------------------------// struct servent FAR * WSAAPI getservbyport( IN int port, IN const char FAR * proto ) { servent* retValue; Log("getservbyport\n"); SPYCALL(g_pfngetservbyport, 2) return retValue; } //-------------------------------------------------------------------------// struct servent FAR * WSAAPI getservbyname( IN const char FAR * name, IN const char FAR * proto ) { servent* retValue; Log("getservbyname\n"); SPYCALL(g_pfngetservbyname, 2) return retValue; } //-------------------------------------------------------------------------// struct protoent FAR * WSAAPI getprotobynumber( IN int number ) { protoent* retValue; Log("getprotobynumber\n"); SPYCALL(g_pfngetprotobynumber, 1) return retValue; } //-------------------------------------------------------------------------// struct protoent FAR * WSAAPI getprotobyname( IN const char FAR * name ) { protoent* retValue; Log("getprotobyname\n"); SPYCALL(g_pfngetprotobyname, 1) return retValue; } //-------------------------------------------------------------------------// /* Microsoft Windows Extension function prototypes */ int WSAAPI WSAStartup( IN WORD wVersionRequested, OUT LPWSADATA lpWSAData ) { int retValue; Log("WSAStartup\n"); SPYCALL(g_pfnWSAStartup, 2) return retValue; } //-------------------------------------------------------------------------// int WSAAPI WSACleanup( void ) { int retValue; Log("WSACleanup\n"); SPYCALL(g_pfnWSACleanup, 0) return retValue; } //-------------------------------------------------------------------------// void WSAAPI WSASetLastError( IN int iError ) { int retValue; Log("WSASetLastError\n"); SPYCALL(g_pfnWSASetLastError, 1) //return retValue; } //-------------------------------------------------------------------------// int WSAAPI WSAGetLastError( void ) { int retValue; SPYCALL(g_pfnWSAGetLastError, 0) Log("WSAGetLastError=%d\n", retValue); return retValue; } //-------------------------------------------------------------------------// BOOL WSAAPI WSAIsBlocking( void ) { int retValue; Log("WSAIsBlocking\n"); SPYCALL(g_pfnWSAIsBlocking, 0) return retValue; } //-------------------------------------------------------------------------// int WSAAPI WSAUnhookBlockingHook( void ) { int retValue; Log("WSAUnhookBlockingHook\n"); SPYCALL(g_pfnWSAUnhookBlockingHook, 0) return retValue; } //-------------------------------------------------------------------------// FARPROC WSAAPI WSASetBlockingHook( IN FARPROC lpBlockFunc ) { FARPROC retValue; Log("WSASetBlockingHook\n"); SPYCALL(g_pfnWSASetBlockingHook, 1) return retValue; } //-------------------------------------------------------------------------// int WSAAPI WSACancelBlockingCall( void ) { int retValue; Log("WSACancelBlockingCall\n"); SPYCALL(g_pfnWSACancelBlockingCall, 0) return retValue; } //-------------------------------------------------------------------------// HANDLE WSAAPI WSAAsyncGetServByName( IN HWND hWnd, IN u_int wMsg, IN const char FAR * name, IN const char FAR * proto, OUT char FAR * buf, IN int buflen ) { HANDLE retValue; Log("WSAAsyncGetServByName\n"); SPYCALL(g_pfnWSAAsyncGetServByName, 6) return retValue; } //-------------------------------------------------------------------------// HANDLE WSAAPI WSAAsyncGetServByPort( IN HWND hWnd, IN u_int wMsg, IN int port, IN const char FAR * proto, OUT char FAR * buf, IN int buflen ) { HANDLE retValue; Log("WSAAsyncGetServByPort\n"); SPYCALL(g_pfnWSAAsyncGetServByPort, 6) return retValue; } //-------------------------------------------------------------------------// HANDLE WSAAPI WSAAsyncGetProtoByName( IN HWND hWnd, IN u_int wMsg, IN const char FAR * name, OUT char FAR * buf, IN int buflen ) { HANDLE retValue; Log("WSAAsyncGetProtoByName\n"); SPYCALL(g_pfnWSAAsyncGetProtoByName, 5) return retValue; } //-------------------------------------------------------------------------// HANDLE WSAAPI WSAAsyncGetProtoByNumber( IN HWND hWnd, IN u_int wMsg, IN int number, OUT char FAR * buf, IN int buflen ) { HANDLE retValue; Log("WSAAsyncGetProtoByNumber\n"); SPYCALL(g_pfnWSAAsyncGetProtoByNumber, 5) return retValue; } //-------------------------------------------------------------------------// HANDLE WSAAPI WSAAsyncGetHostByName( IN HWND hWnd, IN u_int wMsg, IN const char FAR * name, OUT char FAR * buf, IN int buflen ) { HANDLE retValue; SPYCALL(g_pfnWSAAsyncGetHostByName, 5) Log("WSAAsyncGetHostByName->%s\n", name); return retValue; } //-------------------------------------------------------------------------// HANDLE WSAAPI WSAAsyncGetHostByAddr( IN HWND hWnd, IN u_int wMsg, IN const char FAR * addr, IN int len, IN int type, OUT char FAR * buf, IN int buflen ) { HANDLE retValue; Log("WSAAsyncGetHostByAddr\n"); SPYCALL(g_pfnWSAAsyncGetHostByAddr, 7) return retValue; } //-------------------------------------------------------------------------// int WSAAPI WSACancelAsyncRequest( IN HANDLE hAsyncTaskHandle ) { int retValue; Log("WSACancelAsyncRequest\n"); SPYCALL(g_pfnWSACancelAsyncRequest, 1) return retValue; } //-------------------------------------------------------------------------// int WSAAPI WSAAsyncSelect( IN SOCKET s, IN HWND hWnd, IN u_int wMsg, IN long lEvent ) { int retValue; Log("WSAAsyncSelect\n"); SPYCALL(g_pfnWSAAsyncSelect, 4) return retValue; } //-------------------------------------------------------------------------// /* WinSock 2 API new function prototypes */ SOCKET WSAAPI WSAAccept( IN SOCKET s, OUT struct sockaddr FAR * addr, IN OUT LPINT addrlen, IN LPCONDITIONPROC lpfnCondition, IN DWORD_PTR dwCallbackData ) { int retValue; SPYCALL(g_pfnWSAAccept, 5) sockaddr_in* pin = (sockaddr_in*)addr; Log("WSAAccept-> from %s:%d\n", inet_ntoa(pin->sin_addr), ntohs(pin->sin_port)); return retValue; } //-------------------------------------------------------------------------// BOOL WSAAPI WSACloseEvent( IN WSAEVENT hEvent ) { int retValue; Log("WSACloseEvent\n"); SPYCALL(g_pfnWSACloseEvent, 1) return retValue; } //-------------------------------------------------------------------------// int WSAAPI WSAConnect( IN SOCKET s, IN const struct sockaddr FAR * name, IN int namelen, IN LPWSABUF lpCallerData, OUT LPWSABUF lpCalleeData, IN LPQOS lpSQOS, IN LPQOS lpGQOS ) { int retValue; sockaddr_in* pin = (sockaddr_in*)name; Log("WSAConnect %s:%d\n", inet_ntoa(pin->sin_addr), ntohs(pin->sin_port)); SPYCALL(g_pfnWSAConnect, 7) return retValue; } //-------------------------------------------------------------------------// WSAEVENT WSAAPI WSACreateEvent( void ) { WSAEVENT retValue; Log("WSACreateEvent\n"); SPYCALL(g_pfnWSACreateEvent, 1) return retValue; } //-------------------------------------------------------------------------// int WSAAPI WSADuplicateSocketA( IN SOCKET s, IN DWORD dwProcessId, OUT LPWSAPROTOCOL_INFOA lpProtocolInfo ) { int retValue; SPYCALL(g_pfnWSADuplicateSocketA, 3 ) return retValue; } //-------------------------------------------------------------------------// int WSAAPI WSADuplicateSocketW( IN SOCKET s, IN DWORD dwProcessId, OUT LPWSAPROTOCOL_INFOW lpProtocolInfo ) { int retValue; Log("WSADuplicateSocketW\n"); SPYCALL(g_pfnWSADuplicateSocketW, 3) return retValue; } //-------------------------------------------------------------------------// int WSAAPI WSAEnumNetworkEvents( IN SOCKET s, IN WSAEVENT hEventObject, OUT LPWSANETWORKEVENTS lpNetworkEvents ) { int retValue; Log("WSAEnumNetworkEvents\n"); SPYCALL(g_pfnWSAEnumNetworkEvents, 3) return retValue; } //-------------------------------------------------------------------------// int WSAAPI WSAEnumProtocolsA( IN LPINT lpiProtocols, OUT LPWSAPROTOCOL_INFOA lpProtocolBuffer, IN OUT LPDWORD lpdwBufferLength ) { int retValue; SPYCALL(g_pfnWSAEnumProtocolsA, 3 ) return retValue; } //-------------------------------------------------------------------------// int WSAAPI WSAEnumProtocolsW( IN LPINT lpiProtocols, OUT LPWSAPROTOCOL_INFOW lpProtocolBuffer, IN OUT LPDWORD lpdwBufferLength ) { int retValue; Log("WSAEnumProtocolsW\n"); SPYCALL(g_pfnWSAEnumProtocolsW, 3) return retValue; } //-------------------------------------------------------------------------// int WSAAPI WSAEventSelect( IN SOCKET s, IN WSAEVENT hEventObject, IN long lNetworkEvents ) { int retValue; Log("WSAEventSelect\n"); SPYCALL(g_pfnWSAEventSelect, 3) return retValue; } //-------------------------------------------------------------------------// BOOL WSAAPI WSAGetOverlappedResult( IN SOCKET s, IN LPWSAOVERLAPPED lpOverlapped, OUT LPDWORD lpcbTransfer, IN BOOL fWait, OUT LPDWORD lpdwFlags ) { int retValue; Log("WSAGetOverlappedResult\n"); SPYCALL(g_pfnWSAGetOverlappedResult, 5) return retValue; } //-------------------------------------------------------------------------// BOOL WSAAPI WSAGetQOSByName( IN SOCKET s, IN LPWSABUF lpQOSName, OUT LPQOS lpQOS ) { int retValue; Log("WSAGetQOSByName\n"); SPYCALL(g_pfnWSAGetQOSByName, 3) return retValue; } //-------------------------------------------------------------------------// int WSAAPI WSAHtonl( IN SOCKET s, IN u_long hostlong, OUT u_long FAR * lpnetlong ) { int retValue; Log("WSAHtonl\n"); SPYCALL(g_pfnWSAHtonl, 3) return retValue; } //-------------------------------------------------------------------------// int WSAAPI WSAHtons( IN SOCKET s, IN u_short hostshort, OUT u_short FAR * lpnetshort ) { int retValue; Log("WSAHtons\n"); SPYCALL(g_pfnWSAHtons, 3) return retValue; } //-------------------------------------------------------------------------// int WSAAPI WSAIoctl( IN SOCKET s, IN DWORD dwIoControlCode, IN LPVOID lpvInBuffer, IN DWORD cbInBuffer, OUT LPVOID lpvOutBuffer, IN DWORD cbOutBuffer, OUT LPDWORD lpcbBytesReturned, IN LPWSAOVERLAPPED lpOverlapped, IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ) { int retValue; Log("WSAIoctl\n"); SPYCALL(g_pfnWSAIoctl, 9) return retValue; } //-------------------------------------------------------------------------// SOCKET WSAAPI WSAJoinLeaf( IN SOCKET s, IN const struct sockaddr FAR * name, IN int namelen, IN LPWSABUF lpCallerData, OUT LPWSABUF lpCalleeData, IN LPQOS lpSQOS, IN LPQOS lpGQOS, IN DWORD dwFlags ) { int retValue; Log("WSAJoinLeaf\n"); SPYCALL(g_pfnWSAJoinLeaf, 8) return retValue; } //-------------------------------------------------------------------------// int WSAAPI WSANtohl( IN SOCKET s, IN u_long netlong, OUT u_long FAR * lphostlong ) { int retValue; Log("WSANtohl\n"); SPYCALL(g_pfnWSANtohl, 3) return retValue; } //-------------------------------------------------------------------------// int WSAAPI WSANtohs( IN SOCKET s, IN u_short netshort, OUT u_short FAR * lphostshort ) { int retValue; Log("WSANtohs\n"); SPYCALL(g_pfnWSANtohs, 3) return retValue; } //-------------------------------------------------------------------------// int WSAAPI WSARecv( IN SOCKET s, IN OUT LPWSABUF lpBuffers, IN DWORD dwBufferCount, OUT LPDWORD lpNumberOfBytesRecvd, IN OUT LPDWORD lpFlags, IN LPWSAOVERLAPPED lpOverlapped, IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ) { int retValue; Log("WSARecv\n"); SPYCALL(g_pfnWSARecv, 7) PrintBuffers(dwBufferCount, lpBuffers, *lpNumberOfBytesRecvd); BinarLogBuffers(s, dwBufferCount, lpBuffers, *lpNumberOfBytesRecvd); return retValue; } //-------------------------------------------------------------------------// int WSAAPI WSARecvDisconnect( IN SOCKET s, OUT LPWSABUF lpInboundDisconnectData ) { int retValue; Log("WSARecvDisconnect\n"); SPYCALL(g_pfnWSARecvDisconnect, 2) return retValue; } //-------------------------------------------------------------------------// int WSAAPI WSARecvFrom( IN SOCKET s, IN OUT LPWSABUF lpBuffers, IN DWORD dwBufferCount, OUT LPDWORD lpNumberOfBytesRecvd, IN OUT LPDWORD lpFlags, OUT struct sockaddr FAR * lpFrom, IN OUT LPINT lpFromlen, IN LPWSAOVERLAPPED lpOverlapped, IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ) { int retValue; Log("WSARecvFrom\n"); SPYCALL(g_pfnWSARecvFrom, 9) return retValue; } //-------------------------------------------------------------------------// BOOL WSAAPI WSAResetEvent( IN WSAEVENT hEvent ) { int retValue; Log("WSAResetEvent\n"); SPYCALL(g_pfnWSAResetEvent, 1) return retValue; } //-------------------------------------------------------------------------// int WSAAPI WSASend( IN SOCKET s, IN LPWSABUF lpBuffers, IN DWORD dwBufferCount, OUT LPDWORD lpNumberOfBytesSent, IN DWORD dwFlags, IN LPWSAOVERLAPPED lpOverlapped, IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ) { int retValue; Log("WSASend\n"); SPYCALL(g_pfnWSASend, 7) PrintBuffers(dwBufferCount, lpBuffers, *lpNumberOfBytesSent); BinarLogBuffers(s, dwBufferCount, lpBuffers, *lpNumberOfBytesSent); return retValue; } //-------------------------------------------------------------------------// int WSAAPI WSASendDisconnect( IN SOCKET s, IN LPWSABUF lpOutboundDisconnectData ) { int retValue; Log("WSASendDisconnect\n"); SPYCALL(g_pfnWSASendDisconnect, 2) return retValue; } //-------------------------------------------------------------------------// int WSAAPI WSASendTo( IN SOCKET s, IN LPWSABUF lpBuffers, IN DWORD dwBufferCount, OUT LPDWORD lpNumberOfBytesSent, IN DWORD dwFlags, IN const struct sockaddr FAR * lpTo, IN int iTolen, IN LPWSAOVERLAPPED lpOverlapped, IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ) { int retValue; Log("WSASendTo\n"); SPYCALL(g_pfnWSASendTo, 9) return retValue; } //-------------------------------------------------------------------------// BOOL WSAAPI WSASetEvent( IN WSAEVENT hEvent ) { int retValue; Log("WSASetEvent\n"); SPYCALL(g_pfnWSASetEvent, 1) return retValue; } //-------------------------------------------------------------------------// SOCKET WSAAPI WSASocketA( IN int af, IN int type, IN int protocol, IN LPWSAPROTOCOL_INFOA lpProtocolInfo, IN GROUP g, IN DWORD dwFlags ) { int retValue; SPYCALL(g_pfnWSASocketA, 6 ) return retValue; } //-------------------------------------------------------------------------// SOCKET WSAAPI WSASocketW( IN int af, IN int type, IN int protocol, IN LPWSAPROTOCOL_INFOW lpProtocolInfo, IN GROUP g, IN DWORD dwFlags ) { int retValue; Log("WSASocketW\n"); SPYCALL(g_pfnWSASocketW, 6) return retValue; } //-------------------------------------------------------------------------// DWORD WSAAPI WSAWaitForMultipleEvents( IN DWORD cEvents, IN const WSAEVENT FAR * lphEvents, IN BOOL fWaitAll, IN DWORD dwTimeout, IN BOOL fAlertable ) { int retValue; Log("WSAWaitForMultipleEvents\n"); SPYCALL(g_pfnWSAWaitForMultipleEvents, 5) return retValue; } //-------------------------------------------------------------------------// INT WSAAPI WSAAddressToStringA( IN LPSOCKADDR lpsaAddress, IN DWORD dwAddressLength, IN LPWSAPROTOCOL_INFOA lpProtocolInfo, IN OUT LPSTR lpszAddressString, IN OUT LPDWORD lpdwAddressStringLength ) { int retValue; SPYCALL(g_pfnWSAAddressToStringA, 5 ) return retValue; } //-------------------------------------------------------------------------// INT WSAAPI WSAAddressToStringW( IN LPSOCKADDR lpsaAddress, IN DWORD dwAddressLength, IN LPWSAPROTOCOL_INFOW lpProtocolInfo, IN OUT LPWSTR lpszAddressString, IN OUT LPDWORD lpdwAddressStringLength ) { int retValue; Log("WSAAddressToStringW\n"); SPYCALL(g_pfnWSAAddressToStringW, 5) return retValue; } //-------------------------------------------------------------------------// INT WSAAPI WSAStringToAddressA( IN LPSTR AddressString, IN INT AddressFamily, IN LPWSAPROTOCOL_INFOA lpProtocolInfo, OUT LPSOCKADDR lpAddress, IN OUT LPINT lpAddressLength ) { int retValue; Log("WSAStringToAddressA %d\n", AddressString); SPYCALL(g_pfnWSAStringToAddressA, 5 ) return retValue; } //-------------------------------------------------------------------------// INT WSAAPI WSAStringToAddressW( IN LPWSTR AddressString, IN INT AddressFamily, IN LPWSAPROTOCOL_INFOW lpProtocolInfo, OUT LPSOCKADDR lpAddress, IN OUT LPINT lpAddressLength ) { int retValue; Log("WSAStringToAddressW\n"); SPYCALL(g_pfnWSAStringToAddressW, 5) return retValue; } //-------------------------------------------------------------------------// /* Registration and Name Resolution API functions */ INT WSAAPI WSALookupServiceBeginA( IN LPWSAQUERYSETA lpqsRestrictions, IN DWORD dwControlFlags, OUT LPHANDLE lphLookup ) { int retValue; SPYCALL(g_pfnWSALookupServiceBeginA, 3 ) return retValue; } //-------------------------------------------------------------------------// INT WSAAPI WSALookupServiceBeginW( IN LPWSAQUERYSETW lpqsRestrictions, IN DWORD dwControlFlags, OUT LPHANDLE lphLookup ) { int retValue; Log("WSALookupServiceBeginW\n"); SPYCALL(g_pfnWSALookupServiceBeginW, 3) return retValue; } //-------------------------------------------------------------------------// INT WSAAPI WSALookupServiceNextA( IN HANDLE hLookup, IN DWORD dwControlFlags, IN OUT LPDWORD lpdwBufferLength, OUT LPWSAQUERYSETA lpqsResults ) { int retValue; SPYCALL(g_pfnWSALookupServiceNextA, 4 ) return retValue; } //-------------------------------------------------------------------------// INT WSAAPI WSALookupServiceNextW( IN HANDLE hLookup, IN DWORD dwControlFlags, IN OUT LPDWORD lpdwBufferLength, OUT LPWSAQUERYSETW lpqsResults ) { int retValue; Log("WSALookupServiceNextW\n"); SPYCALL(g_pfnWSALookupServiceNextW, 4) return retValue; } //-------------------------------------------------------------------------// INT WSAAPI WSANSPIoctl( IN HANDLE hLookup, IN DWORD dwControlCode, IN LPVOID lpvInBuffer, IN DWORD cbInBuffer, OUT LPVOID lpvOutBuffer, IN DWORD cbOutBuffer, OUT LPDWORD lpcbBytesReturned, IN LPWSACOMPLETION lpCompletion ) { int retValue; Log("WSANSPIoctl\n"); SPYCALL(g_pfnWSANSPIoctl, 8) return retValue; } //-------------------------------------------------------------------------// INT WSAAPI WSALookupServiceEnd( IN HANDLE hLookup ) { int retValue; Log("WSALookupServiceEnd\n"); SPYCALL(g_pfnWSALookupServiceEnd, 1) return retValue; } //-------------------------------------------------------------------------// INT WSAAPI WSAInstallServiceClassA( IN LPWSASERVICECLASSINFOA lpServiceClassInfo ) { int retValue; SPYCALL(g_pfnWSAInstallServiceClassA, 1 ) return retValue; } //-------------------------------------------------------------------------// INT WSAAPI WSAInstallServiceClassW( IN LPWSASERVICECLASSINFOW lpServiceClassInfo ) { int retValue; Log("WSAInstallServiceClassW\n"); SPYCALL(g_pfnWSAInstallServiceClassW, 1) return retValue; } //-------------------------------------------------------------------------// INT WSAAPI WSARemoveServiceClass( IN LPGUID lpServiceClassId ) { int retValue; Log("WSARemoveServiceClass\n"); SPYCALL(g_pfnWSARemoveServiceClass, 1) return retValue; } //-------------------------------------------------------------------------// INT WSAAPI WSAGetServiceClassInfoA( IN LPGUID lpProviderId, IN LPGUID lpServiceClassId, IN OUT LPDWORD lpdwBufSize, OUT LPWSASERVICECLASSINFOA lpServiceClassInfo ) { int retValue; SPYCALL(g_pfnWSAGetServiceClassInfoA, 4 ) return retValue; } //-------------------------------------------------------------------------// INT WSAAPI WSAGetServiceClassInfoW( IN LPGUID lpProviderId, IN LPGUID lpServiceClassId, IN OUT LPDWORD lpdwBufSize, OUT LPWSASERVICECLASSINFOW lpServiceClassInfo ) { int retValue; Log("WSAGetServiceClassInfoW\n"); SPYCALL(g_pfnWSAGetServiceClassInfoW, 4) return retValue; } //-------------------------------------------------------------------------// INT WSAAPI WSAEnumNameSpaceProvidersA( IN OUT LPDWORD lpdwBufferLength, OUT LPWSANAMESPACE_INFOA lpnspBuffer ) { int retValue; SPYCALL(g_pfnWSAEnumNameSpaceProvidersA, 2 ) return retValue; } //-------------------------------------------------------------------------// INT WSAAPI WSAEnumNameSpaceProvidersW( IN OUT LPDWORD lpdwBufferLength, OUT LPWSANAMESPACE_INFOW lpnspBuffer ) { int retValue; Log("WSAEnumNameSpaceProvidersW\n"); SPYCALL(g_pfnWSAEnumNameSpaceProvidersW, 2) return retValue; } //-------------------------------------------------------------------------// INT WSAAPI WSAGetServiceClassNameByClassIdA( IN LPGUID lpServiceClassId, OUT LPSTR lpszServiceClassName, IN OUT LPDWORD lpdwBufferLength ) { int retValue; SPYCALL(g_pfnWSAGetServiceClassNameByClassIdA, 3 ) return retValue; } //-------------------------------------------------------------------------// INT WSAAPI WSAGetServiceClassNameByClassIdW( IN LPGUID lpServiceClassId, OUT LPWSTR lpszServiceClassName, IN OUT LPDWORD lpdwBufferLength ) { int retValue; Log("WSAGetServiceClassNameByClassIdW\n"); SPYCALL(g_pfnWSAGetServiceClassNameByClassIdW, 3) return retValue; } //-------------------------------------------------------------------------// INT WSAAPI WSASetServiceA( IN LPWSAQUERYSETA lpqsRegInfo, IN WSAESETSERVICEOP essoperation, IN DWORD dwControlFlags ) { int retValue; SPYCALL(g_pfnWSASetServiceA, 3 ) return retValue; } //-------------------------------------------------------------------------// INT WSAAPI WSASetServiceW( IN LPWSAQUERYSETW lpqsRegInfo, IN WSAESETSERVICEOP essoperation, IN DWORD dwControlFlags ) { int retValue; Log("WSASetServiceW\n"); SPYCALL(g_pfnWSASetServiceW, 3) return retValue; } //-------------------------------------------------------------------------// INT WSAAPI WSAProviderConfigChange( IN OUT LPHANDLE lpNotificationHandle, IN LPWSAOVERLAPPED lpOverlapped, IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ) { int retValue; Log("WSAProviderConfigChange\n"); SPYCALL(g_pfnWSAProviderConfigChange, 3) return retValue; } }