/* Chrysalide - Outil d'analyse de fichiers binaires
* cache_ws2_32.c - fourniture des ordinaux du fichier ws2_32.dll
*
* Copyright (C) 2021 Cyrille Bagard
*
* This file is part of Chrysalide.
*
* Chrysalide is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* Chrysalide is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Chrysalide. If not, see .
*/
#include "cache_ws2_32.h"
#include
/**
* Empreintes du fichier ws2_32.dll :
*
* - MD5 : f1fafc04216614ec5c7b8c6a82394dfd
* - SHA1 : 5b6966d9af7bcf687aab982c26efe1c2adfaff18
* - SHA256 : 7e412388c871f5f1d1651da11689eb82a7e4c5785409ec2753cfc4be484d910e
*/
/* Liste des ordinaux référencés */
static const char *_ws2_32_ordinals[501] = {
[1] = "accept",
[2] = "bind",
[3] = "closesocket",
[4] = "connect",
[5] = "getpeername",
[6] = "getsockname",
[7] = "getsockopt",
[8] = "htonl",
[9] = "htons",
[10] = "ioctlsocket",
[11] = "inet_addr",
[12] = "inet_ntoa",
[15] = "ntohs",
[16] = "recv",
[17] = "recvfrom",
[18] = "select",
[19] = "send",
[20] = "sendto",
[21] = "setsockopt",
[22] = "shutdown",
[23] = "socket",
[25] = "FreeAddrInfoEx",
[26] = "FreeAddrInfoExW",
[27] = "FreeAddrInfoW",
[28] = "GetAddrInfoExA",
[29] = "GetAddrInfoExCancel",
[30] = "GetAddrInfoExOverlappedResult",
[31] = "GetAddrInfoExW",
[32] = "GetAddrInfoW",
[33] = "GetHostNameW",
[34] = "GetNameInfoW",
[35] = "InetNtopW",
[36] = "InetPtonW",
[37] = "SetAddrInfoExA",
[38] = "SetAddrInfoExW",
[39] = "WPUCompleteOverlappedRequest",
[40] = "WPUGetProviderPathEx",
[41] = "WSAAccept",
[42] = "WSAAddressToStringA",
[43] = "WSAAddressToStringW",
[44] = "WSAAdvertiseProvider",
[45] = "WSACloseEvent",
[46] = "WSAConnect",
[47] = "WSAConnectByList",
[48] = "WSAConnectByNameA",
[49] = "WSAConnectByNameW",
[50] = "WSACreateEvent",
[51] = "gethostbyaddr",
[52] = "gethostbyname",
[53] = "getprotobyname",
[54] = "getprotobynumber",
[55] = "getservbyname",
[56] = "getservbyport",
[57] = "gethostname",
[58] = "WSADuplicateSocketA",
[59] = "WSADuplicateSocketW",
[60] = "WSAEnumNameSpaceProvidersA",
[61] = "WSAEnumNameSpaceProvidersExA",
[62] = "WSAEnumNameSpaceProvidersExW",
[63] = "WSAEnumNameSpaceProvidersW",
[64] = "WSAEnumNetworkEvents",
[65] = "WSAEnumProtocolsA",
[66] = "WSAEnumProtocolsW",
[67] = "WSAEventSelect",
[68] = "WSAGetOverlappedResult",
[69] = "WSAGetQOSByName",
[70] = "WSAGetServiceClassInfoA",
[71] = "WSAGetServiceClassInfoW",
[72] = "WSAGetServiceClassNameByClassIdA",
[73] = "WSAGetServiceClassNameByClassIdW",
[74] = "WSAHtonl",
[75] = "WSAHtons",
[76] = "WSAInstallServiceClassA",
[77] = "WSAInstallServiceClassW",
[78] = "WSAIoctl",
[79] = "WSAJoinLeaf",
[80] = "WSALookupServiceBeginA",
[81] = "WSALookupServiceBeginW",
[82] = "WSALookupServiceEnd",
[83] = "WSALookupServiceNextA",
[84] = "WSALookupServiceNextW",
[85] = "WSANSPIoctl",
[86] = "WSANtohl",
[87] = "WSANtohs",
[88] = "WSAPoll",
[89] = "WSAProviderCompleteAsyncCall",
[90] = "WSAProviderConfigChange",
[91] = "WSARecv",
[92] = "WSARecvDisconnect",
[93] = "WSARecvFrom",
[94] = "WSARemoveServiceClass",
[95] = "WSAResetEvent",
[96] = "WSASend",
[97] = "WSASendDisconnect",
[98] = "WSASendMsg",
[99] = "WSASendTo",
[100] = "WSASetEvent",
[101] = "WSAAsyncSelect",
[102] = "WSAAsyncGetHostByAddr",
[103] = "WSAAsyncGetHostByName",
[104] = "WSAAsyncGetProtoByNumber",
[105] = "WSAAsyncGetProtoByName",
[106] = "WSAAsyncGetServByPort",
[107] = "WSAAsyncGetServByName",
[108] = "WSACancelAsyncRequest",
[109] = "WSASetBlockingHook",
[110] = "WSAUnhookBlockingHook",
[111] = "WSAGetLastError",
[112] = "WSASetLastError",
[113] = "WSACancelBlockingCall",
[114] = "WSAIsBlocking",
[115] = "WSAStartup",
[116] = "WSACleanup",
[117] = "WSASetServiceA",
[118] = "WSASetServiceW",
[119] = "WSASocketA",
[120] = "WSASocketW",
[121] = "WSAStringToAddressA",
[122] = "WSAStringToAddressW",
[123] = "WSAUnadvertiseProvider",
[124] = "WSAWaitForMultipleEvents",
[125] = "WSCDeinstallProvider",
[126] = "WSCDeinstallProvider32",
[127] = "WSCDeinstallProviderEx",
[128] = "WSCEnableNSProvider",
[129] = "WSCEnableNSProvider32",
[130] = "WSCEnumNameSpaceProviders32",
[131] = "WSCEnumNameSpaceProvidersEx32",
[132] = "WSCEnumProtocols",
[133] = "WSCEnumProtocols32",
[134] = "WSCEnumProtocolsEx",
[135] = "WSCGetApplicationCategory",
[136] = "WSCGetApplicationCategoryEx",
[137] = "WSCGetProviderInfo",
[138] = "WSCGetProviderInfo32",
[139] = "WSCGetProviderPath",
[140] = "WSCGetProviderPath32",
[141] = "WSCInstallNameSpace",
[142] = "WSCInstallNameSpace32",
[143] = "WSCInstallNameSpaceEx",
[144] = "WSCInstallNameSpaceEx2",
[145] = "WSCInstallNameSpaceEx32",
[146] = "WSCInstallProvider",
[147] = "WSCInstallProvider64_32",
[148] = "WSCInstallProviderAndChains64_32",
[149] = "WSCInstallProviderEx",
[150] = "WSCSetApplicationCategory",
[151] = "__WSAFDIsSet",
[152] = "WSCSetApplicationCategoryEx",
[153] = "WSCSetProviderInfo",
[154] = "WSCSetProviderInfo32",
[155] = "WSCUnInstallNameSpace",
[156] = "WSCUnInstallNameSpace32",
[157] = "WSCUnInstallNameSpaceEx2",
[158] = "WSCUpdateProvider",
[159] = "WSCUpdateProvider32",
[160] = "WSCUpdateProviderEx",
[161] = "WSCWriteNameSpaceOrder",
[162] = "WSCWriteNameSpaceOrder32",
[163] = "WSCWriteProviderOrder",
[164] = "WSCWriteProviderOrder32",
[165] = "WSCWriteProviderOrderEx",
[166] = "WahCloseApcHelper",
[167] = "WahCloseHandleHelper",
[168] = "WahCloseNotificationHandleHelper",
[169] = "WahCloseSocketHandle",
[170] = "WahCloseThread",
[171] = "WahCompleteRequest",
[172] = "WahCreateHandleContextTable",
[173] = "WahCreateNotificationHandle",
[174] = "WahCreateSocketHandle",
[175] = "WahDestroyHandleContextTable",
[176] = "WahDisableNonIFSHandleSupport",
[177] = "WahEnableNonIFSHandleSupport",
[178] = "WahEnumerateHandleContexts",
[179] = "WahInsertHandleContext",
[180] = "WahNotifyAllProcesses",
[181] = "WahOpenApcHelper",
[182] = "WahOpenCurrentThread",
[183] = "WahOpenHandleHelper",
[184] = "WahOpenNotificationHandleHelper",
[185] = "WahQueueUserApc",
[186] = "WahReferenceContextByHandle",
[187] = "WahRemoveHandleContext",
[188] = "WahWaitForNotification",
[190] = "freeaddrinfo",
[191] = "getaddrinfo",
[192] = "getnameinfo",
[193] = "inet_ntop",
[500] = "WEP",
};
/******************************************************************************
* *
* Paramètres : ordinal = valeur ordinale à considérer. *
* *
* Description : Fournit le nom du symbole associé à un ordinal donné. *
* *
* Retour : Désignation du symbole trouvé ou NULL en cas d'échec. *
* *
* Remarques : - *
* *
******************************************************************************/
const char *find_ws2_32_name_for_ordinal(uint16_t ordinal)
{
const char *result; /* Désignation à renvoyer */
if (ordinal >= 501)
result = NULL;
else
result = _ws2_32_ordinals[ordinal];
return result;
}