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

正文內(nèi)容

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

2025-07-21 05:38 本頁面
 

【文章內(nèi)容簡介】 ows TCP\IP協(xié)議模型的傳輸層。下文將對本文用到的協(xié)議做簡單介紹。 IP網(wǎng)際協(xié)議IP是TCP\IP協(xié)議族中最為核心的協(xié)議。所有的TCP、UDP和ICMP數(shù)據(jù)都以IP數(shù)據(jù)報格式傳輸。IP數(shù)據(jù)報由IP首部和數(shù)據(jù)組成。IP首部一般長度為20Byte,除非包含有選項字段[[] (美)W Richard Stevens. TCP/IP詳解 卷1:協(xié)議[M].【譯者】范建華,:機械工業(yè)出版社, 2000:2436.]。其首部的固定部分的字段為:版本(4bit)、首部長度(4bit)、服務類型(8bit)、總長度(16bit)、標識(16bit)、標志(3bit)、片偏移(13bit)、生存時間TTL(8bit)、協(xié)議(8bit)、首部檢驗和(16bit)、源地址(32bit)、目的地址(32bit)。本文中對數(shù)據(jù)報的處理時所需注意的主要為版本、服務類型、協(xié)議、源地址和目的地址字段。 TCP傳輸控制協(xié)議TCP協(xié)議屬于運輸層,向應用層提供面向連接的,可靠的字節(jié)流服務。TCP數(shù)據(jù)被封裝在IP數(shù)據(jù)報中,如圖22所示:IP首部TCP首部TCP數(shù)據(jù)圖 22 TCP數(shù)據(jù)在IP數(shù)據(jù)報中的封裝TCP首部包含源端口和目的端口的端口號字段、序號字段、確認序號字段、首部長度字段、檢驗和字段等。源端口和目的端口號用于需找發(fā)送端和接收端的應用進程,這兩個值加上IP首部中的源地址和目的地址可以唯一確定一個TCP鏈接。序號用來標識源目端之間的數(shù)據(jù)字節(jié)流。許多應用程序都使用TCP,如FTP、Telnet和SMTP。 UDP用戶數(shù)據(jù)報協(xié)議UDP是一個簡單的面向數(shù)據(jù)的運輸層協(xié)議。與TCP協(xié)議同屬運輸層,但與TCP協(xié)議不同,它是一種非連接導向協(xié)議,不提供可靠性。UDP首部字段包含源端口號、目的端口號、UDP長度、UDP檢驗和以及數(shù)據(jù)(可無)幾個字段。源、目端口號指明發(fā)送進程和接收進程;UDP長度表示UDP首部和UDP數(shù)據(jù)的字節(jié)長度,最小值為8byte。UDP的檢驗和可選,其覆蓋UDP首部和UDP數(shù)據(jù)。 內(nèi)核模式驅(qū)動程序開發(fā)內(nèi)核模式驅(qū)動是Windows系統(tǒng)中兩種基本驅(qū)動程序之一。設備驅(qū)動程序的功能就是Windows操作系統(tǒng)給的一個擴展。內(nèi)核模式驅(qū)動程序可執(zhí)行某些受保護的操作,并可訪問用戶模式驅(qū)動程序無法訪問的系統(tǒng)結(jié)構。但隨著訪問權的增加,調(diào)試難度和系統(tǒng)損害幾率也隨之增大。本個人防火墻的核心FilterHook驅(qū)動就是內(nèi)核模式驅(qū)動程序,它利用Microsoft在Windows的網(wǎng)絡協(xié)議層上提供的接口在系統(tǒng)中實現(xiàn)過濾驅(qū)動[[] Zwicky E. D, Cooper S, Chapman D. B. Building the Internet Firewall[M]. 2nd ed.[S. 1]: McGrawHill, 2003:9095.]。驅(qū)動程序由一系列例程組成,加載驅(qū)動或處理I\O請求時就會調(diào)用特定的例程。每個驅(qū)動程序都至少實現(xiàn)三個例程:入口例程(DriverEntry)、卸載例程和打開關閉例程。驅(qū)動編程屬于內(nèi)核編程的范疇,內(nèi)核開發(fā)中會經(jīng)常的創(chuàng)建、打開和操作內(nèi)核對象,但內(nèi)核對象不允許用戶直接訪問,它是系統(tǒng)提供的用戶模式下代碼與內(nèi)核模式下代碼進行交互的基本接口[[] 王艷平, 張錚. Windows程序設計[M]. 北京:人民郵電出版社, 2008:912.]。當驅(qū)動被加載到內(nèi)存中時,DriverEntry例程將被調(diào)用。DriverEntry例程負責執(zhí)行驅(qū)動程序初始化工作。I/O管理器為每個加載到內(nèi)存的驅(qū)動程序創(chuàng)建一個驅(qū)動程序?qū)ο?,并將這個對象指針傳遞給驅(qū)動程序,驅(qū)動程序就可以在需要的時候調(diào)用這個設備對象。卸載例程負責做清理工作,I\O管理器調(diào)用這個例程時,將清除當前驅(qū)動創(chuàng)建的設備對象和符號鏈接名稱,以釋放資源。打開關閉例程,當應用程序需要打開或關閉到驅(qū)動的句柄時,I\O管理器調(diào)用這個例程,以做出相應處理。一般接收到關閉請求表明設備對象的文件對象句柄已經(jīng)被釋放。第三章 開發(fā)工具與環(huán)境簡介本章主要介紹本課題的開發(fā)環(huán)境和所用到的開發(fā)工具,平臺如題所述,是Windows平臺,版本為Windows XP。開發(fā)工具用到Microsoft Visual Studio 2010,驅(qū)動開發(fā)工具WDK等,編程語言采用C語言,編程的系統(tǒng)環(huán)境為虛擬機下的Windows XP環(huán)境。另外,由于本文涉及驅(qū)動編程,為了避免調(diào)試過程中驅(qū)動程序錯誤引起的系統(tǒng)錯誤等不必要的麻煩,本文所述系統(tǒng)的開發(fā)將在VMware Workstation虛擬機內(nèi)的操作系統(tǒng)上完成開發(fā)和測試。 Microsoft Visual Studio 2010Microsoft Visual Studio 2010是微軟公司于2010年推出的最新的Windows平臺應用程序集成開發(fā)環(huán)境,是一款非常流行的IDE。Visual Studio功能強大,可以用以創(chuàng)建Windows應用程序、網(wǎng)絡應用程序、網(wǎng)絡服務、android應用程序等,里邊包含了Visual Studio C++開發(fā)工具,可進行C\C++相關程序開發(fā),且引入了MFC庫。該版本做了重大修改并引入了很多新的特性,如對最新的C++標準的支持等。能切實提高開發(fā)人員的開發(fā)效率。 C語言簡介C程序設計語言是由Dennis Ritchie于1973年設計并實現(xiàn)的。經(jīng)歷標準制定和多次修訂(現(xiàn)在最新標準為C99),發(fā)展至今,已成為全球使用者最多的程序設計語言之一。同樣著名的C++和Java也由它衍生而來。C語言是一種通用的程序設計語言,他不受限于操作系統(tǒng)或機器。C語言是一種低級語言,適合系統(tǒng)編程。此外,該語言還有高效性、可移植性、功能強大、靈活性、提供標準庫等優(yōu)點[[] (美)K. N. King. C語言程序設計:現(xiàn)代方法[M]. 【譯者】呂秀鋒. 北京:人民郵電出版社, 2007:24.],這也是本文所述系統(tǒng)采用C語言編寫的主要原因。 驅(qū)動開發(fā)工具本文所要編寫的FilterHook Driver即為一個Windows內(nèi)核模式驅(qū)動,故需要相應的內(nèi)核開發(fā)工具——WDK。接下來對驅(qū)動開發(fā)工具和驅(qū)動程序的編譯執(zhí)行做簡單介紹。 WDK內(nèi)核編程工具就像應用程序使用開發(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ū)動程序?qū)儆趦?nèi)核編程而非應用程序編程,故用WDK編譯的驅(qū)動程序源文件中不能調(diào)用Win32 API函數(shù),另外,部分的C Runtime函數(shù)也不能使用,編寫程序可以參考說明文檔,文檔中說明的函數(shù)都可使用。 編譯驅(qū)動程序源文件編譯器在編譯驅(qū)動內(nèi)核驅(qū)動程序源文件時把中DriverEntry當做每個內(nèi)核模塊的入口點歷程(就是一個函數(shù),相當于普通C源文件中的main函數(shù)),在加載這個模塊時被系統(tǒng)進程System調(diào)用一次。另外附加說明一點,為了方便驅(qū)動被加載后能夠被卸載,我們需要在編寫程序的時候設置DriverUnload函數(shù)指針[[] 譚文, 楊瀟等. 寒江獨釣Windows內(nèi)核安全編程[M]. 北京:電子工業(yè)出版社, 2009:214.]。WDK在編譯工程的時候,必須在工程目錄下增加兩個文件,以便WDK可以成功的build。這兩個文件分別是makefile和source,且文件名必須如此。makefile文件幾乎都一樣,不用更改,如本文所用的makefile文件內(nèi)容如下:!INCLUDE $(NTMAKEENV)\另外一個source文件的內(nèi)容則關系到這個驅(qū)動模塊要編譯的文件。如本文總所用source文件內(nèi)容實例如下:TARGETNAME=DrvFltIpTARGETPATH=objTARGETTYPE=DRIVERSOURCES= 其中TARGETNAME表示編譯后得到的文件的名字,;TARGETPATH 表示文件所在路徑;TARGETTYPE表示編譯的目標類型;(多個文件間用空格分開)。這樣我們在選擇相應的系統(tǒng)版本后打開WDK,進入控制臺編譯環(huán)境后就可以進入文件所在目錄進行編譯了,編譯命令為build。 安裝運行驅(qū)動程序安裝驅(qū)動程序的工具有很多。使用方法簡單,打開軟件,然后點擊所需操作即可完成驅(qū)動的安裝、卸載、開啟和停止。安裝好驅(qū)動程序后,就可以通過我們的方式查看它的運行情況。 MFC簡介本文個人防火墻的用戶界面采用MFC實現(xiàn)。微軟提供的MFC是放置Windows API的面向?qū)ο蟮陌b的C++類庫。是應用程序編程的框架結(jié)構。MFC封裝了許多類,其中一些可以直接使用,另一些則主要作為自己的類的基礎。在MFC程序中,并不經(jīng)常直接調(diào)用Windows API;而是從MFC類創(chuàng)建對象并調(diào)用屬于這些對象的成員函數(shù)[[] (美)Jeff Prosise. MFC Windows程序設計[M]. 【譯者】北京博彥科技發(fā)張有限責任公司. 北京:清華大學出版社, 2007:630.]。在類庫中定義的成員函數(shù)有幾百個,其中許多事Windows API的簡單封裝,有的甚至與相應API同名,這使得MFC程序更加簡單易懂。MFC也是一個應用程序的框架結(jié)構,其目的是可以讓程序員直接在此基礎上來建立Windows下的應用程序,使得實現(xiàn)方式相對SDK來實現(xiàn)更加簡單。MFC框架定義了程序的輪廓,提供了一套用戶接口的標準實現(xiàn)方法,程序員用MFC編寫Windows應用程序所需要做的就是通過這些接口把具體應用程序特有的東西填入這個輪廓。Microsoft Visual C++中提供了相應的MFC工具來幫助程序員完成應用程序的編寫:AppWizard可用來生成初步的框架文件,如代碼和資源;資源編輯器用于直觀的設計用戶接口;ClassWizard用于協(xié)助添加代碼到框架文件;然后經(jīng)過編譯就可以通過類庫來實現(xiàn)應用程序特定的邏輯。第四章 個人防火墻的總體設計本章主要介紹本文windows平臺下個人防火墻系統(tǒng)的總體設計、工作流程和功能模塊。FilterHook Driver與IP Filter Driver配合實現(xiàn)的數(shù)據(jù)包過濾的個人防火墻實際上就是利用自己寫的Hook來修改底層函數(shù)的入口地址,以達到截取需要過濾的特定數(shù)據(jù)包并按編寫的函數(shù)進行過濾來實現(xiàn)個人防火墻的數(shù)據(jù)包過濾功能[[] 譚丹, 鮮繼清. 基于hook的Windows防火墻驅(qū)動程序研究與設計[J]. 計算機應用, 2005, 25(7):1530.]。本個人防火墻系統(tǒng)采用結(jié)構化設計的方法來實現(xiàn)系統(tǒng)的總體功能,實現(xiàn)的防火墻界面直觀,操作簡單。能起到對管控規(guī)則內(nèi)的網(wǎng)絡數(shù)據(jù)訪問進行放行,管控規(guī)則之外的則進行攔截,并能夠修改過濾規(guī)則以及查看日志,適合個人用戶使用。 防火墻整體結(jié)構本文個人防火墻主要分為用戶層和驅(qū)動層兩個模塊,其整體結(jié)果如圖41所示:圖 41 防火墻整體結(jié)構用戶層界面驅(qū)動控制驅(qū)動層FilterHook Driver接口IP Filter Driver ()網(wǎng)絡數(shù)據(jù)包 用戶層用戶層里又包含界面模塊和驅(qū)動控制模塊兩個模塊:1. 驅(qū)動控制模塊驅(qū)動控
點擊復制文檔內(nèi)容
黨政相關相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1