From 3e1f70593221063b53d1d621c4912f2db9505c7b Mon Sep 17 00:00:00 2001 From: bol-van Date: Sun, 14 Jul 2024 14:35:57 +0300 Subject: [PATCH] winws: show adapter names in --nlm-list --- binaries/win64/winws.exe | Bin 231424 -> 232448 bytes binaries/win64/zapret-winws/winws.exe | Bin 231424 -> 232448 bytes nfq/darkmagic.c | 120 ++++++++++++++++++++++---- 3 files changed, 101 insertions(+), 19 deletions(-) diff --git a/binaries/win64/winws.exe b/binaries/win64/winws.exe index 742883a3f27f67eddbd8ac73f541cf9a79973a1a..04130faebc05386d7f626649330871765cc3c261 100644 GIT binary patch delta 30277 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 P29bPone5nBga7{keo99n diff --git a/binaries/win64/zapret-winws/winws.exe b/binaries/win64/zapret-winws/winws.exe index 742883a3f27f67eddbd8ac73f541cf9a79973a1a..04130faebc05386d7f626649330871765cc3c261 100644 GIT binary patch delta 30277 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 P29bPone5nBga7{keo99n diff --git a/nfq/darkmagic.c b/nfq/darkmagic.c index e6ef7be..b68f952 100644 --- a/nfq/darkmagic.c +++ b/nfq/darkmagic.c @@ -963,8 +963,7 @@ void tcp_rewrite_winsize(struct tcphdr *tcp, uint16_t winsize, uint8_t scale_fac static HANDLE w_filter = NULL; static OVERLAPPED ovl = { .hEvent = NULL }; -static const struct str_list_head *wlan_filter_ssid = NULL; -static const struct str_list_head *nlm_filter_net = NULL; +static const struct str_list_head *wlan_filter_ssid = NULL, *nlm_filter_net = NULL; static DWORD logical_net_filter_tick=0; uint32_t w_win32_error=0; INetworkListManager* pNetworkListManager=NULL; @@ -991,22 +990,81 @@ static bool str2guid(const char* str, GUID *guid) return true; } +static const char *sNetworkCards="SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\NetworkCards"; +// get adapter name from guid string +static bool AdapterID2Name(const GUID *guid,char *name,DWORD name_len) +{ + char sguid[39],sidx[32],val[256]; + HKEY hkNetworkCards,hkCard; + DWORD dwIndex,dwLen; + bool bRet = false; + + if (name_len<2) return false; + + if ((w_win32_error = RegOpenKeyExA(HKEY_LOCAL_MACHINE,sNetworkCards,0,KEY_ENUMERATE_SUB_KEYS,&hkNetworkCards)) == ERROR_SUCCESS) + { + for (dwIndex=0;;dwIndex++) + { + dwLen=sizeof(sidx)-1; + w_win32_error = RegEnumKeyExA(hkNetworkCards,dwIndex,sidx,&dwLen,NULL,NULL,NULL,NULL); + if (w_win32_error == ERROR_SUCCESS) + { + sidx[dwLen]='\0'; + + guid2str(guid, sguid+1); + sguid[0]='{'; + sguid[37]='}'; + sguid[38]='\0'; + + if ((w_win32_error = RegOpenKeyExA(hkNetworkCards,sidx,0,KEY_QUERY_VALUE,&hkCard)) == ERROR_SUCCESS) + { + dwLen=sizeof(val)-1; + if ((w_win32_error = RegQueryValueExA(hkCard,"ServiceName",NULL,NULL,val,&dwLen)) == ERROR_SUCCESS) + { + val[dwLen]='\0'; + if (!strcmp(val,sguid)) + { + name_len--; + if ((w_win32_error = RegQueryValueExA(hkCard,"Description",NULL,NULL,name,&name_len)) == ERROR_SUCCESS) + { + name[name_len]='\0'; + bRet = true; + } + } + } + RegCloseKey(hkCard); + } + if (bRet) break; + } + else + break; + } + RegCloseKey(hkNetworkCards); + } + + return bRet; +} + bool win_dark_init(const struct str_list_head *ssid_filter, const struct str_list_head *nlm_filter) { win_dark_deinit(); - wlan_filter_ssid = LIST_EMPTY(ssid_filter) ? NULL : ssid_filter; - nlm_filter_net = LIST_EMPTY(nlm_filter) ? NULL : nlm_filter; - if (nlm_filter_net) + if (LIST_EMPTY(ssid_filter)) ssid_filter=NULL; + if (LIST_EMPTY(nlm_filter)) nlm_filter=NULL; + if (nlm_filter) { if (SUCCEEDED(w_win32_error = CoInitialize(NULL))) { if (FAILED(w_win32_error = CoCreateInstance(&CLSID_NetworkListManager, NULL, CLSCTX_ALL, &IID_INetworkListManager, (LPVOID*)&pNetworkListManager))) { - win_dark_deinit(); + CoUninitialize(); return false; } } + else + return false; } + nlm_filter_net = nlm_filter; + wlan_filter_ssid = ssid_filter; return true; } bool win_dark_deinit(void) @@ -1030,40 +1088,64 @@ bool nlm_list(bool bAll) INetworkListManager* pNetworkListManager; if (SUCCEEDED(w_win32_error = CoCreateInstance(&CLSID_NetworkListManager, NULL, CLSCTX_ALL, &IID_INetworkListManager, (LPVOID*)&pNetworkListManager))) { - IEnumNetworks* pEnum; - if (SUCCEEDED(w_win32_error = pNetworkListManager->lpVtbl->GetNetworks(pNetworkListManager, NLM_ENUM_NETWORK_ALL, &pEnum))) + IEnumNetworks* pEnumNetworks; + if (SUCCEEDED(w_win32_error = pNetworkListManager->lpVtbl->GetNetworks(pNetworkListManager, NLM_ENUM_NETWORK_ALL, &pEnumNetworks))) { - INetwork* pNet; + INetwork *pNet; + INetworkConnection *pConn; + IEnumNetworkConnections *pEnumConnections; VARIANT_BOOL bIsConnected, bIsConnectedInet; - GUID idNet; + NLM_NETWORK_CATEGORY category; + GUID idNet, idAdapter, idConn; BSTR bstrName; - char Name[128]; + char Name[128],Name2[128]; int connected; for (connected = 1; connected >= !bAll; connected--) { for (;;) { - if (FAILED(w_win32_error = pEnum->lpVtbl->Next(pEnum, 1, &pNet, NULL))) + if (FAILED(w_win32_error = pEnumNetworks->lpVtbl->Next(pEnumNetworks, 1, &pNet, NULL))) { bRet = false; break; } - if (!pNet) break; + if (w_win32_error != S_OK) break; if (SUCCEEDED(w_win32_error = pNet->lpVtbl->get_IsConnected(pNet, &bIsConnected)) && SUCCEEDED(w_win32_error = pNet->lpVtbl->get_IsConnectedToInternet(pNet, &bIsConnectedInet)) && SUCCEEDED(w_win32_error = pNet->lpVtbl->GetNetworkId(pNet, &idNet)) && + SUCCEEDED(w_win32_error = pNet->lpVtbl->GetCategory(pNet, &category)) && SUCCEEDED(w_win32_error = pNet->lpVtbl->GetName(pNet, &bstrName))) { if (!!bIsConnected == connected) { if (WideCharToMultiByte(CP_UTF8, 0, bstrName, -1, Name, sizeof(Name), NULL, NULL)) { - printf("Name : %s", Name); + printf("Name : %s", Name); if (bIsConnected) printf(" (connected)"); if (bIsConnectedInet) printf(" (inet)"); - printf("\n"); + printf(" (%s)\n", + category==NLM_NETWORK_CATEGORY_PUBLIC ? "public" : + category==NLM_NETWORK_CATEGORY_PRIVATE ? "private" : + category==NLM_NETWORK_CATEGORY_DOMAIN_AUTHENTICATED ? "domain" : + "unknown"); guid2str(&idNet, Name); - printf("NetID : %s\n", Name); + printf("NetID : %s\n", Name); + if (connected && SUCCEEDED(w_win32_error = pNet->lpVtbl->GetNetworkConnections(pNet, &pEnumConnections))) + { + while ((w_win32_error = pEnumConnections->lpVtbl->Next(pEnumConnections, 1, &pConn, NULL))==S_OK) + { + if (SUCCEEDED(w_win32_error = pConn->lpVtbl->GetAdapterId(pConn,&idAdapter))) + { + guid2str(&idAdapter, Name); + if (AdapterID2Name(&idAdapter,Name2,sizeof(Name2))) + printf("Adapter : %s (%s)\n", Name2, Name); + else + printf("Adapter : %s\n", Name); + } + pConn->lpVtbl->Release(pConn); + } + pEnumConnections->lpVtbl->Release(pEnumConnections); + } printf("\n"); } else @@ -1080,9 +1162,9 @@ bool nlm_list(bool bAll) if (!bRet) break; } if (!bRet) break; - pEnum->lpVtbl->Reset(pEnum); + pEnumNetworks->lpVtbl->Reset(pEnumNetworks); } - pEnum->lpVtbl->Release(pEnum); + pEnumNetworks->lpVtbl->Release(pEnumNetworks); } else bRet = false; @@ -1124,7 +1206,7 @@ static bool nlm_filter_match(const struct str_list_head *nlm_list) bRet = false; break; } - if (!pNet) break; + if (w_win32_error != S_OK) break; if (SUCCEEDED(w_win32_error = pNet->lpVtbl->GetNetworkId(pNet, &idNet)) && SUCCEEDED(w_win32_error = pNet->lpVtbl->GetName(pNet, &bstrName))) {