亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于NDIS過濾驅(qū)動防火墻的設(shè)計和實現(xiàn)

        2017-01-17 19:41:58王亞偉
        軟件工程 2016年11期
        關(guān)鍵詞:防火墻

        摘 要:Windows作為時下最流行的個人操作系統(tǒng),研究Windows環(huán)境下的防火墻有一定的現(xiàn)實意義。主機(jī)防火墻的數(shù)據(jù)包過濾算法是線性查找,其性能會隨著過濾規(guī)則的增加而變得越來越差,為了提高防火墻的運行速度,對非法數(shù)據(jù)包的攔截能力,提出一種基于HASH雙鏈表的過濾算法,并且通過分析、比較Windows環(huán)境下網(wǎng)絡(luò)數(shù)據(jù)包的攔截技術(shù),開發(fā)了一款基于NDIS6.0過濾驅(qū)防火墻軟件,經(jīng)過測試,它對非法數(shù)據(jù)包具有強(qiáng)大的攔截能力。

        關(guān)鍵詞:NDIS過濾驅(qū)動;防火墻;包過濾;HASH雙鏈表;Duilib

        中圖分類號: TP391.9 文獻(xiàn)標(biāo)識碼:A

        1 引言(Introduction)

        防火墻在網(wǎng)絡(luò)安全防護(hù)中具有重要作用,從應(yīng)用的角度來看,防火墻可以分為企業(yè)級防火墻和個人防火墻[1]。前者主要是部署在內(nèi)外部網(wǎng)絡(luò)的邊界,對內(nèi)外部網(wǎng)絡(luò)實施隔離,從而保護(hù)內(nèi)部網(wǎng)絡(luò)的安全,而后者則通過軟件的方式來實現(xiàn),防火墻包過濾按順序執(zhí)行從第一條規(guī)則開始,直到找到一個匹配的規(guī)則。如果沒有找到匹配的規(guī)則,則數(shù)據(jù)包被默認(rèn)規(guī)則處理,叫做規(guī)則庫的線性搜索算法。因此,過濾過程的計算復(fù)雜度大大取決于每個過濾規(guī)則的長度(規(guī)則數(shù)量字段),以及找到一個匹配的深度過濾規(guī)則的安全政策(過濾規(guī)則的數(shù)量)[2]。為了提高防火墻的運行速度,將防火墻的過濾規(guī)則組織成HASH雙鏈表,實驗表明在防火墻規(guī)則足夠多時候,HASH雙鏈表極大的提高了運行速度。

        本文深入研究基于NDIS過濾驅(qū)動的數(shù)據(jù)包攔截方法和Windows內(nèi)核態(tài)驅(qū)動程序與用戶態(tài)應(yīng)用程序間的通信機(jī)制,設(shè)計并實現(xiàn)了一種基于Windows內(nèi)核態(tài)的個人防火墻系統(tǒng)。

        2 系統(tǒng)的設(shè)計目標(biāo)(System design object)

        本防火墻對所有的網(wǎng)絡(luò)報文進(jìn)行監(jiān)控,從而對非法報文進(jìn)行攔截,隔斷非法入侵。為了保護(hù)系統(tǒng)安全目的,本防火墻主要完成以下功能。

        (1)驅(qū)動程序

        可以根據(jù)需要設(shè)置過濾規(guī)則,規(guī)則設(shè)置是防火墻的核心功能之一,基于五元組[3]的數(shù)據(jù)包過濾規(guī)則可以管理應(yīng)用聯(lián)網(wǎng)進(jìn)程的黑白名單、端口過濾、IP過濾、異常端口連接等。用戶可以通過設(shè)置規(guī)則來自由的對數(shù)據(jù)進(jìn)行過濾。降低計算機(jī)被入侵的風(fēng)險對所有的網(wǎng)絡(luò)數(shù)據(jù)包拆包分析,根據(jù)過濾規(guī)則匹配,從而決定包過濾或放行。對網(wǎng)絡(luò)報文的統(tǒng)計,實時統(tǒng)計所有數(shù)據(jù)包,對錯誤的數(shù)據(jù)報文記錄日志。日志文件是用于記錄防火墻操作事件的記錄文件或文件集合,為網(wǎng)絡(luò)維護(hù)者判斷故障提供依據(jù)。

        (2)主程序

        防火墻的過濾規(guī)則的管理需要一個友好的界面供用戶操作,比如添加刪除規(guī)則和啟動關(guān)閉防火墻等。

        (3)規(guī)則管理

        規(guī)則設(shè)置是個人防火墻的核心功能之一,通過規(guī)則設(shè)置可以管理應(yīng)用聯(lián)網(wǎng)進(jìn)程的黑白名單、端口過濾、域名過濾、IP過濾、異常端口連接等。用戶可以通過設(shè)置規(guī)則來自由的對數(shù)據(jù)進(jìn)行過濾。降低計算機(jī)被入侵的風(fēng)險。基于五元組的數(shù)據(jù)包過濾。

        3 關(guān)鍵技術(shù)(Key technology)

        3.1 驅(qū)動程序的設(shè)計

        NDIS5.0和之前的版本已經(jīng)被官方抑制,換句話說就是Windows Vista和之后的系統(tǒng)不在支持NDIS5.0,NDIS6.0支持Windows Vista和之后的系統(tǒng)。NDIS6.0內(nèi)核網(wǎng)絡(luò)驅(qū)動程序可分為微端口驅(qū)動程序、協(xié)議驅(qū)動程序、過濾驅(qū)動程序、中間驅(qū)動程序。其中過濾驅(qū)動程序是NDIS6.0新引入的驅(qū)動程序模型。過濾驅(qū)動程序提供微端口驅(qū)動程序過濾服務(wù),它可以實現(xiàn)數(shù)據(jù)過濾應(yīng)用程序安全或其他目的,監(jiān)控和收集網(wǎng)絡(luò)數(shù)據(jù)統(tǒng)計信息的應(yīng)用程序。過濾驅(qū)動可以監(jiān)視和修改協(xié)議驅(qū)動程序和微端口的驅(qū)動程序之間的交互,過濾驅(qū)動程序更容易實現(xiàn),處理開銷低于NDIS中間驅(qū)動程序。本防火墻驅(qū)動程序部分就是在該框架的基礎(chǔ)上實現(xiàn)的。

        在NDIS 6.0和以后的版本,NET_BUFFER是網(wǎng)絡(luò)數(shù)據(jù)的基本單元。每個NET_BUFFER結(jié)構(gòu)有一個MDL鏈表,一個MDL鏈表組成一個完整的數(shù)據(jù)包。多個NET_BUFFER結(jié)構(gòu)可以被附加到一個NET_BUFFER_LIST結(jié)構(gòu),NET_BUFFER結(jié)構(gòu)組織是一個以null結(jié)尾單鏈表。下面給出微軟對這三個數(shù)據(jù)結(jié)構(gòu)的定義:

        typedef struct _NET_BUFFER {

        NET_BUFFER_HEADER NetBufferHeader;

        USHORT ChecksumBias;

        USHORT Reserved;

        NDIS_HANDLE NdisPoolHandle;

        ...

        } NET_BUFFER,*PNET_BUFFER;

        typedef union _NET_BUFFER_HEADER {

        NET_BUFFER_DATA NetBufferData;

        SLIST_HEADER Link;

        } NET_BUFFER_HEADER,*PNET_BUFFER_HEADER;

        typedef struct _NET_BUFFER_DATA {

        PNET_BUFFER Next;

        PMDL CurrentMdl;

        ULONG CurrentMdlOffset;

        NET_BUFFER_DATA_LENGTH NbDataLength;

        PMDL MdlChain;

        ULONG DataOffset;

        } NET_BUFFER_DATA,*PNET_BUFFER_DATA;

        typedef struct _NET_BUFFER_LIST {

        NET_BUFFER_LIST_HEADER NetBufferListHeader;

        PNET_BUFFER_LIST_CONTEXT Context;

        PNET_BUFFER_LIST ParentNetBufferList;

        NDIS_HANDLE NdisPoolHandle;

        ...

        } NET_BUFFER_LIST,*PNET_BUFFER_LIST;

        typedef union _NET_BUFFER_LIST_HEADER {

        NET_BUFFER_LIST_DATA NetBufferListData;

        SLIST_HEADER Link;

        } NET_BUFFER_LIST_HEADER,*PNET_BUFFER_LIST_HEADER;

        typedef struct _NET_BUFFER_LIST_DATA {

        PNET_BUFFER_LIST Next;

        PNET_BUFFER FirstNetBuffer;

        } NET_BUFFER_LIST_DATA,*PNET_BUFFER_LIST_DATA;

        MDL(內(nèi)存描述符列表)是一個系統(tǒng)定義的結(jié)構(gòu),通過一系列物理地址描述緩沖區(qū)。執(zhí)行直接I/O的驅(qū)動程序從I/O管理器接收一個MDL的指針,并通過MDL讀寫數(shù)據(jù)。

        NET_BUFFER_DATA結(jié)構(gòu)包含MDL用于管理數(shù)據(jù)緩沖區(qū)的信息附加到NET_BUFFER結(jié)構(gòu),并確定下一個NET_BUFFER結(jié)構(gòu)NET_BUFFER列表結(jié)構(gòu)。而每個NET_BUFFER結(jié)構(gòu)均包含一個MDL鏈表,MDL是存放網(wǎng)絡(luò)數(shù)據(jù)的倉庫。NET_BUFFER鏈表附加在NET_BUFFER_LIST結(jié)構(gòu)中。附加在同一個NET_BUFFER_LIST上的數(shù)據(jù)擁有相同的以太網(wǎng)類型,IP協(xié)議,源MAC地址和目標(biāo)MAC地址。MDL(內(nèi)存描述鏈表)、NET_BUFFER、NET_BUFFER_LIST_CONTEXT和NET_BUFFER_LIST之間的關(guān)系如圖1所示。

        NDIS過濾驅(qū)動程序框架的數(shù)據(jù)包發(fā)送和接收回調(diào)函數(shù)分別是FilterReceiveNetBufferLists、FilterSendNetBufferLists、防火墻的過濾規(guī)則在這兩個回調(diào)函數(shù)逐一匹配,更加過濾規(guī)則的行為拒絕,發(fā)送或者接收。對發(fā)送回調(diào)函數(shù)介紹如下:

        VOID FilterSendNetBufferLists(

        NDIS_HANDLE FilterModuleContext,

        PNET_BUFFER_LIST NetBufferLists,

        NDIS_PORT_NUMBER PortNumber,

        ULONG SendFlags )

        { ...

        QUEUE_HEADER NormalHead,DropHead;

        SendHandler(pFilter,NetBufferLists,&NormalHead,&

        DropHead);

        if (!IsQueueEmpty(&NormalHead)) {

        NdisFSendNetBufferLists(pFilter->

        FilterHandle,ENTRY_TO_NET_BUFFER_LIST(NormalHead.Head),PortNumber,SendFlags);

        }

        if (!IsQueueEmpty(&DropHead)) {

        NdisFSendNetBufferListsComplete(pFilter->

        FilterHandle,ENTRY_TO_NET_BUFFER_LIST(DropHead.Head),DispatchLevel

        NDIS_SEND_COMPLETE_FLAGS_DISPATCH_LEVEL:0);

        }

        }

        對將要發(fā)送的數(shù)據(jù)包交由SendHanler回調(diào)函數(shù)處理,返回NormalHead鏈表和DropHead鏈表,對NormalHead鏈表的數(shù)據(jù)包全部正常發(fā)送,對DropHead鏈表里的所有數(shù)據(jù)包做丟包處理。

        ULONG SendHandler(

        __in PMS_FILTER pFilter,

        __in PNET_BUFFER_LIST pSrcNbls,//將原來的鏈表分開

        __out PQUEUE_HEADER pNormalHead,//需要接受的Nbl

        __out PQUEUE_HEADER pDropHead//需要丟棄的數(shù)據(jù)鏈表

        ) {...

        PKTACTION pktAction;

        PNET_BUFFER pNetBuffer=NULL;

        while (pSrcNbls) {

        pNextNbl=NET_BUFFER_LIST_NEXT_NBL(pSrcNbls);

        NET_BUFFER_LIST_NEXT_NBL(pSrcNbls)=NULL;

        pNetBuffer=NET_BUFFER_LIST_FIRST_NB(pSrcNbls);

        uLength=NET_BUFFER_DATA_LENGTH(pNetBuffer);

        pBuf=MyReadNetBufferData(pFilter->

        FilterHandle,pNetBuffer);

        if (pBuf==NULL) {

        pNumsOfNormalNbl++;

        InsertTailQueue(pNormalHead,pSrcNbls);

        goto DoNextNBL;//直接跳到下一步

        }

        pktAction=DoSendPacket(pBuf,uLength);//數(shù)據(jù)包的過濾函數(shù)

        if (pktAction==PKT_DROP) {//收到bad包直接插入丟包NBL跳到下一步循環(huán)

        FILTER_FREE_MEM(pBuf);

        InsertTailQueue(pDropHead,pSrcNbls);//插入丟包NBL

        goto DoNextNBL;//直接跳到下一步

        }

        FILTER_FREE_MEM(pBuf);

        pNumsOfNormalNbl++;

        InsertTailQueue(pNormalHead,pSrcNbls);

        DoNextNBL:

        pSrcNbls=pNextNbl;

        }

        return pNumsOfNormalNbl;

        }

        SendHandler回調(diào)函數(shù)對將要發(fā)送的數(shù)據(jù)鏈表拆包對于每個數(shù)據(jù)包的內(nèi)容交付給DoSendPacket回調(diào)函數(shù)。DoSendPacket(數(shù)據(jù)包、數(shù)據(jù)包的長度),函數(shù)定義如下:

        PKTACTION DoSendPacket(PUCHAR pData,ULONG uLength) {

        ...

        if (錯誤的報文)

        return PKT_DROP;

        PLIST_ENTRY pRuleHead;

        PLIST_ENTRY pRuleEntry;

        BOOLEAN bFound=FALSE;

        PIPFILTER p=NULL;

        int id=FilterHashValue(pIP->srcIp,pIP->

        dstIp);//查找hash鏈表

        FILTER_ACQUIRE_LOCK(&g_IPFilterManage.Locks[id],F(xiàn)ALSE);

        pRuleHead=&g_IPFilterManage.Lists[id];

        for (pRuleEntry=pRuleHead->Flink; pRuleEntry!=pRuleHead; pRuleEntry=pRuleEntry->

        Flink) {

        p=CONTAINING_RECORD(pRuleEntry,IPFILTER,ListEntry);

        if (p->srcIp==pIP->srcIp&&p->

        dstIp==pIP->dstIp&&p->srcPort==sPort&&p->

        dstPort==dPort) {

        bFound=TRUE;

        break;

        }

        }

        FILTER_RELEASE_LOCK(&g_IPFilterManage.Locks[id],F(xiàn)ALSE);

        if (bFound) return p->action;

        return PKT_SEND;

        }

        DoSendPacket函數(shù)是防火墻發(fā)送數(shù)據(jù)包匹配防火墻的關(guān)鍵,通過查找hash(拉鏈法)雙鏈表,如果找到相應(yīng)的規(guī)則就按照規(guī)則定義的行為返回,否則直接發(fā)送數(shù)據(jù)包不做處理。

        3.2 應(yīng)用程序的設(shè)計

        應(yīng)用程序是防火墻的GUI部分,負(fù)責(zé)向用戶報告結(jié)果和提示操作的界面。應(yīng)用程序?qū)?shù)據(jù)包監(jiān)控分析及過濾規(guī)則的設(shè)置,用戶通過防火墻安全規(guī)則的設(shè)定,向數(shù)據(jù)包攔截模塊傳遞規(guī)則?;贛FC和WTL框架的程序界面的不夠友好,如果想做出漂亮的個性化界面,需要重新繪制各種控件比如按鈕、滾動條、編輯框、列表、下來菜單、容器等。而duilib是一款基于win32開源的界面庫,已經(jīng)繪制好各種常用的控件,編寫漂亮的界面只需對xml進(jìn)行編輯即可,這點跟html原理有點像,duilib遵循BSD協(xié)議,可以免費用于商業(yè)項目。

        現(xiàn)在大多數(shù)有關(guān)界面的產(chǎn)品,都是基于DirectUI的設(shè)計思想,界面和邏輯分離。基于以上原因,決定使用Windows比較流行的duilib庫進(jìn)行應(yīng)用程序的開發(fā),其實也有其他的一些庫,但是比較而言duilib更具優(yōu)勢。duilib是一款強(qiáng)大的界面開發(fā)工具,可以將用戶界面和處理邏輯徹底分離,提高開發(fā)效率[4]。

        3.3 應(yīng)用程序和驅(qū)動程序的通信

        個人防火墻不僅要實現(xiàn)對網(wǎng)絡(luò)數(shù)據(jù)包的截獲,還要在分析數(shù)據(jù)包后,根據(jù)安全規(guī)則對數(shù)據(jù)包進(jìn)行處理,并且將這些事件記入日志。由于安全規(guī)則設(shè)置和日志的記錄一般是由一個具有人機(jī)界面的應(yīng)用程序來完成,因此,要實現(xiàn)個人防火墻還必須實現(xiàn)設(shè)備驅(qū)動程序和應(yīng)用程序的信息交互[5]。設(shè)備驅(qū)動程序和應(yīng)用程序之間的通信包括應(yīng)用程序傳送數(shù)據(jù)給設(shè)備驅(qū)動程序和設(shè)備驅(qū)動程序給應(yīng)用程序發(fā)送消息兩個方面。前者實現(xiàn)較為容易,后者實現(xiàn)遠(yuǎn)比前者復(fù)雜。驅(qū)動程序和應(yīng)用程序之間通過共享內(nèi)存的方式實現(xiàn)通信,兩者間的內(nèi)存共享有兩種實現(xiàn)方法,一種是通過共享內(nèi)存對象方法來實現(xiàn),另一種是通過設(shè)備輸入和輸出控制(IOCTL)方法來實現(xiàn)[6]。

        內(nèi)存映射方法:首先由在驅(qū)動程序級分配緩沖區(qū),再將這個緩沖區(qū)映射到特定的用戶程序的地址空間,并將映射地址返回給用戶程序,供內(nèi)核線程與用戶線程共享緩沖區(qū)。這種方式是內(nèi)核來分配內(nèi)存空間,但是使用MmAllocatePagesForMDL從主內(nèi)存池中分配,返回得到一個MDL,對于驅(qū)動如何使用該共享內(nèi)存,采用MmGetSystemAddressForMdlSafe得到其內(nèi)核地址。對于應(yīng)用層使用該共享內(nèi)存,采用MmMapLockedPagesSpecifyCache映射到應(yīng)用層進(jìn)程地址空間中,返回用戶層地址空間的起始地址,將其放在IOCTL中返回給用戶應(yīng)用程序。設(shè)定AccessMode參數(shù)為UserMode。對MmMapLockedPagesSpecifyCache函數(shù)調(diào)用返回值是MDL描述內(nèi)存頁映射的用戶虛擬地址空間地址。驅(qū)動可以將其放在對應(yīng)IOCTL的緩存中給用戶應(yīng)用程。在不需要時將分配的內(nèi)存清除掉。你需要調(diào)用MmFreePageFromMdl來釋放內(nèi)存頁。并且調(diào)用IoFreeMdl來釋放由MmAllocatePageForMdl(Ex)創(chuàng)建的MDL[7]。

        設(shè)備輸入和輸出控制(IOCTL)方法:在內(nèi)核線程和用戶線程之間共享緩沖區(qū)最簡單的方法是使用DeviceIoControl函數(shù)。用戶程序發(fā)送一個IO控制碼(IOCTL)給驅(qū)動程序,同時還傳遞一個指向要共享的緩沖區(qū)的指針,內(nèi)核程序與用戶程序根據(jù)該指針實現(xiàn)對緩沖區(qū)的訪問。操作過程是首先由用戶線程分配要共享的緩沖區(qū)。再調(diào)用DeviceIoControl,將被共享的緩沖區(qū)的地址和長度放在參數(shù)OutBuffer中,同時設(shè)置共享模式,驅(qū)動程序?qū)⒏鶕?jù)共享模式來決定如何訪問緩沖區(qū)。共享模式包括緩沖IO方式與直接IO方式兩種緩沖IO方式[8]。

        4 驅(qū)動的安裝和調(diào)試(The installation and commissioning of driver)

        目標(biāo)平臺:Win7、Win8、Win10。

        開發(fā)環(huán)境:Visual Studio 2015 Common和Windows WDK10.0.26639、Windows SDK10.0.26639。

        調(diào)試環(huán)境:VM 虛擬機(jī)。

        NDIS驅(qū)動程序使用VS2015編譯完畢,在Release目錄生成的文件firewallex.inf、firewallex.sys、firewallex.cer。

        .inf是驅(qū)動程序的安裝信息,.sys就是我們驅(qū)動程序,.cer是證書文件,驅(qū)動程序的安裝證書是必需的。

        安裝的話提供了兩種方法:第一種利用Windows自身的工具,右鍵本地連接選擇屬性,點擊安裝按鈕,在彈出的對話框選擇服務(wù),然后在瀏覽文件對話框選擇我們的驅(qū)動程序firewallex.sys,按照提示下一步安裝即可。如圖2所示firewallex NDIS LightWeight Filter已經(jīng)安裝成功。

        第二種安裝方法,編譯安裝程序installdrv.exe,安裝命令installdrv.exe-i firewallex,卸載命令installdrv.exe-u firewallex。第一種方法太過繁瑣,根據(jù)微軟提供的開發(fā)接口,將驅(qū)動程序用NSIS打包制作安裝包,安裝完成驅(qū)動自動安裝上。這種方法對用戶來說簡便多了。

        驅(qū)動調(diào)試:驅(qū)動調(diào)試工具比較多,筆者采用的是DebugView工具進(jìn)行調(diào)試,內(nèi)核驅(qū)動程序代碼的編寫需注意規(guī)范和嚴(yán)格控制內(nèi)存的申請與回收,否則極易藍(lán)屏。

        5 結(jié)論(Conclusion)

        本文針對目前日益嚴(yán)重的網(wǎng)絡(luò)安全問題,提出并實現(xiàn)了基于NDIS過濾驅(qū)動技術(shù)的個人防火墻技術(shù)。在分析了個人防火墻的主要功能模塊后,重點討論了實現(xiàn)這些功能模塊的主要技術(shù):網(wǎng)絡(luò)數(shù)據(jù)包攔截技術(shù)以及設(shè)備驅(qū)動程序和應(yīng)用程序的通信技術(shù)等。目前,這些技術(shù)已經(jīng)在項目中實現(xiàn)并使用正常。高級Windows防火墻大多使用NDIS驅(qū)動技術(shù)實現(xiàn),但是要實現(xiàn)有實用價值的防火墻并非易事,做NDIS驅(qū)動程序開發(fā)時,如果不注意代碼的規(guī)范書寫,越界保護(hù),共享數(shù)據(jù)加鎖等機(jī)制,一旦啟用防火墻系統(tǒng)極易藍(lán)屏,嚴(yán)重的可能會導(dǎo)致重裝系統(tǒng),并且NDIS驅(qū)動代碼的入門和理解并非易事,很多時候需要利用微軟提供的函數(shù),因此熟悉NDIS的SDK也是一個過程。本文闡述用NDIS6.0 filter框架來實現(xiàn)數(shù)據(jù)包截獲的方法,并且提供具體的防火墻代碼和驅(qū)動調(diào)試以及安裝等信息,為從事NDIS6.0過濾驅(qū)動技術(shù)人員提供了參考。

        參考文獻(xiàn)(References)

        [1] Ma,Ning.Research of Personal Firewall Technology Based on Windows[J].Computer Science and Network Technology,2013:655-658.

        [2] Trabelsi,et al.Statistical Dynamic Splay Tree Filters Towards Multilevel Firewall Packet Filtering Enhancement[J].Computers and Security,2015,53:109-131.

        [3] Ding.L,et al.Research on Linkage Collaboration of Snort and WFP Based on Windows 7[J].Electronic Engineering and Information Science,2015,53:109-131.

        [4] 付立友,邢繼生.基于WinCE機(jī)器人示教器用戶界面設(shè)計[J].工業(yè)控制計算機(jī),2016,29(3):27-30.

        [5] 何映,覃以威,李丹.基于Windows內(nèi)核態(tài)個人防火墻的設(shè)計與實現(xiàn)[J].現(xiàn)代電子技術(shù),2012,35(6):49-56.

        [6] 王蘭英,居錦武.Windows內(nèi)核線程與用戶線程共享緩沖區(qū)的實現(xiàn)[J].內(nèi)江師范學(xué)院學(xué)報.2008,23(2):31-33.

        [7] 梁煜.基于Windows的防火墻設(shè)計與實現(xiàn)[J].電腦開發(fā)與應(yīng)用,2015,25(1):35-37.

        [8] 范莉萍.基于NDIS技術(shù)的個人防火墻設(shè)計與實現(xiàn)[J].計算機(jī)應(yīng)用與軟件,2008,25(8):259-260.

        作者簡介:

        王亞偉(1989-),男,碩士生.研究領(lǐng)域:軟件開發(fā).

        猜你喜歡
        防火墻
        筑牢防火墻 系緊安全帶
        全民總動員,筑牢防火墻
        水上消防(2020年1期)2020-07-24 09:26:12
        構(gòu)建防控金融風(fēng)險“防火墻”
        智慧防火墻
        海南新農(nóng)合有了“防火墻”
        在舌尖上筑牢抵御“僵尸肉”的防火墻
        IT時代周刊(2015年7期)2015-11-11 05:49:50
        下一代防火墻要做的十件事
        自動化博覽(2014年6期)2014-02-28 22:32:13
        新漢 HENGETM工業(yè)防火墻
        自動化博覽(2014年5期)2014-02-28 22:31:38
        筑起網(wǎng)吧“防火墻”
        中國火炬(2010年10期)2010-07-25 07:43:49
        自己選擇十大免費防火墻
        青青草视全福视频在线| 国产免费网站看v片元遮挡| 久久青青草原亚洲AV无码麻豆| 欧美老妇与zozoz0交| 久久久av波多野一区二区| 国产盗摄xxxx视频xxxx| 国产精品成人免费视频网站京东 | 欧美怡春院一区二区三区| 日韩精品成人无码专区免费| 欧美黑吊大战白妞| 欧美喷潮久久久xxxxx| 人妻熟妇乱系列| 色综合久久久久综合一本到桃花网| 亚洲一区二区三区中文视频| 视频一区中文字幕在线观看| 一区二区三区四区草逼福利视频| 虎白m粉嫩小在线播放| 精品福利一区二区三区免费视频| 人妻精品久久久久中文字幕| 蜜桃视频无码区在线观看| 色欲aⅴ亚洲情无码av蜜桃| 国产在线网址| 国产视频在线播放亚洲| 国产成人大片在线播放| 轻点好疼好大好爽视频| 中文字幕一区二区三区精彩视频 | 午夜免费福利在线观看| 无码高潮久久一级一级喷水 | 夜夜被公侵犯的美人妻| 水蜜桃一二二视频在线观看免费| 国产三级视频一区二区| 亚洲国产精品激情综合色婷婷| 白白色发布会在线观看免费| 成人免费直播| 91日韩高清在线观看播放| 国产在线观看免费一级| 国产一区在线视频不卡| 一区二区三区中文字幕p站| 亚洲精品久久久久久久久久吃药| 国产va免费精品高清在线| 性导航app精品视频|