/* Chrysalide - Outil d'analyse de fichiers binaires * cache_wsock32.c - fourniture des ordinaux du fichier wsock32.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_wsock32.h" #include /** * Empreintes du fichier wsock32.dll : * * - MD5 : 2afbb671a865f43c0476d685dc77b4df * - SHA1 : 233125ad8fd18a65d5939b80160ce3e5c19c0184 * - SHA256 : 0c310f70350ba9801f0421c2da2595beaa3fef55d43d6928d53a674dfcd6e9fb */ /* Liste des ordinaux référencés */ static const char *_wsock32_ordinals[1143] = { [1] = "accept", [2] = "bind", [3] = "closesocket", [4] = "connect", [5] = "getpeername", [6] = "getsockname", [7] = "getsockopt", [8] = "htonl", [9] = "htons", [10] = "inet_addr", [11] = "inet_ntoa", [12] = "ioctlsocket", [13] = "listen", [14] = "ntohl", [15] = "ntohs", [16] = "recv", [17] = "recvfrom", [18] = "select", [19] = "send", [20] = "sendto", [21] = "setsockopt", [22] = "shutdown", [23] = "socket", [51] = "gethostbyaddr", [52] = "gethostbyname", [53] = "getprotobyname", [54] = "getprotobynumber", [55] = "getservbyname", [56] = "getservbyport", [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", [1100] = "inet_network", [1101] = "getnetbyname", [1102] = "rcmd", [1103] = "rexec", [1104] = "rresvport", [1105] = "sethostname", [1106] = "dn_expand", [1107] = "WSARecvEx", [1108] = "s_perror", [1109] = "GetAddressByNameA", [1110] = "GetAddressByNameW", [1111] = "EnumProtocolsA", [1112] = "EnumProtocolsW", [1113] = "GetTypeByNameA", [1114] = "GetTypeByNameW", [1115] = "GetNameByTypeA", [1116] = "GetNameByTypeW", [1117] = "SetServiceA", [1118] = "SetServiceW", [1119] = "GetServiceA", [1140] = "TransmitFile", [1141] = "AcceptEx", [1142] = "GetAcceptExSockaddrs", }; /****************************************************************************** * * * 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_wsock32_name_for_ordinal(uint16_t ordinal) { const char *result; /* Désignation à renvoyer */ if (ordinal >= 1143) result = NULL; else result = _wsock32_ordinals[ordinal]; return result; }