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

正文內容

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

2025-07-21 05:38 本頁面
 

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