日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LSP(分层服务提供程序)

發布時間:2024/7/19 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LSP(分层服务提供程序) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、簡介

LSP即分層服務提供商,Winsock 作為應用程序的 Windows 的網絡套接字工具,可以由稱為“分層服務提供商”的機制進行擴展。Winsock LSP 可用于非常廣泛的實用用途,包括 Internet 家長控制 (parental control) 和 Web 內容篩選。在以前版本的 Windows XP 中,刪除不正確的(也稱為“buggy”)LSP 可能會導致注冊表中的 Winsock 目錄損壞,潛在地導致所有網絡連接的丟失。 LSP就是TCP/IP等協議的接口.LSP用在正途上可以方便程序員們編寫監視系統網絡通訊情況的Sniffer,可是現在常見的LSP都被用于瀏覽器劫持。

?

二、LSP操作

netsh winsock

option:
??? ?????????????? - 顯示命令列表。
??? audit????????? - 顯示已經安裝和刪除的 Winsock LSP 列表。
??? dump?????????? - 顯示一個配置腳本。
??? help?????????? - 顯示命令列表。
??? remove???????? - 從系統中刪除 Winsock LSP。
??? reset????????? - 重置 Winsock 目錄為清除狀態。
??? set??????????? - 設置 Winsock 選項。
??? show?????????? - 顯示信息。

若需要命令的更多幫助信息,請鍵入命令,接著是空格, 后面跟 ?。

常用指令

netsh winsock show catalog #顯示已經安裝LSP 列表 netsh winsock reset #重置Winsock LSP

?

三、實現LSP

步驟如下:

1、安裝分層協議入口,以便獲取系統分配的目錄ID號。2、安裝一個或者多個協議鏈,安裝的數量取決于要分層的下層協議的數量。3、在結尾進行目錄排序。 參考:http://www.cnblogs.com/xing901022/archive/2012/10/23/2736259.html

?

四、示例

//// // InstDemo.cpp #include <Ws2spi.h> #include <Sporder.h> // 定義了WSCWriteProviderOrder函數 #include <windows.h> #include <stdio.h>#pragma comment(lib, "Ws2_32.lib") #pragma comment(lib, "Rpcrt4.lib") // 實現了UuidCreate函數// 要安裝的LSP的硬編碼,在移除的時候還要使用它 GUID ProviderGuid = {0xd3c21122, 0x85e1, 0x48f3, {0x9a,0xb6,0x23,0xd9,0x0c,0x73,0x07,0xef}};LPWSAPROTOCOL_INFOW GetProvider(LPINT lpnTotalProtocols) {DWORD dwSize = 0;int nError;LPWSAPROTOCOL_INFOW pProtoInfo = NULL;// 取得需要的長度if(::WSCEnumProtocols(NULL, pProtoInfo, &dwSize, &nError) == SOCKET_ERROR){if(nError != WSAENOBUFS)return NULL;}pProtoInfo = (LPWSAPROTOCOL_INFOW)::GlobalAlloc(GPTR, dwSize);*lpnTotalProtocols = ::WSCEnumProtocols(NULL, pProtoInfo, &dwSize, &nError);return pProtoInfo; }void FreeProvider(LPWSAPROTOCOL_INFOW pProtoInfo) {::GlobalFree(pProtoInfo); }// 將LSP安裝到UDP協議提供者之上 int InstallProvider(WCHAR *wszDllPath) {WCHAR wszLSPName[] = L"TinyLSP"; // 我們的LSP的名稱int nError = NO_ERROR;LPWSAPROTOCOL_INFOW pProtoInfo;int nProtocols;WSAPROTOCOL_INFOW UDPLayeredInfo, UDPChainInfo; // 我們要安裝的UDP分層協議和協議鏈 DWORD dwUdpOrigCatalogId, dwLayeredCatalogId;// 在Winsock目錄中找到原來的UDP協議服務提供者,我們的LSP要安裝在它之上// 枚舉所有服務程序提供者pProtoInfo = GetProvider(&nProtocols);for(int i=0; i<nProtocols; i++){if(pProtoInfo[i].iAddressFamily == AF_INET && pProtoInfo[i].iProtocol == IPPROTO_UDP){memcpy(&UDPChainInfo, &pProtoInfo[i], sizeof(UDPLayeredInfo));// UDPChainInfo.dwServiceFlags1 = UDPChainInfo.dwServiceFlags1 & ~XP1_IFS_HANDLES; // 保存原來的入口IDdwUdpOrigCatalogId = pProtoInfo[i].dwCatalogEntryId;break;}} // 首先安裝分層協議,獲取一個Winsock庫安排的目錄ID號,即dwLayeredCatalogId// 直接使用下層協議的WSAPROTOCOL_INFOW結構即可memcpy(&UDPLayeredInfo, &UDPChainInfo, sizeof(UDPLayeredInfo));// 修改協議名稱,類型,設置PFL_HIDDEN標志 wcscpy(UDPLayeredInfo.szProtocol, wszLSPName);UDPLayeredInfo.ProtocolChain.ChainLen = LAYERED_PROTOCOL; // LAYERED_PROTOCOL即0UDPLayeredInfo.dwProviderFlags |= PFL_HIDDEN;// 安裝if(::WSCInstallProvider(&ProviderGuid, wszDllPath, &UDPLayeredInfo, 1, &nError) == SOCKET_ERROR)return nError;// 重新枚舉協議,獲取分層協議的目錄ID號 FreeProvider(pProtoInfo);pProtoInfo = GetProvider(&nProtocols);for(i=0; i<nProtocols; i++){if(memcmp(&pProtoInfo[i].ProviderId, &ProviderGuid, sizeof(ProviderGuid)) == 0){dwLayeredCatalogId = pProtoInfo[i].dwCatalogEntryId;break;}}// 安裝協議鏈// 修改協議名稱,類型WCHAR wszChainName[WSAPROTOCOL_LEN + 1];swprintf(wszChainName, L"%ws over %ws", wszLSPName, UDPChainInfo.szProtocol);wcscpy(UDPChainInfo.szProtocol, wszChainName);if(UDPChainInfo.ProtocolChain.ChainLen == 1){UDPChainInfo.ProtocolChain.ChainEntries[1] = dwUdpOrigCatalogId;}else{for(i=UDPChainInfo.ProtocolChain.ChainLen; i>0 ; i--){UDPChainInfo.ProtocolChain.ChainEntries[i] = UDPChainInfo.ProtocolChain.ChainEntries[i-1];}}UDPChainInfo.ProtocolChain.ChainLen ++;// 將我們的分層協議置于此協議鏈的頂層UDPChainInfo.ProtocolChain.ChainEntries[0] = dwLayeredCatalogId; // 獲取一個Guid,安裝之 GUID ProviderChainGuid;if(::UuidCreate(&ProviderChainGuid) == RPC_S_OK){if(::WSCInstallProvider(&ProviderChainGuid, wszDllPath, &UDPChainInfo, 1, &nError) == SOCKET_ERROR)return nError;}elsereturn GetLastError();// 重新排序Winsock目錄,將我們的協議鏈提前// 重新枚舉安裝的協議 FreeProvider(pProtoInfo);pProtoInfo = GetProvider(&nProtocols);DWORD dwIds[20];int nIndex = 0;// 添加我們的協議鏈for(i=0; i<nProtocols; i++){if((pProtoInfo[i].ProtocolChain.ChainLen > 1) &&(pProtoInfo[i].ProtocolChain.ChainEntries[0] == dwLayeredCatalogId))dwIds[nIndex++] = pProtoInfo[i].dwCatalogEntryId;}// 添加其它協議for(i=0; i<nProtocols; i++){if((pProtoInfo[i].ProtocolChain.ChainLen <= 1) ||(pProtoInfo[i].ProtocolChain.ChainEntries[0] != dwLayeredCatalogId))dwIds[nIndex++] = pProtoInfo[i].dwCatalogEntryId;}// 重新排序Winsock目錄nError = ::WSCWriteProviderOrder(dwIds, nIndex);FreeProvider(pProtoInfo);return nError; }void RemoveProvider() { LPWSAPROTOCOL_INFOW pProtoInfo;int nProtocols;DWORD dwLayeredCatalogId;// 根據Guid取得分層協議的目錄ID號pProtoInfo = GetProvider(&nProtocols);int nError;for(int i=0; i<nProtocols; i++){if(memcmp(&ProviderGuid, &pProtoInfo[i].ProviderId, sizeof(ProviderGuid)) == 0){dwLayeredCatalogId = pProtoInfo[i].dwCatalogEntryId;break;}}if(i < nProtocols){// 移除協議鏈for(i=0; i<nProtocols; i++){if((pProtoInfo[i].ProtocolChain.ChainLen > 1) &&(pProtoInfo[i].ProtocolChain.ChainEntries[0] == dwLayeredCatalogId)){::WSCDeinstallProvider(&pProtoInfo[i].ProviderId, &nError);}}// 移除分層協議::WSCDeinstallProvider(&ProviderGuid, &nError);} }////int binstall = 0; void main() {if(binstall){if(InstallProvider(L"lsp.dll") == ERROR_SUCCESS){printf(" Install successully \n");}else{printf(" Install failed \n");}}elseRemoveProvider(); }

轉載于:https://www.cnblogs.com/274914765qq/p/4729410.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的LSP(分层服务提供程序)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲免费色视频 | 精品久久香蕉国产线看观看亚洲 | 欧美一区二区三区视频在线 | 男女羞羞无遮挡 | 俄罗斯美女一级爱片 | 欧色丰满女同hd | 青娱乐最新地址 | 九色精品视频 | 2017日日夜夜 | 男人资源网站 | 日本韩国视频 | 久久五月视频 | 性天堂网 | 久久精品精品 | 免费吸乳羞羞网站视频 | 欧美成人一区在线观看 | 久久久久网站 | 一级片在线免费看 | 美女一级| 免费黄色看片网站 | 91九色国产 | 欧美三区视频 | 夜夜艹| 日韩有码电影 | 一本在线免费视频 | 一区二区三区在线观看av | 四虎精品欧美一区二区免费 | 黑人操亚洲美女 | 日本黄色精品 | 亚洲精品自拍视频 | 爱草在线视频 | 国产香蕉9| 无码人妻aⅴ一区二区三区69岛 | 少妇高潮灌满白浆毛片免费看 | 欧美天堂久久 | 成人午夜免费福利视频 | 欧美日韩高清一区 | 一级二级三级视频 | 麻豆一区二区三区精品视频 | 四虎影视永久免费 | 国产免费资源 | 亚洲大片在线观看 | 超碰青草 | 综合亚洲欧美 | 久操视频在线观看 | 欧美精品卡一卡二 | 99热99re6国产在线播放 | 亚洲偷 | 99精品一区二区三区无码吞精 | 爱爱小视频网站 | 亚洲v天堂| 北条麻妃在线一区 | 足疗店女技师按摩毛片 | 玖玖视频国产 | 国产欧美综合视频 | 精品视频久久 | 桃色av| 欧美乱码精品一区二区三区 | 91视频在线免费 | 久久亚洲综合国产精品99麻豆精品福利 | 色99色| 秋霞福利影院 | 性色一区二区三区 | 四虎1515hh.com| 激情网久久 | 欧美日韩亚洲另类 | 日韩啪啪网 | 亚洲精品乱码久久久久久蜜桃91 | 影音先锋在线看片资源 | missav | 免费高清av在线看 | 亚洲中文字幕一区二区在线观看 | 久久黄色大片 | 人人草在线 | 日韩av线| 天堂社区av | 一区二区三区资源 | 色四月| 亚洲精品在线播放视频 | 尤物在线免费视频 | 国产大屁股喷水视频在线观看 | 伊人伊人鲁| 欧美成人精品一区二区三区 | 日韩成人av一区二区 | 日本人妻不卡一区二区三区中文字幕 | www.久久色| 雷电将军和丘丘人繁衍后代视频 | 日韩欧美一区二区三区在线观看 | av男人的天堂av | 黄色三级在线播放 | 国产精品色网 | 美女张开腿让男人操 | 日韩精品视频免费在线观看 | 美女视频黄的免费 | 日本xxxx18| aaa级片| brazzers精品成人一区 | 欧美色图第一页 | 凹凸精品熟女在线观看 | 琪琪色影音先锋 |