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

正文內(nèi)容

windows平臺(tái)下個(gè)人防火墻的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文(參考版)

2024-09-05 16:33本頁面
  

【正文】 測試結(jié)果:所有的網(wǎng)絡(luò)數(shù)據(jù)通信都被阻止。 另外,再對(duì)禁止所有數(shù)據(jù)包進(jìn)行測試。這是用戶可以直接看到的結(jié)果。 此時(shí)并未啟動(dòng)防火墻, 過濾驅(qū)動(dòng)還未注冊,規(guī)則未能生效,故 仍可對(duì)規(guī)則所指定 IP進(jìn)行訪問 。 2. 測試過程及結(jié)果 本次測試 一個(gè)是 以訪問 黑龍江大學(xué) 校 園網(wǎng) 為例, 黑龍江大學(xué) 校園網(wǎng) 為源地址, IP地址為 , 由于 目的地址 只有 本機(jī), 故設(shè)置為忽略, 目的 IP地址 設(shè)置 為 ,依次填入該條測試規(guī)則用例 ,協(xié)議號(hào)為 6 表示 TCP 協(xié)議,端口號(hào) 默認(rèn)設(shè)置為零( 因 具體的端口號(hào)可能未知) 。然后開啟防火墻,訪問添加的規(guī)則內(nèi)的 IP 地址。 功能測試 1. 測試方法 添加防火墻過濾規(guī)則。 由于涉 及驅(qū)動(dòng)層的部分無法直接顯示,因此借助了 DebugView 這個(gè)調(diào)試工具來幫助查看驅(qū)動(dòng)層的輸出顯示。為避免驅(qū)動(dòng)錯(cuò)誤導(dǎo)致系統(tǒng)錯(cuò)誤錯(cuò)誤,故整個(gè)測試過程在 VMware Workstation 虛擬機(jī)內(nèi)的 Windows XP 系統(tǒng)環(huán)境下進(jìn)行。下面就對(duì)本防火墻系統(tǒng)進(jìn)行功能測試。執(zhí)行測試用例后,需要跟蹤故障,以確保開發(fā)的產(chǎn)品適合需求。 與其他商用防火墻相比, 本個(gè)人防火墻 界面和功能都可能相對(duì)簡單,但 可以對(duì)已知的欲阻止訪問進(jìn)行提前對(duì)管控規(guī)則進(jìn)行設(shè)置,這樣的好處是可以 對(duì)已知的預(yù)提前阻止的訪問規(guī)則進(jìn)行添加, 起到提前預(yù)防作用。通過 clear 按鈕 ( 向 FilterHook 驅(qū)動(dòng)程序發(fā)送 CLEAR_FILTER 控制碼 ) 清除已有規(guī)則。 防火墻啟動(dòng)后就可以根據(jù)右側(cè)已有規(guī)則進(jìn)行數(shù)據(jù)過濾 。 用戶界面程序的核心實(shí)現(xiàn)就是使用 CDriver 類向過濾鉤子驅(qū)動(dòng)程序發(fā)送幾個(gè)設(shè)備控制碼( START_IP_HOOK、 STOP_IP_HOOK、 ADD_FILTER、 CLEAR_FILTER)。使用到的 控件有:靜態(tài)文本框、文本框、按鈕和列表框。這里,執(zhí)行 ADD_FILTER 時(shí),需要傳遞過濾規(guī)則的結(jié)構(gòu)體,其他情況下這個(gè)參數(shù)為空。其中,這四個(gè)功能函數(shù)的主要實(shí)現(xiàn)都調(diào)用了系統(tǒng) API: DeviceControl, 這個(gè) API 負(fù)責(zé)向驅(qū)動(dòng)層發(fā)送控制信息。 要實(shí)現(xiàn)這些操作,首先,定義了 4 種消息碼,此消息碼就是發(fā)送給驅(qū)動(dòng)層的操作信息,這 4 個(gè)消息碼分別是: START_IP_HOOK、 STOP_IP_HOOK、 ADD_FILTER、CLEAR_FILTER。系統(tǒng) API: CreateFile函數(shù)通過該句柄 傳入驅(qū)動(dòng)設(shè)備的名字,然后函數(shù)返回設(shè)備句柄 打開驅(qū)動(dòng)設(shè)備 。 打開驅(qū)動(dòng)設(shè)備 驅(qū)動(dòng)服務(wù)安裝成功后,接著在用戶層打開 FilterHook Driver。 3. 關(guān)閉句柄。如果那個(gè)驅(qū)動(dòng)服務(wù)不存在,則首先得創(chuàng)建那個(gè)驅(qū)動(dòng)服務(wù),調(diào)用系統(tǒng) API: CreateService,創(chuàng)建驅(qū)動(dòng)服務(wù),需要傳入驅(qū)動(dòng)服務(wù)的名字和驅(qū)動(dòng)文件的路徑,獲得驅(qū)動(dòng)服務(wù)句柄。傳入機(jī)器名字,返回一個(gè)指向服務(wù)管理數(shù)據(jù)庫的句柄。程序首先進(jìn)行驅(qū)動(dòng)服務(wù)的安裝,安裝成功后打開驅(qū)動(dòng)設(shè)備,然后根據(jù)用戶操作提供的IOCTL 代碼對(duì)驅(qū)動(dòng)設(shè)備進(jìn)行控制。 接受到這些數(shù)據(jù)包后, filterFunction 函數(shù)就可以對(duì)數(shù)據(jù)包進(jìn)行解析,然后做出windows平臺(tái)下個(gè)人防火墻的設(shè)計(jì)與實(shí)現(xiàn) 22 相應(yīng)處理。 // 總長度 USHORT checksum。 // 源端口 USHORT destinationPort。 // 緊急指針 } TCPHeader。 // 窗口大小 USHORT checksum。 // 數(shù)據(jù)指針 UCHAR flags。 // 序號(hào) ULONG acknowledgeNumber。 // 源端口 號(hào) USHORT destinationPort。 // 目的地址 } IPPacket。 // 校驗(yàn)和 ULONG ipSource。 // 生存時(shí)間 UCHAR ipProtocol。 // 每個(gè)數(shù)據(jù)包的唯一標(biāo)識(shí) windows平臺(tái)下個(gè)人防火墻的設(shè)計(jì)與實(shí)現(xiàn) 21 USHORT ipFlags。 // 服務(wù)類型 USHORT ipLength。 本文定義了 IP 包、 TCP 包和 UDP 包三個(gè)包結(jié)構(gòu), IP 數(shù)據(jù)包結(jié)構(gòu)體定義如下: typedef struct IPHeader { UCHAR iphVerLen。 4. 實(shí)現(xiàn)回調(diào)函數(shù)。 這個(gè) API 函數(shù)主要用來構(gòu)造一個(gè)用于設(shè)備 I\O 請(qǐng)求的 IRP 包,此包被同步處理,這里我們構(gòu)造 IRP 主函數(shù)碼: IRP_MJ_DEVICE_CONTROL。 2. 創(chuàng)建用于設(shè)立過濾函數(shù)的 IRP。 DesiredAccess 是期望訪問的權(quán)限, 實(shí)際使用直接填寫 FILE_ALL_ACCESS 即可。 這個(gè)函數(shù)可以獲得設(shè)備對(duì)象的指針,其原型如下: NTSTATUS IoGetDeviceObjectPointer( IN PUNICODE_STRING ObjectName, IN ACCESS_MASK DesiredAccess, OUT PFILE_OBJECT *FileObject, OUT PDEVICE_OBJECT *DeviceObject )。其實(shí)現(xiàn)過程如下: 1. 首先,需要拿到指向 IP Filter Driver 驅(qū)動(dòng)的指針,這個(gè)驅(qū)動(dòng)必須先安全并執(zhí)行。 START_IP_HOOK 和 STOP_IP_HOOK,當(dāng)接受這兩個(gè)請(qǐng)求消息時(shí),就 注冊過濾函IRP_MJ_DEVICE_CONTROL START_IP_HOOK STOP_IP_HOOK ADD_FILTER CLEAR_FilterList 圖 53 分發(fā)請(qǐng)求消息 windows平臺(tái)下個(gè)人防火墻的設(shè)計(jì)與實(shí)現(xiàn) 20 數(shù) 并 開始過濾 或 注銷過濾函數(shù) 并 停止過濾。 Clear_FilterList:刪除過濾規(guī)則,當(dāng)接受到 該請(qǐng)求時(shí), 只需遍歷規(guī)則鏈表,釋放上面申請(qǐng)的內(nèi)存即可。 //是否丟棄 } 每一個(gè)過濾規(guī)則就是一個(gè)結(jié)構(gòu)體,所有的過濾規(guī)則構(gòu)成了整個(gè)過濾規(guī)則 鏈表 表。 //源端口 USHORT destinationPort。 //源,掩碼 ULONG destinationMASK。 //使用的協(xié)議 ULONG souceIP //源 IP ULONG destinationIP。 IRP_MJ_DEVICE_CONTROL 又分四種消息 ( IOCTL 碼) ,如圖 53 所示: 請(qǐng)求 驅(qū)動(dòng)設(shè)備 IRP_MJ_CREATE IRP_MJ_CLOSE IRP_MJ_DEVICE_CONTROL 圖 52 請(qǐng)求分發(fā)示意圖 windows平臺(tái)下個(gè)人防火墻的設(shè)計(jì)與實(shí)現(xiàn) 19 ADD_FILTER: 添加新的過濾規(guī)則 。 其示意圖如下: IRP_MJ_CREATE 負(fù)責(zé)請(qǐng)求的生成, IRP_MJ_CLOSE 負(fù)責(zé)請(qǐng)求的關(guān)閉。 函數(shù)原型如下: NTSTATUS IoCreateSymbolicLink( IN PUNICODE_STRING SymbolicLinkName, IN PUNICODE_STRING DeviceName )。 該函數(shù)用于創(chuàng)建常規(guī)的設(shè)備對(duì)象,成功時(shí)返回 STATUS_SUCCESS,失敗時(shí)返回相應(yīng)的NTSTATUS 錯(cuò)誤代碼 ,設(shè)備創(chuàng)建成功后,拿到對(duì)象句柄 device_object。 進(jìn)入入口函數(shù)后的時(shí)候需要進(jìn)行初始化 工作,包括創(chuàng)建、初始化設(shè)備對(duì)象 。本章將對(duì)個(gè)人防火墻的詳細(xì)實(shí)現(xiàn)進(jìn)行闡述。 當(dāng)啟動(dòng)防火墻后,防火墻就開始根據(jù)用戶定義的規(guī)則進(jìn)行數(shù)據(jù)過濾, 用戶也可以根據(jù) 需要進(jìn)行添加或修改過濾規(guī)則。 4. 日志:防火墻可根據(jù)過濾日志生成日志文件一共用戶查看。根據(jù)這些用戶手動(dòng)輸入的一組信息產(chǎn)生一條規(guī)則,啟動(dòng)防火墻后規(guī)則生效。 防火墻系統(tǒng)流程圖 本文個(gè)人防火墻 流程圖 如圖 42 所示 : windows平臺(tái)下個(gè)人防火墻的設(shè)計(jì)與實(shí)現(xiàn) 15 開始 載入 FilterHook Driver 顯示過濾結(jié)果 開始過濾 啟動(dòng)防火墻 啟動(dòng)驅(qū)動(dòng)服務(wù) 添加過濾規(guī)則 是否已載入 驅(qū)動(dòng)是否已載入 結(jié)束 N N Y Y 圖 42 防火墻工作流程圖 windows平臺(tái)下個(gè)人防火墻的設(shè)計(jì)與實(shí)現(xiàn) 16 防火墻實(shí)現(xiàn)的功能 本文所訴個(gè)人防火墻實(shí)現(xiàn)了如下功能: 1. 網(wǎng)絡(luò)數(shù)據(jù)過濾:這也是防火墻 應(yīng)該實(shí)現(xiàn)的主要功能, 該功能由 本防火墻 的過濾鉤子驅(qū)動(dòng)( FilterHook Driver)和 IP 過濾驅(qū)動(dòng)來實(shí)現(xiàn),過濾鉤子驅(qū)動(dòng) 通過 向Windows XP 系統(tǒng)自帶的 IP 過濾驅(qū)動(dòng)注冊它,然后 IP 過濾驅(qū)動(dòng)使用這個(gè)過濾鉤子根據(jù) 過濾鉤子驅(qū)動(dòng) 的 過濾規(guī)則 對(duì) 可以對(duì)流經(jīng)計(jì)算機(jī)的 IP 數(shù)據(jù)包、 TCP 數(shù)據(jù)包、 UDP 數(shù)據(jù)包進(jìn)行 相應(yīng)處理,以實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)數(shù)據(jù)包的 攔截過濾。 2. FilterHook Driver FilterHook Driver 就是本文防火墻中自己所寫的驅(qū)動(dòng)程序, 這就是用來過濾網(wǎng)絡(luò)封包的內(nèi)核模式驅(qū)動(dòng), 該驅(qū)動(dòng)程序?qū)崿F(xiàn)了 IP Filter Driver(對(duì)應(yīng)系統(tǒng) 中 ,上文已述)提供的接口,通過向 IP Filter Driver 注冊回調(diào)函數(shù),并實(shí)現(xiàn)這個(gè)回調(diào)函數(shù),在這個(gè)回調(diào)函數(shù)中我們可以根據(jù)需要定義自己的規(guī)則。 1. IP Filter Driver IP Filter Driver 是 Windows2020,Windows XP 系統(tǒng)自帶的一個(gè)驅(qū)動(dòng),系統(tǒng)默認(rèn)情況下并不加載,這個(gè)驅(qū)動(dòng)可以實(shí)現(xiàn)對(duì)數(shù)據(jù)包的過濾。 驅(qū)動(dòng)層 如上圖 41 所示,驅(qū)動(dòng)層內(nèi)也分為 FilterHook Driver 和 IP Filter Driver 兩塊 。 2. 界面模塊 該模塊負(fù)責(zé)與用戶交互。 能起到對(duì)管控規(guī)則內(nèi)的網(wǎng)絡(luò)數(shù)據(jù)訪問進(jìn)行放行,管控規(guī)則之外的則進(jìn)行攔截,并能夠修改過濾規(guī)則 以及 查看日志 ,適合個(gè)人用戶使用 。 FilterHook Driver 與 IP Filter Driver 配合實(shí) 現(xiàn)的數(shù)據(jù)包過濾的個(gè)人防火墻實(shí)際上就是利用自己寫的 Hook 來修改底層函數(shù)的入口地址,以達(dá)到截取需要過濾的特定數(shù)據(jù)包并按 編寫 的函數(shù)進(jìn)行過濾來實(shí)現(xiàn) 個(gè)人防火墻的數(shù)據(jù)包過濾功能 [14]。Microsoft Visual C++中提供了相應(yīng)的 MFC 工具來幫助程序員完成應(yīng)用程序的編寫:AppWizard 可用來生成初步的框架文件,如代碼和資源;資源編輯器用于 直觀 的設(shè)計(jì)用戶接口; ClassWizard 用于協(xié)助添加代碼到框架文件;然后經(jīng)過編譯就可以通過類庫 來實(shí)現(xiàn)應(yīng)用程序特定的邏輯。 MFC 也是一個(gè)應(yīng)用程序的框架結(jié)構(gòu),其目的是可以讓程序員直接在此基礎(chǔ)上來建立 Windows 下的應(yīng)用程序,使得實(shí)現(xiàn)方式相對(duì) SDK 來實(shí)現(xiàn)更加簡單。在 MFC 程 序中,并不經(jīng)常直接調(diào)用 Windows API;而是從 MFC 類創(chuàng)建對(duì)象并調(diào)用屬于這些對(duì)象的成員函數(shù) [13]。是應(yīng)用程序編程的框架結(jié)構(gòu)。 MFC 簡介 本文個(gè)人防火墻的用戶界面采用 MFC 實(shí)現(xiàn)。使用方法簡單,打開軟件,找到 .sys 文件路徑,然后點(diǎn)擊所需操作即可完成驅(qū)動(dòng)的安裝、卸載、開啟和停止。 這樣我們在選擇相應(yīng)的系統(tǒng)版本后打開 WDK,進(jìn)入控制臺(tái)編譯環(huán)境后就可以進(jìn)入windows平臺(tái)下個(gè)人防火墻的設(shè)計(jì)與實(shí)現(xiàn) 12 文件所在目錄進(jìn)行編譯了,編譯命令為 build,編譯后的 .sys 文件保存在文件所在目錄下自動(dòng)生成的文件夾內(nèi)的 子文件夾內(nèi)。 makefile 文件幾乎都一樣,不用更改,如本文所用的 makefile 文件內(nèi)容如下: !INCLUDE $(NTMAKEENV)\ 另外一個(gè) source 文件的內(nèi)容則關(guān)系到這個(gè)驅(qū)動(dòng)模塊要編譯的文件,以及編譯出來的 .sys 文件的名字。 WDK 在編譯工程的時(shí)候,必須在工程目錄下增加兩個(gè)文件,以便 WDK 可以成功的 build。 編譯驅(qū)動(dòng)程序源文件 編譯器在編譯驅(qū)動(dòng) 內(nèi)核驅(qū)動(dòng)程序 源文件時(shí)把中 DriverEntry 當(dāng)做每個(gè)內(nèi)核模塊的入口 點(diǎn)歷程 ( 就是一個(gè)函數(shù), 相當(dāng)于普通 C 源文件中的 main 函數(shù)),在加載這個(gè)模塊時(shí)被系統(tǒng)進(jìn)程 System 調(diào)用一次。 WDK 的獲得可通過微軟官方網(wǎng)站下載。 windows平臺(tái)下個(gè)人防火墻的設(shè)計(jì)與實(shí)現(xiàn) 11 WDK 內(nèi)核編程工具 就像應(yīng)用程序使用開發(fā)包 SDK 一樣,內(nèi)核編程使用“ Windows Driver Kit”,簡稱WDK。 驅(qū)動(dòng) 開發(fā) 工具 本文所要編寫的 FilterHook Driver 即為一個(gè) Windows 內(nèi)核模式驅(qū)動(dòng),故需要相應(yīng)的內(nèi)核開發(fā)工具 —— WDK。 C 語言是一種低級(jí)語言,適合系統(tǒng)編程。同樣著名的 C++和 Java 也由它衍生而來。 C 語言簡介 C 程序設(shè)計(jì)語言是由 Dennis Ritchie 于 1973 年設(shè)計(jì)并實(shí)現(xiàn)的。該版本做了重大修改并引入了很多新的特性,如對(duì)最新的 C++標(biāo)準(zhǔn)的支持等。 Microsoft Visual Studio 2020
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1