library ws2_32; // ============================================================================== // DllHijacker By pathletboy // ============================================================================== uses Windows,SysUtils; type TSockProc = function(s: Pointer; var Buf; len, flags: Integer) : Integer; stdcall; {$R *.res} var ModHandle: Cardinal; POldFreeAddrInfoW: Pointer; POldGetAddrInfoW: Pointer; POldGetNameInfoW: Pointer; POldWEP: Pointer; POldWPUCompleteOverlappedRequest: Pointer; POldWSAAccept: Pointer; POldWSAAddressToStringA: Pointer; POldWSAAddressToStringW: Pointer; POldWSAAsyncGetHostByAddr: Pointer; POldWSAAsyncGetHostByName: Pointer; POldWSAAsyncGetProtoByName: Pointer; POldWSAAsyncGetProtoByNumber: Pointer; POldWSAAsyncGetServByName: Pointer; POldWSAAsyncGetServByPort: Pointer; POldWSAAsyncSelect: Pointer; POldWSACancelAsyncRequest: Pointer; POldWSACancelBlockingCall: Pointer; POldWSACleanup: Pointer; POldWSACloseEvent: Pointer; POldWSAConnect: Pointer; POldWSACreateEvent: Pointer; POldWSADuplicateSocketA: Pointer; POldWSADuplicateSocketW: Pointer; POldWSAEnumNameSpaceProvidersA: Pointer; POldWSAEnumNameSpaceProvidersW: Pointer; POldWSAEnumNetworkEvents: Pointer; POldWSAEnumProtocolsA: Pointer; POldWSAEnumProtocolsW: Pointer; POldWSAEventSelect: Pointer; POldWSAGetLastError: Pointer; POldWSAGetOverlappedResult: Pointer; POldWSAGetQOSByName: Pointer; POldWSAGetServiceClassInfoA: Pointer; POldWSAGetServiceClassInfoW: Pointer; POldWSAGetServiceClassNameByClassIdA: Pointer; POldWSAGetServiceClassNameByClassIdW: Pointer; POldWSAHtonl: Pointer; POldWSAHtons: Pointer; POldWSAInstallServiceClassA: Pointer; POldWSAInstallServiceClassW: Pointer; POldWSAIoctl: Pointer; POldWSAIsBlocking: Pointer; POldWSAJoinLeaf: Pointer; POldWSALookupServiceBeginA: Pointer; POldWSALookupServiceBeginW: Pointer; POldWSALookupServiceEnd: Pointer; POldWSALookupServiceNextA: Pointer; POldWSALookupServiceNextW: Pointer; POldWSANSPIoctl: Pointer; POldWSANtohl: Pointer; POldWSANtohs: Pointer; POldWSAProviderConfigChange: Pointer; POldWSARecv: Pointer; POldWSARecvDisconnect: Pointer; POldWSARecvFrom: Pointer; POldWSARemoveServiceClass: Pointer; POldWSAResetEvent: Pointer; POldWSASend: Pointer; POldWSASendDisconnect: Pointer; POldWSASendTo: Pointer; POldWSASetBlockingHook: Pointer; POldWSASetEvent: Pointer; POldWSASetLastError: Pointer; POldWSASetServiceA: Pointer; POldWSASetServiceW: Pointer; POldWSASocketA: Pointer; POldWSASocketW: Pointer; POldWSAStartup: Pointer; POldWSAStringToAddressA: Pointer; POldWSAStringToAddressW: Pointer; POldWSAUnhookBlockingHook: Pointer; POldWSAWaitForMultipleEvents: Pointer; POldWSApSetPostRoutine: Pointer; POldWSCDeinstallProvider: Pointer; POldWSCEnableNSProvider: Pointer; POldWSCEnumProtocols: Pointer; POldWSCGetProviderPath: Pointer; POldWSCInstallNameSpace: Pointer; POldWSCInstallProvider: Pointer; POldWSCUnInstallNameSpace: Pointer; POldWSCUpdateProvider: Pointer; POldWSCWriteNameSpaceOrder: Pointer; POldWSCWriteProviderOrder: Pointer; POld__WSAFDIsSet: Pointer; POldaccept: Pointer; POldbind: Pointer; POldclosesocket: Pointer; POldconnect: Pointer; POldfreeaddrinfo: Pointer; POldgetaddrinfo: Pointer; POldgethostbyaddr: Pointer; POldgethostbyname: Pointer; POldgethostname: Pointer; POldgetnameinfo: Pointer; POldgetpeername: Pointer; POldgetprotobyname: Pointer; POldgetprotobynumber: Pointer; POldgetservbyname: Pointer; POldgetservbyport: Pointer; POldgetsockname: Pointer; POldgetsockopt: Pointer; POldhtonl: Pointer; POldhtons: Pointer; POldinet_addr: Pointer; POldinet_ntoa: Pointer; POldioctlsocket: Pointer; POldlisten: Pointer; POldntohl: Pointer; POldntohs: Pointer; POldrecv: Pointer; POldrecvfrom: Pointer; POldselect: Pointer; POldsend: Pointer; POldsendto: Pointer; POldsetsockopt: Pointer; POldshutdown: Pointer; POldsocket: Pointer; // pScoket:Pointer; cByte:Cardinal; iLen,iFlag:Integer; bRecv:Boolean; pwc:PWideChar; OldRecv: TSockProc; // 原来的API地址 sTitile,sCaption:string; procedure FreeAddrInfoW; asm jmp POldFreeAddrInfoW end; procedure GetAddrInfoW; asm jmp POldGetAddrInfoW end; procedure GetNameInfoW; asm jmp POldGetNameInfoW end; procedure WEP; asm jmp POldWEP end; procedure WPUCompleteOverlappedRequest; asm jmp POldWPUCompleteOverlappedRequest end; procedure WSAAccept; asm jmp POldWSAAccept end; procedure WSAAddressToStringA; asm jmp POldWSAAddressToStringA end; procedure WSAAddressToStringW; asm jmp POldWSAAddressToStringW end; procedure WSAAsyncGetHostByAddr; asm jmp POldWSAAsyncGetHostByAddr end; procedure WSAAsyncGetHostByName; asm jmp POldWSAAsyncGetHostByName end; procedure WSAAsyncGetProtoByName; asm jmp POldWSAAsyncGetProtoByName end; procedure WSAAsyncGetProtoByNumber; asm jmp POldWSAAsyncGetProtoByNumber end; procedure WSAAsyncGetServByName; asm jmp POldWSAAsyncGetServByName end; procedure WSAAsyncGetServByPort; asm jmp POldWSAAsyncGetServByPort end; procedure WSAAsyncSelect; asm jmp POldWSAAsyncSelect end; procedure WSACancelAsyncRequest; asm jmp POldWSACancelAsyncRequest end; procedure WSACancelBlockingCall; asm jmp POldWSACancelBlockingCall end; procedure WSACleanup; asm jmp POldWSACleanup end; procedure WSACloseEvent; asm jmp POldWSACloseEvent end; procedure WSAConnect; asm jmp POldWSAConnect end; procedure WSACreateEvent; asm jmp POldWSACreateEvent end; procedure WSADuplicateSocketA; asm jmp POldWSADuplicateSocketA end; procedure WSADuplicateSocketW; asm jmp POldWSADuplicateSocketW end; procedure WSAEnumNameSpaceProvidersA; asm jmp POldWSAEnumNameSpaceProvidersA end; procedure WSAEnumNameSpaceProvidersW; asm jmp POldWSAEnumNameSpaceProvidersW end; procedure WSAEnumNetworkEvents; asm jmp POldWSAEnumNetworkEvents end; procedure WSAEnumProtocolsA; asm jmp POldWSAEnumProtocolsA end; procedure WSAEnumProtocolsW; asm jmp POldWSAEnumProtocolsW end; procedure WSAEventSelect; asm jmp POldWSAEventSelect end; procedure WSAGetLastError; asm jmp POldWSAGetLastError end; procedure WSAGetOverlappedResult; asm jmp POldWSAGetOverlappedResult end; procedure WSAGetQOSByName; asm jmp POldWSAGetQOSByName end; procedure WSAGetServiceClassInfoA; asm jmp POldWSAGetServiceClassInfoA end; procedure WSAGetServiceClassInfoW; asm jmp POldWSAGetServiceClassInfoW end; procedure WSAGetServiceClassNameByClassIdA; asm jmp POldWSAGetServiceClassNameByClassIdA end; procedure WSAGetServiceClassNameByClassIdW; asm jmp POldWSAGetServiceClassNameByClassIdW end; procedure WSAHtonl; asm jmp POldWSAHtonl end; procedure WSAHtons; asm jmp POldWSAHtons end; procedure WSAInstallServiceClassA; asm jmp POldWSAInstallServiceClassA end; procedure WSAInstallServiceClassW; asm jmp POldWSAInstallServiceClassW end; procedure WSAIoctl; asm jmp POldWSAIoctl end; procedure WSAIsBlocking; asm jmp POldWSAIsBlocking end; procedure WSAJoinLeaf; asm jmp POldWSAJoinLeaf end; procedure WSALookupServiceBeginA; asm jmp POldWSALookupServiceBeginA end; procedure WSALookupServiceBeginW; asm jmp POldWSALookupServiceBeginW end; procedure WSALookupServiceEnd; asm jmp POldWSALookupServiceEnd end; procedure WSALookupServiceNextA; asm jmp POldWSALookupServiceNextA end; procedure WSALookupServiceNextW; asm jmp POldWSALookupServiceNextW end; procedure WSANSPIoctl; asm jmp POldWSANSPIoctl end; procedure WSANtohl; asm jmp POldWSANtohl end; procedure WSANtohs; asm jmp POldWSANtohs end; procedure WSAProviderConfigChange; asm jmp POldWSAProviderConfigChange end; procedure WSARecv; asm jmp POldWSARecv end; procedure WSARecvDisconnect; asm jmp POldWSARecvDisconnect end; procedure WSARecvFrom; asm jmp POldWSARecvFrom end; procedure WSARemoveServiceClass; asm jmp POldWSARemoveServiceClass end; procedure WSAResetEvent; asm jmp POldWSAResetEvent end; procedure WSASend; asm jmp POldWSASend end; procedure WSASendDisconnect; asm jmp POldWSASendDisconnect end; procedure WSASendTo; asm jmp POldWSASendTo end; procedure WSASetBlockingHook; asm jmp POldWSASetBlockingHook end; procedure WSASetEvent; asm jmp POldWSASetEvent end; procedure WSASetLastError; asm jmp POldWSASetLastError end; procedure WSASetServiceA; asm jmp POldWSASetServiceA end; procedure WSASetServiceW; asm jmp POldWSASetServiceW end; procedure WSASocketA; asm jmp POldWSASocketA end; procedure WSASocketW; asm jmp POldWSASocketW end; procedure WSAStartup; asm jmp POldWSAStartup end; procedure WSAStringToAddressA; asm jmp POldWSAStringToAddressA end; procedure WSAStringToAddressW; asm jmp POldWSAStringToAddressW end; procedure WSAUnhookBlockingHook; asm jmp POldWSAUnhookBlockingHook end; procedure WSAWaitForMultipleEvents; asm jmp POldWSAWaitForMultipleEvents end; procedure WSApSetPostRoutine; asm jmp POldWSApSetPostRoutine end; procedure WSCDeinstallProvider; asm jmp POldWSCDeinstallProvider end; procedure WSCEnableNSProvider; asm jmp POldWSCEnableNSProvider end; procedure WSCEnumProtocols; asm jmp POldWSCEnumProtocols end; procedure WSCGetProviderPath; asm jmp POldWSCGetProviderPath end; procedure WSCInstallNameSpace; asm jmp POldWSCInstallNameSpace end; procedure WSCInstallProvider; asm jmp POldWSCInstallProvider end; procedure WSCUnInstallNameSpace; asm jmp POldWSCUnInstallNameSpace end; procedure WSCUpdateProvider; asm jmp POldWSCUpdateProvider end; procedure WSCWriteNameSpaceOrder; asm jmp POldWSCWriteNameSpaceOrder end; procedure WSCWriteProviderOrder; asm jmp POldWSCWriteProviderOrder end; procedure __WSAFDIsSet; asm jmp POld__WSAFDIsSet end; procedure accept; asm jmp POldaccept end; procedure bind; asm jmp POldbind end; procedure closesocket; asm jmp POldclosesocket end; procedure connect; asm jmp POldconnect end; procedure freeaddrinfo; asm jmp POldfreeaddrinfo end; procedure getaddrinfo; asm jmp POldgetaddrinfo end; procedure gethostbyaddr; asm jmp POldgethostbyaddr end; procedure gethostbyname; asm jmp POldgethostbyname end; procedure gethostname; asm jmp POldgethostname end; procedure getnameinfo; asm jmp POldgetnameinfo end; procedure getpeername; asm jmp POldgetpeername end; procedure getprotobyname; asm jmp POldgetprotobyname end; procedure getprotobynumber; asm jmp POldgetprotobynumber end; procedure getservbyname; asm jmp POldgetservbyname end; procedure getservbyport; asm jmp POldgetservbyport end; procedure getsockname; asm jmp POldgetsockname end; procedure getsockopt; asm jmp POldgetsockopt end; procedure htonl; asm jmp POldhtonl end; procedure htons; asm jmp POldhtons end; procedure inet_addr; asm jmp POldinet_addr end; procedure inet_ntoa; asm jmp POldinet_ntoa end; procedure ioctlsocket; asm jmp POldioctlsocket end; procedure listen; asm jmp POldlisten end; procedure ntohl; asm jmp POldntohl end; procedure ntohs; asm jmp POldntohs end; procedure changeData; begin end; procedure recv; begin //如何截取收到的封包,然后修改 asm jmp POldrecv end; end; procedure recvfrom; asm jmp POldrecvfrom end; procedure select; asm jmp POldselect end; procedure send; begin {asm mov cbyte,edx //31 0D 0A mov ilen,ecx end; MessageBeep(8000);} //send发送是OK的 针对的是Delphi自己写的程序 asm jmp POldsend end; end; procedure sendto; asm jmp POldsendto end; procedure setsockopt; asm jmp POldsetsockopt end; procedure shutdown; asm jmp POldshutdown end; procedure socket; asm jmp POldsocket end; exports accept Index 1, bind Index 2, closesocket Index 3, connect Index 4, getpeername Index 5, getsockname Index 6, getsockopt Index 7, htonl Index 8, htons Index 9, ioctlsocket Index 10, inet_addr Index 11, inet_ntoa Index 12, listen Index 13, ntohl Index 14, ntohs Index 15, recv Index 16, recvfrom Index 17, select Index 18, send Index 19, sendto Index 20, setsockopt Index 21, shutdown Index 22, socket Index 23, GetAddrInfoW Index 24, GetNameInfoW Index 25, WSApSetPostRoutine Index 26, FreeAddrInfoW Index 27, WPUCompleteOverlappedRequest Index 28, WSAAccept Index 29, WSAAddressToStringA Index 30, WSAAddressToStringW Index 31, WSACloseEvent Index 32, WSAConnect Index 33, WSACreateEvent Index 34, WSADuplicateSocketA Index 35, WSADuplicateSocketW Index 36, WSAEnumNameSpaceProvidersA Index 37, WSAEnumNameSpaceProvidersW Index 38, WSAEnumNetworkEvents Index 39, WSAEnumProtocolsA Index 40, WSAEnumProtocolsW Index 41, WSAEventSelect Index 42, WSAGetOverlappedResult Index 43, WSAGetQOSByName Index 44, WSAGetServiceClassInfoA Index 45, WSAGetServiceClassInfoW Index 46, WSAGetServiceClassNameByClassIdA Index 47, WSAGetServiceClassNameByClassIdW Index 48, WSAHtonl Index 49, WSAHtons Index 50, gethostbyaddr Index 51, gethostbyname Index 52, getprotobyname Index 53, getprotobynumber Index 54, getservbyname Index 55, getservbyport Index 56, gethostname Index 57, WSAInstallServiceClassA Index 58, WSAInstallServiceClassW Index 59, WSAIoctl Index 60, WSAJoinLeaf Index 61, WSALookupServiceBeginA Index 62, WSALookupServiceBeginW Index 63, WSALookupServiceEnd Index 64, WSALookupServiceNextA Index 65, WSALookupServiceNextW Index 66, WSANSPIoctl Index 67, WSANtohl Index 68, WSANtohs Index 69, WSAProviderConfigChange Index 70, WSARecv Index 71, WSARecvDisconnect Index 72, WSARecvFrom Index 73, WSARemoveServiceClass Index 74, WSAResetEvent Index 75, WSASend Index 76, WSASendDisconnect Index 77, WSASendTo Index 78, WSASetEvent Index 79, WSASetServiceA Index 80, WSASetServiceW Index 81, WSASocketA Index 82, WSASocketW Index 83, WSAStringToAddressA Index 84, WSAStringToAddressW Index 85, WSAWaitForMultipleEvents Index 86, WSCDeinstallProvider Index 87, WSCEnableNSProvider Index 88, WSCEnumProtocols Index 89, WSCGetProviderPath Index 90, WSCInstallNameSpace Index 91, WSCInstallProvider Index 92, WSCUnInstallNameSpace Index 93, WSCUpdateProvider Index 94, WSCWriteNameSpaceOrder Index 95, WSCWriteProviderOrder Index 96, freeaddrinfo Index 97, getaddrinfo Index 98, getnameinfo Index 99, WSAAsyncSelect Index 101, WSAAsyncGetHostByAddr Index 102, WSAAsyncGetHostByName Index 103, WSAAsyncGetProtoByNumber Index 104, WSAAsyncGetProtoByName Index 105, WSAAsyncGetServByPort Index 106, WSAAsyncGetServByName Index 107, WSACancelAsyncRequest Index 108, WSASetBlockingHook Index 109, WSAUnhookBlockingHook Index 110, WSAGetLastError Index 111, WSASetLastError Index 112, WSACancelBlockingCall Index 113, WSAIsBlocking Index 114, WSAStartup Index 115, WSACleanup Index 116, __WSAFDIsSet Index 151, WEP Index 500; begin ModHandle := LoadLibrary('C:\WINDOWS\system32\ws2_32.dll'); if ModHandle > 0 then begin POldFreeAddrInfoW := GetProcAddress(ModHandle, PAnsiChar('FreeAddrInfoW')); POldGetAddrInfoW := GetProcAddress(ModHandle, PAnsiChar('GetAddrInfoW')); POldGetNameInfoW := GetProcAddress(ModHandle, PAnsiChar('GetNameInfoW')); POldWEP := GetProcAddress(ModHandle, PAnsiChar('WEP')); POldWPUCompleteOverlappedRequest := GetProcAddress(ModHandle, PAnsiChar('WPUCompleteOverlappedRequest')); POldWSAAccept := GetProcAddress(ModHandle, PAnsiChar('WSAAccept')); POldWSAAddressToStringA := GetProcAddress(ModHandle, PAnsiChar('WSAAddressToStringA')); POldWSAAddressToStringW := GetProcAddress(ModHandle, PAnsiChar('WSAAddressToStringW')); POldWSAAsyncGetHostByAddr := GetProcAddress(ModHandle, PAnsiChar('WSAAsyncGetHostByAddr')); POldWSAAsyncGetHostByName := GetProcAddress(ModHandle, PAnsiChar('WSAAsyncGetHostByName')); POldWSAAsyncGetProtoByName := GetProcAddress(ModHandle, PAnsiChar('WSAAsyncGetProtoByName')); POldWSAAsyncGetProtoByNumber := GetProcAddress(ModHandle, PAnsiChar('WSAAsyncGetProtoByNumber')); POldWSAAsyncGetServByName := GetProcAddress(ModHandle, PAnsiChar('WSAAsyncGetServByName')); POldWSAAsyncGetServByPort := GetProcAddress(ModHandle, PAnsiChar('WSAAsyncGetServByPort')); POldWSAAsyncSelect := GetProcAddress(ModHandle, PAnsiChar('WSAAsyncSelect')); POldWSACancelAsyncRequest := GetProcAddress(ModHandle, PAnsiChar('WSACancelAsyncRequest')); POldWSACancelBlockingCall := GetProcAddress(ModHandle, PAnsiChar('WSACancelBlockingCall')); POldWSACleanup := GetProcAddress(ModHandle, PAnsiChar('WSACleanup')); POldWSACloseEvent := GetProcAddress(ModHandle, PAnsiChar('WSACloseEvent')); POldWSAConnect := GetProcAddress(ModHandle, PAnsiChar('WSAConnect')); POldWSACreateEvent := GetProcAddress(ModHandle, PAnsiChar('WSACreateEvent')); POldWSADuplicateSocketA := GetProcAddress(ModHandle, PAnsiChar('WSADuplicateSocketA')); POldWSADuplicateSocketW := GetProcAddress(ModHandle, PAnsiChar('WSADuplicateSocketW')); POldWSAEnumNameSpaceProvidersA := GetProcAddress(ModHandle, PAnsiChar('WSAEnumNameSpaceProvidersA')); POldWSAEnumNameSpaceProvidersW := GetProcAddress(ModHandle, PAnsiChar('WSAEnumNameSpaceProvidersW')); POldWSAEnumNetworkEvents := GetProcAddress(ModHandle, PAnsiChar('WSAEnumNetworkEvents')); POldWSAEnumProtocolsA := GetProcAddress(ModHandle, PAnsiChar('WSAEnumProtocolsA')); POldWSAEnumProtocolsW := GetProcAddress(ModHandle, PAnsiChar('WSAEnumProtocolsW')); POldWSAEventSelect := GetProcAddress(ModHandle, PAnsiChar('WSAEventSelect')); POldWSAGetLastError := GetProcAddress(ModHandle, PAnsiChar('WSAGetLastError')); POldWSAGetOverlappedResult := GetProcAddress(ModHandle, PAnsiChar('WSAGetOverlappedResult')); POldWSAGetQOSByName := GetProcAddress(ModHandle, PAnsiChar('WSAGetQOSByName')); POldWSAGetServiceClassInfoA := GetProcAddress(ModHandle, PAnsiChar('WSAGetServiceClassInfoA')); POldWSAGetServiceClassInfoW := GetProcAddress(ModHandle, PAnsiChar('WSAGetServiceClassInfoW')); POldWSAGetServiceClassNameByClassIdA := GetProcAddress(ModHandle, PAnsiChar('WSAGetServiceClassNameByClassIdA')); POldWSAGetServiceClassNameByClassIdW := GetProcAddress(ModHandle, PAnsiChar('WSAGetServiceClassNameByClassIdW')); POldWSAHtonl := GetProcAddress(ModHandle, PAnsiChar('WSAHtonl')); POldWSAHtons := GetProcAddress(ModHandle, PAnsiChar('WSAHtons')); POldWSAInstallServiceClassA := GetProcAddress(ModHandle, PAnsiChar('WSAInstallServiceClassA')); POldWSAInstallServiceClassW := GetProcAddress(ModHandle, PAnsiChar('WSAInstallServiceClassW')); POldWSAIoctl := GetProcAddress(ModHandle, PAnsiChar('WSAIoctl')); POldWSAIsBlocking := GetProcAddress(ModHandle, PAnsiChar('WSAIsBlocking')); POldWSAJoinLeaf := GetProcAddress(ModHandle, PAnsiChar('WSAJoinLeaf')); POldWSALookupServiceBeginA := GetProcAddress(ModHandle, PAnsiChar('WSALookupServiceBeginA')); POldWSALookupServiceBeginW := GetProcAddress(ModHandle, PAnsiChar('WSALookupServiceBeginW')); POldWSALookupServiceEnd := GetProcAddress(ModHandle, PAnsiChar('WSALookupServiceEnd')); POldWSALookupServiceNextA := GetProcAddress(ModHandle, PAnsiChar('WSALookupServiceNextA')); POldWSALookupServiceNextW := GetProcAddress(ModHandle, PAnsiChar('WSALookupServiceNextW')); POldWSANSPIoctl := GetProcAddress(ModHandle, PAnsiChar('WSANSPIoctl')); POldWSANtohl := GetProcAddress(ModHandle, PAnsiChar('WSANtohl')); POldWSANtohs := GetProcAddress(ModHandle, PAnsiChar('WSANtohs')); POldWSAProviderConfigChange := GetProcAddress(ModHandle, PAnsiChar('WSAProviderConfigChange')); POldWSARecv := GetProcAddress(ModHandle, PAnsiChar('WSARecv')); POldWSARecvDisconnect := GetProcAddress(ModHandle, PAnsiChar('WSARecvDisconnect')); POldWSARecvFrom := GetProcAddress(ModHandle, PAnsiChar('WSARecvFrom')); POldWSARemoveServiceClass := GetProcAddress(ModHandle, PAnsiChar('WSARemoveServiceClass')); POldWSAResetEvent := GetProcAddress(ModHandle, PAnsiChar('WSAResetEvent')); POldWSASend := GetProcAddress(ModHandle, PAnsiChar('WSASend')); POldWSASendDisconnect := GetProcAddress(ModHandle, PAnsiChar('WSASendDisconnect')); POldWSASendTo := GetProcAddress(ModHandle, PAnsiChar('WSASendTo')); POldWSASetBlockingHook := GetProcAddress(ModHandle, PAnsiChar('WSASetBlockingHook')); POldWSASetEvent := GetProcAddress(ModHandle, PAnsiChar('WSASetEvent')); POldWSASetLastError := GetProcAddress(ModHandle, PAnsiChar('WSASetLastError')); POldWSASetServiceA := GetProcAddress(ModHandle, PAnsiChar('WSASetServiceA')); POldWSASetServiceW := GetProcAddress(ModHandle, PAnsiChar('WSASetServiceW')); POldWSASocketA := GetProcAddress(ModHandle, PAnsiChar(PAnsiChar('WSASocketA'))); POldWSASocketW := GetProcAddress(ModHandle, PAnsiChar('WSASocketW')); POldWSAStartup := GetProcAddress(ModHandle, PAnsiChar('WSAStartup')); POldWSAStringToAddressA := GetProcAddress(ModHandle, PAnsiChar('WSAStringToAddressA')); POldWSAStringToAddressW := GetProcAddress(ModHandle, PAnsiChar('WSAStringToAddressW')); POldWSAUnhookBlockingHook := GetProcAddress(ModHandle, PAnsiChar('WSAUnhookBlockingHook')); POldWSAWaitForMultipleEvents := GetProcAddress(ModHandle, PAnsiChar('WSAWaitForMultipleEvents')); POldWSApSetPostRoutine := GetProcAddress(ModHandle, PAnsiChar('WSApSetPostRoutine')); POldWSCDeinstallProvider := GetProcAddress(ModHandle, PAnsiChar('WSCDeinstallProvider')); POldWSCEnableNSProvider := GetProcAddress(ModHandle, PAnsiChar('WSCEnableNSProvider')); POldWSCEnumProtocols := GetProcAddress(ModHandle, PAnsiChar('WSCEnumProtocols')); POldWSCGetProviderPath := GetProcAddress(ModHandle, PAnsiChar('WSCGetProviderPath')); POldWSCInstallNameSpace := GetProcAddress(ModHandle, PAnsiChar('WSCInstallNameSpace')); POldWSCInstallProvider := GetProcAddress(ModHandle, PAnsiChar('WSCInstallProvider')); POldWSCUnInstallNameSpace := GetProcAddress(ModHandle, PAnsiChar('WSCUnInstallNameSpace')); POldWSCUpdateProvider := GetProcAddress(ModHandle, PAnsiChar('WSCUpdateProvider')); POldWSCWriteNameSpaceOrder := GetProcAddress(ModHandle, PAnsiChar('WSCWriteNameSpaceOrder')); POldWSCWriteProviderOrder := GetProcAddress(ModHandle, PAnsiChar('WSCWriteProviderOrder')); POld__WSAFDIsSet := GetProcAddress(ModHandle, PAnsiChar('__WSAFDIsSet')); POldaccept := GetProcAddress(ModHandle, PAnsiChar('accept')); POldbind := GetProcAddress(ModHandle, PAnsiChar('bind')); POldclosesocket := GetProcAddress(ModHandle, PAnsiChar('closesocket')); POldconnect := GetProcAddress(ModHandle, PAnsiChar('connect')); POldfreeaddrinfo := GetProcAddress(ModHandle, PAnsiChar('freeaddrinfo')); POldgetaddrinfo := GetProcAddress(ModHandle, PAnsiChar('getaddrinfo')); POldgethostbyaddr := GetProcAddress(ModHandle, PAnsiChar('gethostbyaddr')); POldgethostbyname := GetProcAddress(ModHandle, PAnsiChar('gethostbyname')); POldgethostname := GetProcAddress(ModHandle, PAnsiChar('gethostname')); POldgetnameinfo := GetProcAddress(ModHandle, PAnsiChar('getnameinfo')); POldgetpeername := GetProcAddress(ModHandle, PAnsiChar('getpeername')); POldgetprotobyname := GetProcAddress(ModHandle, PAnsiChar('getprotobyname')); POldgetprotobynumber := GetProcAddress(ModHandle, PAnsiChar('getprotobynumber')); POldgetservbyname := GetProcAddress(ModHandle, PAnsiChar('getservbyname')); POldgetservbyport := GetProcAddress(ModHandle, PAnsiChar('getservbyport')); POldgetsockname := GetProcAddress(ModHandle, PAnsiChar('getsockname')); POldgetsockopt := GetProcAddress(ModHandle, PAnsiChar('getsockopt')); POldhtonl := GetProcAddress(ModHandle, PAnsiChar('htonl')); POldhtons := GetProcAddress(ModHandle, PAnsiChar('htons')); POldinet_addr := GetProcAddress(ModHandle, PAnsiChar('inet_addr')); POldinet_ntoa := GetProcAddress(ModHandle, PAnsiChar('inet_ntoa')); POldioctlsocket := GetProcAddress(ModHandle, PAnsiChar('ioctlsocket')); POldlisten := GetProcAddress(ModHandle, PAnsiChar('listen')); POldntohl := GetProcAddress(ModHandle, PAnsiChar('ntohl')); POldntohs := GetProcAddress(ModHandle, PAnsiChar('ntohs')); POldrecv := GetProcAddress(ModHandle, PAnsiChar('recv')); POldrecvfrom := GetProcAddress(ModHandle, PAnsiChar('recvfrom')); POldselect := GetProcAddress(ModHandle, PAnsiChar('select')); POldsend := GetProcAddress(ModHandle, PAnsiChar('send')); POldsendto := GetProcAddress(ModHandle, PAnsiChar('sendto')); POldsetsockopt := GetProcAddress(ModHandle, PAnsiChar('setsockopt')); POldshutdown := GetProcAddress(ModHandle, PAnsiChar('shutdown')); POldsocket := GetProcAddress(ModHandle, PAnsiChar('socket')); end; end.