freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

windows平臺下個(gè)人防火墻的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文(編輯修改稿)

2024-10-07 16:33 本頁面
 

【文章內(nèi)容簡介】 到的技術(shù) 。 防火墻核心過濾技術(shù) 網(wǎng)絡(luò)防火墻的核心過濾都是基于數(shù)據(jù)包的攔截技術(shù)之上的。在 Windows 下數(shù)據(jù)包的攔截方式 可分為用戶態(tài)和內(nèi)核態(tài)數(shù)據(jù)包攔截兩大類 [2]。 用戶態(tài)數(shù)據(jù)包攔截技術(shù) 用戶態(tài)下的數(shù)據(jù)包攔截技術(shù)主要為 Winsock2 SPI( Service Provider Interface)。 Winsock2 是 Windows Sockets 的 版本, SPI 是 Winsock2 提供的一個(gè) 可編程接口。SPI 以動(dòng)態(tài)鏈接庫( DLL)的形式工作在應(yīng)用層,開發(fā)者通過安裝自己編寫的 SPI 程序(服務(wù)提供者接口程序)來處理截獲的基于 Socket 的網(wǎng)絡(luò)數(shù)據(jù)包以完成過濾。 Winsock2 SPI 以 DLL 形式存在,編程簡單,調(diào)試方便。 并 且數(shù)據(jù)封包比較完整 ,便于內(nèi)容過濾。但無法攔截核心層或不用 Socket 的網(wǎng)絡(luò)通訊(如 ICMP)的數(shù)據(jù)包,容易被木馬或病毒繞過 [3]。 內(nèi)核態(tài)數(shù)據(jù)包攔截技術(shù) 內(nèi)核態(tài)下的數(shù)據(jù)包攔截方式有多種: TDI 過濾驅(qū)動(dòng)程序、 NDIS 中間層驅(qū)動(dòng)程序 、NDISHook Driver 和 FilterHook Driver。目前很多大型防火墻都是采用復(fù)合型的數(shù)據(jù)包過濾技術(shù) 。下面簡單介紹各包攔截技術(shù)。 FilterHook Driver 將在后邊進(jìn)行單獨(dú)的介紹。 1. TDI( Transport Driver Interface)過濾驅(qū)動(dòng): TDIFilter Driver 程序通過將創(chuàng)建的一個(gè)或者多個(gè)設(shè)備對象掛載到一個(gè)現(xiàn)有的驅(qū)動(dòng)程序 ( ) 之上,當(dāng)有應(yīng)用程序或其他驅(qū)動(dòng)程序調(diào)用這一個(gè)或多個(gè)設(shè)備對象時(shí),會首先映射到過濾驅(qū)動(dòng)程序上,然后再由過 濾驅(qū)動(dòng)程序傳遞給原來的設(shè)備對象 [4]。 這就完成了數(shù)據(jù)包的過濾。其優(yōu)點(diǎn)是可以獲取到當(dāng)前進(jìn)程的詳細(xì)信息。缺點(diǎn)是該驅(qū)動(dòng)位于 windows平臺下個(gè)人防火墻的設(shè)計(jì)與實(shí)現(xiàn) 6 上,不能獲取由 直接處理的數(shù)據(jù)包,且 TDI 驅(qū)動(dòng)需重啟系統(tǒng)才能生效。另外 Windows 2020 之前的系統(tǒng)不支持。 2. NDIS 中間層驅(qū)動(dòng):位于協(xié)議驅(qū)動(dòng)和小端口驅(qū)動(dòng)之間。主要在網(wǎng)絡(luò)層和數(shù)據(jù)鏈路層對數(shù)據(jù)包進(jìn)行過濾。 NDIS 由于是在網(wǎng)卡驅(qū)動(dòng)程序和傳輸驅(qū)動(dòng)程序間插入了一層, 其優(yōu)點(diǎn)是過濾功能強(qiáng)大,能截獲所有的數(shù)據(jù)包 ,安全系數(shù)高 [5]。缺點(diǎn)是編程規(guī)范要求苛刻復(fù)雜,難度較大 ;不 容易安裝,安裝出錯(cuò)容易導(dǎo)致系統(tǒng)錯(cuò)誤;也不支持 Windows 2020 之前的系統(tǒng)。 3. NDISHook Driver: NDISHook Driver 是目前大多數(shù)網(wǎng)絡(luò)防火墻采用的方法。NDIS( Network Driver Interface Specification)是微軟和 3COM 公司定制的一套開發(fā) Windows 下網(wǎng)絡(luò)驅(qū)動(dòng)程序的標(biāo)準(zhǔn),為網(wǎng)絡(luò)驅(qū)動(dòng)的開發(fā)提供一套標(biāo)準(zhǔn)接口,使得網(wǎng)絡(luò)驅(qū)動(dòng)程序的跨平臺性更好。該技術(shù)的實(shí)現(xiàn)方法是安裝 Hook 鉤子到 中,替換其中某些關(guān)鍵函數(shù),從而達(dá)到截獲網(wǎng)絡(luò)數(shù)據(jù)包的目的 [6]。具有安裝簡單,截包完整全面,安全性高等優(yōu)點(diǎn),但無法獲得應(yīng)用程序進(jìn)程信息。 以上幾種方法對于團(tuán)隊(duì)開發(fā)而言, NDISHook 是最佳選擇, TDIFilter Driver次之。但對 個(gè)人而言,工作量較大。 FilterHook Driver 國內(nèi)關(guān)于 TDI 和 NDIS 驅(qū)動(dòng)的資料比較多,但有關(guān) FilterHook Driver 的書籍資料就相對少很多。 本文所采用的 FilterHook Driver 數(shù)據(jù)包攔截過濾驅(qū)動(dòng) 技術(shù) 在 Microsoft 微軟相關(guān)文檔里也只有 Windows 2020 DDK 中有 一些 介紹,實(shí)際上它只是擴(kuò)展了 IP 過濾驅(qū)動(dòng)( IP Filter Driver)的功能,是一種內(nèi)核模式驅(qū)動(dòng)( Kernel Mode Driver)。 IP Filter Driver 對應(yīng) 文件, 該文件在 Windows XP 中的 System32\drivers 目錄下,它允許用戶注冊自己的 IP 數(shù)據(jù)包處理函數(shù)。 這個(gè)驅(qū)動(dòng)文件默認(rèn)未加載,但可以手動(dòng)加載。FilterHook Driver 主要利用 IpFilterDriver( ) 所提供的功能來攔截網(wǎng)絡(luò)數(shù)據(jù)包 ,可應(yīng)用與 TCP\IP 協(xié)議 [7]。其工作方式如下:在 FilterHook Driver 中提供我們自己編寫的回調(diào)( callback)函數(shù),然后用 IP 過濾驅(qū)動(dòng)注冊回調(diào)函數(shù)。實(shí)現(xiàn)步驟如下: 1. 建立 FilterHook Driver。 2. 得到指向 IP Filter Driver 的指針。 3. 獲得指針后,通過發(fā)送特殊的 IRP 請求安裝過濾函數(shù),該請求傳遞的數(shù)據(jù)包含windows平臺下個(gè)人防火墻的設(shè)計(jì)與實(shí)現(xiàn) 7 了過濾函數(shù)的指針。 4. 過濾數(shù)據(jù)包。 5. 結(jié)束過濾,撤銷過濾函數(shù)(通過傳遞 NULL 指針作為過濾函數(shù)指針來實(shí)現(xiàn))。 另外,最多只能注冊一個(gè) FilterHook Driver。只有當(dāng) FilterHook 回調(diào)函數(shù)為空時(shí),F(xiàn)ilterHook Driver 才能 向 IP Filter Driver 注冊自己提供的回調(diào)函數(shù),后者調(diào)用提供的回調(diào)函數(shù)來實(shí)現(xiàn) FilterHook Driver 控制數(shù)據(jù)包過濾。 該技術(shù)的優(yōu)點(diǎn)是結(jié)構(gòu)簡單,易于實(shí)現(xiàn),且能截獲所有的 IP 數(shù)據(jù)包(包括 ICMP 包)。但無法獲取當(dāng)前應(yīng)用程序進(jìn)程信息,也無法取得數(shù)據(jù)包的以太幀,也不支持 Windows 2020 之前的系統(tǒng)。 本文采用 FilterHook Driver 控制數(shù)據(jù)包過濾,故不支持 Windows 2020 以前的系統(tǒng)。 TCP\IP 網(wǎng)絡(luò)通信協(xié)議 TCP\IP 協(xié)議 指因特網(wǎng)整個(gè) TCP\IP 協(xié)議族,而不是表面上的 TCP 和 IP 協(xié)議的合稱。TCP\IP 協(xié)議族用于各平臺下計(jì)算機(jī)之間的通信,是當(dāng)今互聯(lián)網(wǎng)通信的基礎(chǔ)。與 OSI 七層參考模型不完全相同, TCP\IP 協(xié)議族通常被認(rèn)為是一個(gè)四層協(xié)議系統(tǒng)。 TCP\IP 協(xié)議族的四個(gè)層次與 OSI 七層參考模型間的對應(yīng)關(guān)系如圖 21 所示: 如上圖所示, 人們通常(由于對于 TCP\IP 協(xié)議族與 OSI 七層模型不能精確的匹配,故也沒有一個(gè)完全正確的說法來說明 他們之間的對應(yīng)關(guān)系)認(rèn)為 OSI 模型的應(yīng)用層、表示層和會話層這上三層在 TCP\IP 協(xié)議族中是應(yīng)用層,而其最底兩層在 TCP\IP 協(xié)議族中是鏈路層。 防火墻系統(tǒng)的過濾驅(qū)動(dòng)模塊工作在 Windows TCP\IP 協(xié)議模型的傳輸層 。下文將對本文用到的協(xié)議做簡單介紹。 應(yīng)用層 表示層 數(shù)據(jù)鏈路層 網(wǎng)絡(luò)層 傳輸層 會話層 物理層 應(yīng)用層 傳輸層 網(wǎng)絡(luò)層 鏈路層 圖 21 TCP\IP協(xié)議族與 OSI模型對應(yīng)關(guān)系 windows平臺下個(gè)人防火墻的設(shè)計(jì)與實(shí)現(xiàn) 8 IP 網(wǎng)際協(xié)議 IP 是 TCP\IP 協(xié)議族中最為核心的協(xié)議。所有的 TCP、 UDP 和 ICMP 數(shù)據(jù)都以 IP數(shù)據(jù)報(bào)格式傳輸。 IP 數(shù)據(jù)報(bào)由 IP 首部和數(shù)據(jù)組成。 IP 首部一般長度為 20Byte,除非包含有選項(xiàng)字段 [8]。 其首部的固定部分的字段為: 版本( 4bit) 、首部長度( 4bit)、服務(wù)類型( 8bit)、總長度( 16bit)、標(biāo)識( 16bit)、標(biāo)志( 3bit)、片偏移( 13bit)、生存時(shí)間TTL( 8bit)、協(xié)議( 8bit)、首部檢驗(yàn)和( 16bit)、源地址( 32bit)、目的地址( 32bit)。本文中對數(shù)據(jù)報(bào)的處理時(shí)所需注意的主要為版本、服務(wù)類型、協(xié)議、源地址和目的地址字段。 TCP 傳輸控制協(xié)議 TCP 協(xié)議屬于運(yùn)輸層,向應(yīng)用層提供面向連接的,可靠的字節(jié)流服務(wù)。 TCP 數(shù)據(jù)被封裝在 IP 數(shù)據(jù)報(bào)中,如圖 22 所示: TCP 首部包含源端口和目的端口的端口號 字段、序號字段、確認(rèn)序號字段、首部長度字段、檢驗(yàn)和字段等。源端口和目的端口號 用于需找發(fā)送端和接收端的應(yīng)用進(jìn)程 ,這兩個(gè)值加上 IP 首部中的源地址和目的地址可以唯一確定一個(gè) TCP 鏈接。序號用來標(biāo)識源目端之間的數(shù)據(jù)字節(jié)流。許多應(yīng)用程序都使用 TCP,如 FTP、 Tel 和 SMTP。 UDP 用戶數(shù)據(jù)報(bào)協(xié)議 UDP 是一個(gè)簡單的面向數(shù)據(jù)的運(yùn)輸層協(xié)議。 與 TCP 協(xié)議同屬運(yùn)輸層,但與 TCP 協(xié)議不同,它是一種非連接導(dǎo)向協(xié)議,不提供可靠性。 UDP 首部字段包 含源端口號、目的端口號、 UDP 長度、 UDP 檢驗(yàn)和以及數(shù)據(jù)(可無)幾個(gè)字段。源、目端口號指明發(fā)送進(jìn)程和接收進(jìn)程; UDP 長度表示 UDP 首部和 UDP 數(shù)據(jù)的字節(jié)長度,最小值為 8byte。UDP 的檢驗(yàn)和可選,其覆蓋 UDP 首部和 UDP 數(shù)據(jù)。 IP 首部 TCP 首部 TCP 數(shù)據(jù) 圖 22 TCP數(shù)據(jù)在 IP數(shù)據(jù)報(bào)中的封裝 windows平臺下個(gè)人防火墻的設(shè)計(jì)與實(shí)現(xiàn) 9 內(nèi)核模式 驅(qū)動(dòng)程序 開發(fā) 內(nèi)核模式驅(qū)動(dòng)是 Windows 系統(tǒng)中兩種基本驅(qū)動(dòng)程序之一。 設(shè)備驅(qū)動(dòng)程序的功能就是 Windows 操作系統(tǒng)給的一個(gè)擴(kuò)展。 內(nèi)核模式驅(qū)動(dòng)程序可執(zhí)行某些受保護(hù)的操作,并可訪問用戶模式驅(qū)動(dòng)程序無法訪問的系統(tǒng)結(jié)構(gòu)。但隨著訪問權(quán)的增加,調(diào)試難度和系統(tǒng)損害幾率也隨之增大。 本個(gè)人防火墻的核心 FilterHook 驅(qū)動(dòng)就是內(nèi)核模式驅(qū)動(dòng)程序,它利用 Microsoft 在 Windows 的網(wǎng)絡(luò)協(xié)議層上提供的接口在系統(tǒng)中實(shí)現(xiàn)過濾驅(qū)動(dòng) [9]。 驅(qū)動(dòng)程序由一系列例程組成,加載驅(qū)動(dòng)或處理 I\O 請求時(shí)就會調(diào)用特定的例程。每個(gè)驅(qū)動(dòng)程序都至少實(shí)現(xiàn)三個(gè)例程:入口例程( DriverEntry)、卸載例程和打開關(guān)閉例程。驅(qū)動(dòng)編程屬于內(nèi)核編程的范疇, 內(nèi)核開發(fā)中會經(jīng)常的創(chuàng)建、打開和操作內(nèi)核對象,但內(nèi)核對象不允許用戶直接訪問,它是系統(tǒng)提供的用戶模式下代碼與內(nèi)核模式下代碼進(jìn)行交互的基本接口 [10]。 當(dāng)驅(qū)動(dòng)被加載到 內(nèi)存中時(shí), DriverEntry 例程將被調(diào)用。 DriverEntry 例程負(fù)責(zé)執(zhí)行驅(qū)動(dòng)程序初始化工作。 I/O 管理器為每個(gè)加載到內(nèi)存的驅(qū)動(dòng)程序創(chuàng)建一個(gè)驅(qū)動(dòng)程序?qū)ο?,并將這個(gè)對象指針傳遞給驅(qū)動(dòng)程序,驅(qū)動(dòng)程序就可以在需要的時(shí)候調(diào)用這個(gè)設(shè)備對象。 卸載例程負(fù)責(zé)做清理工作, I\O 管理器調(diào)用這個(gè)例程時(shí),將清除當(dāng)前驅(qū)動(dòng)創(chuàng)建的設(shè)備對象和符號鏈接名稱,以釋放資源。 打開關(guān)閉例程,當(dāng)應(yīng)用程序需要打開或關(guān)閉到驅(qū)動(dòng)的句柄時(shí), I\O 管理器調(diào)用這個(gè)例程,以做出相應(yīng)處理。一般接收到 關(guān)閉 請求表明設(shè)備對象的文件對象句柄已經(jīng)被釋放。 windows平臺下個(gè)人防火墻的設(shè)計(jì)與實(shí)現(xiàn) 10 第三章 開 發(fā)工具與環(huán)境簡介 本章主要介紹本課題的開發(fā)環(huán)境和所用到的開發(fā)工具,平臺如題所述,是 Windows平臺,版本為 Windows XP。 開發(fā)工具用到 Microsoft Visual Studio 2020, 驅(qū)動(dòng)開發(fā)工具WDK 等,編程語言采用 C 語言,編程的系統(tǒng)環(huán)境為虛擬機(jī)下的 Windows XP 環(huán)境。 另外,由于本文涉及驅(qū)動(dòng)編程,為了避免調(diào)試過程中驅(qū)動(dòng)程序錯(cuò)誤引起的系統(tǒng)錯(cuò)誤等不必要的麻煩,本文所述系統(tǒng)的開發(fā)將在 VMware Workstation 虛擬機(jī)內(nèi)的操作系統(tǒng)上完成開發(fā)和測試。 Microsoft Visual Studio 2020 Microsoft Visual Studio 2020 是微軟公司于 2020 年推出的最新的 Windows 平臺應(yīng)用程序集成開發(fā)環(huán)境 ,是一款非常流行的 IDE。 Visual Studio 功能強(qiáng)大,可以用以創(chuàng)建Windows 應(yīng)用程序、網(wǎng)絡(luò)應(yīng)用程序、網(wǎng)絡(luò)服務(wù)、 android 應(yīng)用程序等,里邊包含了 Visual Studio C++開發(fā)工具,可進(jìn)行 C\C++相關(guān)程序開發(fā),且引入了 MFC 庫。該版本做了重大修改并引入了很多新的特性,如對最新的 C++標(biāo)準(zhǔn)的支持等。 能切實(shí)提高開發(fā)人員的開發(fā)效率。 C 語言簡介 C 程序設(shè)計(jì)語言是由 Dennis Ritchie 于 1973 年設(shè)計(jì)并實(shí)現(xiàn)的。 經(jīng)歷標(biāo)準(zhǔn)制定和多次修訂(現(xiàn)在最新標(biāo)準(zhǔn)為 C99), 發(fā)展至今,已成為全球使用者最多的程序設(shè)計(jì)語言之一。同樣著名的 C++和 Java 也由它衍生而來。 C 語言是一種通用的程序設(shè)計(jì)語言,他不受限 于 操作系統(tǒng)或機(jī)器。 C 語言是一種低級語言,適合系統(tǒng)編程。此外,該語言還有高效性、可移植性、功能強(qiáng)大、靈活性、提供標(biāo)準(zhǔn)庫等優(yōu)點(diǎn) [11],這也是本文所述系統(tǒng)采用 C 語言編寫的主要原因。 驅(qū)動(dòng) 開發(fā) 工具 本文所要編寫的 FilterHook Driver 即為一個(gè) Windows 內(nèi)核模式驅(qū)動(dòng),故需要相應(yīng)的內(nèi)核開發(fā)工具 —— WDK。 接下來對驅(qū)動(dòng)開發(fā)工具和驅(qū)動(dòng)程序的編譯執(zhí)行做簡單介紹。 windows平臺下個(gè)人防火墻的設(shè)計(jì)與實(shí)現(xiàn) 11 WDK 內(nèi)核編程工具 就像應(yīng)用程序使用開發(fā)包 SDK 一樣,內(nèi)核編程使用“ Windows Driver Kit”,簡稱WDK。 WDK 已經(jīng)自帶所有需要的頭文件、庫、 C/C++語言及匯編語言的編譯器與連接器,所以可以在不安裝 Visual Studio 等 SDK 的環(huán)境下編 程 。 WDK 的獲得可通過微軟官方網(wǎng)站下載。 WDK 是 Windows 內(nèi)核開發(fā)工具,驅(qū)動(dòng)程序?qū)儆趦?nèi)核編程而非應(yīng)用 程序編程,故用WDK 編譯的驅(qū)動(dòng)程序源文件中不能調(diào)用 Win32 API 函數(shù),另外,部
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1