/* 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. */ #include "stdafx.h" #include "Judgestl.h" #include #include #include /** Got this from ws2_32.dll export 87 49 000119B1 WSCDeinstallProvider 88 4A 0000EE41 WSCEnableNSProvider 89 4B 00007761 WSCEnumProtocols 90 4C 00008A27 WSCGetProviderPath 91 4D 0000F135 WSCInstallNameSpace 92 4E 0001164D WSCInstallProvider 93 4F 0000F301 WSCUnInstallNameSpace 94 50 00011279 WSCUpdateProvider 95 51 0000F001 WSCWriteNameSpaceOrder 96 52 00011519 WSCWriteProviderOrder //-------------------------------------------------------------------------// // Cut and paste following to winsock2.inc //-------------------------------------------------------------------------// SPYMACRO( WSCDeinstallProvider) SPYMACRO( WSCEnableNSProvider) SPYMACRO( WSCEnumProtocols) SPYMACRO( WSCGetProviderPath) SPYMACRO( WSCInstallNameSpace) SPYMACRO( WSCInstallProvider) SPYMACRO( WSCUnInstallNameSpace) SPYMACRO( WSCUpdateProvider) SPYMACRO( WSCWriteNameSpaceOrder) SPYMACRO( WSCWriteProviderOrder) */ //-------------------------------------------------------------------------// extern FARPROC g_pfnWSCDeinstallProvider; extern FARPROC g_pfnWSCEnableNSProvider; extern FARPROC g_pfnWSCEnumProtocols; extern FARPROC g_pfnWSCGetProviderPath; extern FARPROC g_pfnWSCInstallNameSpace; extern FARPROC g_pfnWSCInstallProvider; extern FARPROC g_pfnWSCUnInstallNameSpace; extern FARPROC g_pfnWSCUpdateProvider; extern FARPROC g_pfnWSCWriteNameSpaceOrder; extern FARPROC g_pfnWSCWriteProviderOrder; extern FARPROC g_pfn__WSAFDIsSet; //-------------------------------------------------------------------------// #define SPYCALL( pfn, cArgs ) \ __asm lea edi, [esp - cArgs*4] \ __asm lea esi, [ebp+8] \ __asm mov ecx, cArgs \ __asm rep movsd \ __asm sub esp, cArgs * 4 \ __asm call dword ptr [pfn] \ __asm mov [retValue], EAX //-------------------------------------------------------------------------// extern "C" { int WSPAPI WSCDeinstallProvider( IN LPGUID lpProviderId, OUT LPINT lpErrno ) { int retValue; SPYCALL(g_pfnWSCDeinstallProvider, 2) return retValue; } //-------------------------------------------------------------------------// INT WSPAPI WSCEnableNSProvider ( IN LPGUID lpProviderId, IN BOOL fEnable ) { INT retValue; SPYCALL(g_pfnWSCEnableNSProvider, 2) return retValue; } //-------------------------------------------------------------------------// int WSPAPI WSCEnumProtocols( IN LPINT lpiProtocols, OUT LPWSAPROTOCOL_INFOW lpProtocolBuffer, IN OUT LPDWORD lpdwBufferLength, OUT LPINT lpErrno ) { int retValue; SPYCALL(g_pfnWSCEnumProtocols, 4) return retValue; } //-------------------------------------------------------------------------// int WSPAPI WSCGetProviderPath( IN LPGUID lpProviderId, OUT WCHAR FAR * lpszProviderDllPath, IN OUT LPINT lpProviderDllPathLen, OUT LPINT lpErrno ) { int retValue; SPYCALL(g_pfnWSCGetProviderPath, 4) return retValue; } //-------------------------------------------------------------------------// INT WSPAPI WSCInstallNameSpace ( IN LPWSTR lpszIdentifier, IN LPWSTR lpszPathName, IN DWORD dwNameSpace, IN DWORD dwVersion, IN LPGUID lpProviderId ) { INT retValue; SPYCALL(g_pfnWSCInstallNameSpace, 5) return retValue; } //-------------------------------------------------------------------------// int WSPAPI WSCInstallProvider( IN LPGUID lpProviderId, IN const WCHAR FAR * lpszProviderDllPath, IN const LPWSAPROTOCOL_INFOW lpProtocolInfoList, IN DWORD dwNumberOfEntries, OUT LPINT lpErrno ) { int retValue; SPYCALL(g_pfnWSCInstallProvider, 5) return retValue; } //-------------------------------------------------------------------------// INT WSPAPI WSCUnInstallNameSpace ( IN LPGUID lpProviderId ) { INT retValue; SPYCALL(g_pfnWSCUnInstallNameSpace, 1) return retValue; } //-------------------------------------------------------------------------// int WSPAPI WSCUpdateProvider( IN LPGUID lpProviderId, IN const WCHAR FAR * lpszProviderDllPath, IN const LPWSAPROTOCOL_INFOW lpProtocolInfoList, IN DWORD dwNumberOfEntries, OUT LPINT lpErrno ) { INT retValue; SPYCALL(g_pfnWSCUpdateProvider, 5) return retValue; } //-------------------------------------------------------------------------// int WSPAPI WSCWriteNameSpaceOrder ( IN LPGUID lpProviderId, IN DWORD dwNumberOfEntries ) { INT retValue; SPYCALL(g_pfnWSCWriteNameSpaceOrder, 2) return retValue; } //-------------------------------------------------------------------------// int WSPAPI WSCWriteProviderOrder ( IN LPDWORD lpwdCatalogEntryId, IN DWORD dwNumberOfEntries ) { INT retValue; SPYCALL(g_pfnWSCWriteProviderOrder, 2) return retValue; } //-------------------------------------------------------------------------// int WSAAPI __WSAFDIsSet(SOCKET s, fd_set FAR *fds) { int retValue; SPYCALL(g_pfn__WSAFDIsSet, 2) return retValue; } }