亚洲,欧美,中文字幕,小婕子伦流澡到高潮视频,无码成人aaaaa毛片,性少妇japanesexxxx,山外人精品影院

?一種基于網(wǎng)絡(luò)驅(qū)動的Windows防火墻設(shè)計

摘 要:論文提供了一種Windows防火墻設(shè)計方案,它是基于Windows 2000操作系統(tǒng)、DDK forWindows 2000工具開發(fā)包以及VC++6.0等平臺而開發(fā)的程序。該程序按照功能模式劃分,可分為兩大塊內(nèi)容,一個是Filter_Hook Driver驅(qū)動,另一個就是用戶操作界面了。在這里,F(xiàn)ilter_Hook Driver驅(qū)動的作用是注冊過濾鉤子回調(diào)函數(shù),并且按照用戶提供的過濾規(guī)則進行數(shù)據(jù)包的過濾;用戶操作界面的作用是實現(xiàn)用戶自定義去增添與刪減過濾規(guī)則,用戶并且可以自行以文件形式來保存增添進來的過濾規(guī)則。

關(guān)鍵詞:網(wǎng)絡(luò)驅(qū)動;防火墻;回調(diào)函數(shù)

中圖分類號: TP309 文獻標識碼:B

Design of Windows Firewall Based on Network Driver

Zhang Hui

(Business College of Shanxi University ShanxiTaiyuan 030031)

Abstract The paper provides a design for firewall, it is Windows 2000 operating system, DDK basedon for Windows 2000 development kit and VC++6.0 platform and development program. This procedurein accordance with the functional model division, can be divided into two blocks of content, one is theFilter_Hook Driver, and the other is the user interface. Here, the Filter_Hook Driver is registered filterhook callback function and data packet filtering according to the filtering rules provided by the user; theuser interface function is realizes the user to add and delete custom filtering rules, and we can be in theform of a document to save the filtering rules added.

Key words network driver; firewall; callback function

1 引言

Internet的高速發(fā)展對人們的生活習(xí)慣、事物認知都產(chǎn)生了巨大的改變。人們體驗著互聯(lián)網(wǎng)在生活上所帶來的全新感知,習(xí)慣著信息時代所帶來的各種的便利。然而,網(wǎng)絡(luò)在給大家?guī)砩畋憷耐瑫r,也給人們的安全帶來了威脅。防火墻作為一種重要的網(wǎng)絡(luò)安全技術(shù),越來越發(fā)揮著重要的作用。

防火墻的作用是按用戶自定義的規(guī)則來過濾對其所抓取的數(shù)據(jù)包,因此防火墻設(shè)計的核心任務(wù)就是要實現(xiàn)對數(shù)據(jù)包的抓取。抓取數(shù)據(jù)包也有很多方法,比較簡單的方法是使用一個基于Windows平臺的免費公共網(wǎng)絡(luò)訪問系統(tǒng) —Winpcap(Windows Packet Capture),但Winpcap的主要功能是獨立于主機協(xié)議(如TCPIP)去發(fā)送和接收原始數(shù)據(jù)的。這就意味著,Winpcap并不能夠阻塞、過濾或者控制其它的應(yīng)用程序?qū)?shù)據(jù)包的接收和發(fā)送,它的作用僅僅是監(jiān)聽網(wǎng)絡(luò)上傳送的數(shù)據(jù)包。使用Win2000 DDK中提供的Filter-Hook Driver驅(qū)動(過濾鉤子驅(qū)動)來實現(xiàn)數(shù)對據(jù)包的過濾是一個更好的選擇 [1,2] 。

2 程序設(shè)計方案

如圖1所示,基于網(wǎng)絡(luò)驅(qū)動的Windows防火墻設(shè)計可以分成兩個部分,用戶界面代碼部分和過濾鉤子驅(qū)動代碼部分。而過濾鉤子驅(qū)動代碼部分又是依賴于網(wǎng)絡(luò)適配器模塊,網(wǎng)絡(luò)適配器模塊是基于IP Filter_Hook代碼和網(wǎng)絡(luò)適配器代碼兩部分。也就是說只要將IP Filter_Filter代碼以及網(wǎng)絡(luò)適配器驅(qū)動代碼做出編寫,那么這個設(shè)計的過濾鉤子驅(qū)動代碼部分也就能夠有了大概的輪廓;在用戶界面代碼部分,只要通過基礎(chǔ)的代碼編寫出簡易的用戶界面即可。

利用在Windows 2000 DDK中所介紹的Filter-

Hook Driver驅(qū)動來實現(xiàn)對所有的進出接口的數(shù)

據(jù)進行過濾。這其中主要是包含這些過程:首先開始先要確定并且搭建Kernel模式Filter-HookDriver驅(qū)動,接下來就是要獲取所有指向IP FilterDriver驅(qū)動的指針,然后就要運用前面所獲取到的指針,來進行發(fā)送有不同類型的IRP(一種規(guī)范化的技術(shù)文檔)將過濾函數(shù)實現(xiàn)安裝,再接著將抓取到的數(shù)據(jù)準備過濾,最后在過濾數(shù)據(jù)完成以后,將能夠過濾函數(shù)撤消掉 [3] 。

在用戶界面代碼部分所涉及到的內(nèi)容其實就是用戶能夠看到的程序界面,也就是用戶和防火墻進行對話的對象。它負責(zé)管理用戶自己定義的過濾規(guī)則,并且與數(shù)據(jù)Filter_Hook驅(qū)動功能來實現(xiàn)互相通信。還有就是主要利用Filter_HookDriver驅(qū)動模塊的輸出接口所提供的對象指針來實現(xiàn)注冊過濾函數(shù),撤消過濾函數(shù),安裝新的過濾規(guī)則,清除所有規(guī)則這四個功能。

3 Filter_Hook Driver驅(qū)動的實現(xiàn)

3.1 創(chuàng)建Kernel模式驅(qū)動

首先需要通過Filter_Hook Driver驅(qū)動程序 來 設(shè) 置 回 調(diào) 函 數(shù) , 在 過 濾 鉤 子 驅(qū) 動 程 序 作為 該 驅(qū) 動 程 序 的 主 體 , 并 且 通 過 系 統(tǒng) 提 供 的IPFilter Driver驅(qū)動注冊這些回調(diào)函數(shù),做完這些之后,IP Filter_Driver驅(qū)動就可以通過濾器鉤子來想辦法去處理傳入或者傳出的數(shù)據(jù)包。PacketFilterExtensionPtr數(shù)據(jù)類型的定義是用來定義注冊過的過濾鉤子驅(qū)動。

Filter_Hook Driver驅(qū)動函數(shù)會對這些傳進來以及傳出去的數(shù)據(jù)包來做一些不一樣的處理動作。開始是將數(shù)據(jù)包的專屬信息和IP Filter Driver驅(qū)動提供給過Filter Hook的信息來做一次對比,通過這個來對比,數(shù)據(jù)包接下來該做怎樣的處理。接下來,在Filter_Hook Driver驅(qū)動對數(shù)據(jù)包做完檢測之后,就去回復(fù)響應(yīng)代碼或者將PF_PASS給IP Filter_Hook,并且告知IP Filter_Hook驅(qū)動對數(shù)據(jù)包來做出處理 [4] 。

3.2 設(shè)置和清除Filter_Hook

通過Driver Entry函數(shù)來自定義驅(qū)動初始化的部分以及驅(qū)動卸載的部分。Filter_Hook Driver驅(qū)動程序在設(shè)置Filter Hook回調(diào)函數(shù)的時候,并且對IP Filter Hook驅(qū)動的每個傳入IP數(shù)據(jù)包或者傳出的IP數(shù)據(jù)包發(fā)出通知,讓它調(diào)來使用鉤子回調(diào)函數(shù)。Filter Hook會先清除之前注冊的過濾函數(shù)。Filter Hook驅(qū)動首先需要將設(shè)備對象的指針作為IP過濾器驅(qū)動來創(chuàng)建一個IRP,之后,F(xiàn)ilter_Hook Driver驅(qū)動把這個IRP發(fā)送給IP Filter Hook驅(qū)動,這樣是為了記錄并且清除回調(diào)函數(shù) [5] 。

對Filter_Hook Driver驅(qū)動的設(shè)置或者清除回歸函數(shù)的方式描述:想要獲得IP Filter Hook驅(qū)動的對象指針,F(xiàn)ilter_Hook Driver驅(qū)動函數(shù)就需要調(diào)用IoGet函數(shù)。在這次調(diào)用中,F(xiàn)ilter_Hook Driver驅(qū)動傳遞了指向緩沖區(qū)的指針以及容納返回的文件和設(shè)備的指針。Filter_Hook Driver驅(qū)動程序想要建立一個IRP,需要使用PF_SET_EXTENSION_POINTER控制碼,并且把它提交給IP Filter Hook驅(qū)動程序來實現(xiàn),通常情況下,F(xiàn)ilter-hook驅(qū)動程序建立所需的IRP都是通過調(diào)用IoBuildDeviceIoControlRequest函數(shù)。END_MESSAGE_MAP()CFirewallAppCFirewallApp(){}CFirewallApp theApp;SetRegistryKey(_T(FirewallApp));if (!ProcessShellCommand(cmdInfo))return FALSE;enum { IDD = IDD_ABOUTBOX };protected}BEGIN_MESSAGE_MAP(CAboutDlg,CDialog)END_MESSAGE_MAP()

在這次調(diào)用之中,過濾器鉤子驅(qū)動發(fā)送了指定值的IOCTL_PF_SET_EXTENSION參數(shù)以及包括了PF_SET_EXTENSION_HOOK_INFO結(jié)構(gòu)的緩沖區(qū)域。同時為了設(shè)置Filter_Hook,這個結(jié)構(gòu)還包含有設(shè)置Filter_Hook回調(diào)函數(shù)地址的信息。這個控制碼也被用來清除回調(diào)函數(shù)從IP FilterHook的程序之中 [6,7] 。

3.3 實現(xiàn)FILTER_HOOK

將兩個或者兩個以上的過濾規(guī)則連在一起的鏈表稱之為過濾列表,在這個程序里它定自義了一個CFilterList的結(jié)構(gòu),也就是將指針指向后一個過濾規(guī)則的pNext指針添加到每個規(guī)則上面,通過這種辦法就能夠把兩個或者兩個以上的過濾規(guī)則連在一起形成過濾列表。而需要做的就是去記錄首地址就能夠來整理這些所有的過濾規(guī)則。在鉤子回調(diào)函數(shù)中,當有數(shù)據(jù)包需要通過時,就得去遍歷整個列表。

函數(shù)開始過濾,首先將保重的內(nèi)容復(fù)制到共享的內(nèi)存中,接著來判斷是否符合IP規(guī)則。如果符合IP規(guī)則,那么就對IP規(guī)則去做出處理,并且接著選取下條過濾規(guī)則,來做出判斷。如果不符合IP規(guī)則的,就再去檢查看是否符合ICMP規(guī)則,如果符合ICMP的規(guī)則,那么就按ICMP規(guī)則來處理,并且選取下一條規(guī)則,來做出判斷。如果ICMP規(guī)則也不符合的話,那么久去判斷看是否符合TCP規(guī)則,如果符合TCP規(guī)則的話,那么就按照TCP的規(guī)則來處理,并且選取下一條規(guī)則。但是,要是不符合的話,那么就檢查看是否符合UDP規(guī)則,如果符合UDP的規(guī)則的話,那么就按照UDP的規(guī)則來處理,并且來選取下一條規(guī)則。像上面的情況一樣,如果不符合規(guī)則,那么就結(jié)束規(guī)則的過濾。

通過CDriver類向驅(qū)動程序來發(fā)送這些設(shè)備控制代碼用戶程序的主要的實現(xiàn)。程序在初始化時通過加載Filter_Hook Driver驅(qū)動,然后當點擊開始按鈕時向驅(qū)動發(fā)送START_IP_HOOK來安裝過濾鉤子;點擊停止按鈕時發(fā)送STOP_IP_HOOK控制代碼來清除過濾鉤子;點擊添加過濾規(guī)則選項時,就會彈出添加規(guī)則對話框,來為使用者提供添加過濾規(guī)則的輸入界面;點擊刪除選項時則會實現(xiàn)刪除所選定的過濾規(guī)則的功能;當使用者點擊安裝規(guī)則選項和卸載規(guī)則選項時,則會分別發(fā)送控制代碼ADD_FILTER和CLEAR_FILTER來實現(xiàn)過濾規(guī)則的加載或者卸載。

4 結(jié)束語

本文運用了Filter-Hook Driver技術(shù),設(shè)計了使用者自動添加、刪除過濾規(guī)則,同時可以按照使用者已有的過濾規(guī)則完成數(shù)據(jù)包過濾等的功能。然而,經(jīng)過檢測使用者明顯可以觀察到,當使用者添加了比較多的過濾規(guī)則并進行數(shù)據(jù)過濾時,其反應(yīng)的速度就會變的比較慢,因此使用者還需要努力對過濾規(guī)則對比算法做出進一步的改進。此外,還可以增加像日志功能這樣的一系列類似的功能,日志功能是一項比較重要的功能,只有通過防火墻日志,使用者才可以更好的對防火墻做維護以及管理。

基金項目:

1. 山西省教育科學(xué)“十三五”規(guī)劃2016年度課題“網(wǎng)絡(luò)工程專業(yè)一體化實踐教學(xué)體系的實踐研究”(項目編號:GH-16186)。

關(guān)注讀覽天下微信, 100萬篇深度好文, 等你來看……