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

正文內容

windows平臺下個人防火墻的設計與實現(xiàn)畢業(yè)論文-資料下載頁

2025-08-23 16:33本頁面

【導讀】隨著互聯(lián)網(wǎng)的普及,安全問題越來越受到大家的重視。一個安全良好的網(wǎng)絡環(huán)境能。個人防火墻作為最早出現(xiàn)和最多使用的網(wǎng)絡安全產品,以軟件的形式存在于計算機。到對系統(tǒng)的保護作用。因此,開發(fā)有效的個人防火墻具重要意義。本課題中實現(xiàn)個人防火墻所采用的核心過濾技術為Filter-HookDriver。編譯,用戶層采用C語言進行編寫。用戶界面用MFC實現(xiàn)。數(shù)據(jù)包的過濾,管控規(guī)則設置和日志功能。充分考慮了個人防火墻所需的基本功能,操。作方便,界面簡單友好。

  

【正文】 ObjectName, IN ACCESS_MASK DesiredAccess, OUT PFILE_OBJECT *FileObject, OUT PDEVICE_OBJECT *DeviceObject )。 其中的 ObjectName 是設備名字。 DesiredAccess 是期望訪問的權限, 實際使用直接填寫 FILE_ALL_ACCESS 即可。 FileObject 是一個返回參數(shù),即獲得這個設備對象的同時會得到的一個文件對象( File Object)。 2. 創(chuàng)建用于設立過濾函數(shù)的 IRP。通過調用 IoBuildDeviceIoControlRequest 這個內核 API 進行設 定。 這個 API 函數(shù)主要用來構造一個用于設備 I\O 請求的 IRP 包,此包被同步處理,這里我們構造 IRP 主函數(shù)碼: IRP_MJ_DEVICE_CONTROL。 3. 向驅動發(fā)送 IRP,調用內核 API: IoCallDriver,該函數(shù)的作用就是向指定對象發(fā)送 IRP,函數(shù)有 DeviceObject 和 Irp 兩個參數(shù),顧名思義, DeviceObject 就是設備對象, Irp 就是傳入需發(fā)送的 IRP 包。 4. 實現(xiàn)回調函數(shù)。本文定義了一個 filterFunction 函數(shù)實現(xiàn)了對接收到的數(shù)據(jù)包進行具體處理的方法。 本文定義了 IP 包、 TCP 包和 UDP 包三個包結構, IP 數(shù)據(jù)包結構體定義如下: typedef struct IPHeader { UCHAR iphVerLen。 // 版本號和頭長度 UCHAR ipTOS。 // 服務類型 USHORT ipLength。 // IP 數(shù)據(jù)報長度 USHORT ipID。 // 每個數(shù)據(jù)包的唯一標識 windows平臺下個人防火墻的設計與實現(xiàn) 21 USHORT ipFlags。 // 標志 UCHAR ipTTL。 // 生存時間 UCHAR ipProtocol。 // 協(xié)議 USHORT ipChecksum。 // 校驗和 ULONG ipSource。 // 源地址 ULONG ipDestination。 // 目的地址 } IPPacket。 TCP 數(shù)據(jù)包結構體 定義 如下: typedef struct _TCPHeader { USHORT sourcePort。 // 源端口 號 USHORT destinationPort。 // 目的端口號 ULONG sequenceNumber。 // 序號 ULONG acknowledgeNumber。 // 確認序號 UCHAR dataoffset。 // 數(shù)據(jù)指針 UCHAR flags。 // 標志 USHORT windows。 // 窗口大小 USHORT checksum。 // 校驗和 USHORT urgentPointer。 // 緊急指針 } TCPHeader。 UDP 數(shù)據(jù)包結構體定義如下: typedef struct _UDPHeader { USHORT sourcePort。 // 源端口 USHORT destinationPort。 // 目的端口 USHORT len。 // 總長度 USHORT checksum。 // 校驗和 } UDPHeader。 接受到這些數(shù)據(jù)包后, filterFunction 函數(shù)就可以對數(shù)據(jù)包進行解析,然后做出windows平臺下個人防火墻的設計與實現(xiàn) 22 相應處理。 filterFunction 函數(shù)的流程 圖如下 所示 : 驅動控制 模塊 的實現(xiàn) 本文對 FilterHook 驅動的控制是通過編寫的控制程序來實現(xiàn)的, 驅動控制模塊負責用戶層對驅動層的交互,向驅動層發(fā)送控制信息,實現(xiàn)在用戶層對驅動層的控制。程序首先進行驅動服務的安裝,安裝成功后打開驅動設備,然后根據(jù)用戶操作提供的IOCTL 代碼對驅動設備進行控制。 通過該程序,實現(xiàn)了驅動服務的安裝,打開驅動設備,整體結構如圖 55 所示: 開始 接收到數(shù)據(jù)包 進行包頭解析,并與過濾規(guī)則列表中的規(guī)則進行匹配 匹配成功 不作處理并放行 阻止丟棄 結束 Y N 圖 54 filterFunction 函數(shù)流程圖 windows平臺下個人防火墻的設計與實現(xiàn) 23 驅動服務安裝 驅動控制模塊首先執(zhí)行的是驅動服務的安裝,其流程如 圖 56 所示: 1. 打開服務管理,調用系統(tǒng) API: OpenSCManager,建立了一個連接到服務控制管理器,并打開指定的數(shù)據(jù)庫。傳入機器名字,返回一個指向服務管理數(shù)據(jù)庫的句柄。 驅動服務安裝 打開驅動設備 對驅動設備進行控制 打開服務管理 打開服務 服務已創(chuàng)建 開啟服務 關閉句柄 結束 創(chuàng)建服務 關閉句柄 開啟服務 Y N 圖 55 驅動控制示意圖 圖 56 驅動服務安裝 windows平臺下個人防火墻的設計與實現(xiàn) 24 2. 嘗試打開驅動服務,調用系統(tǒng) API: OpenService,打開驅動服務,傳入上一步得到的句柄,如果想要打開的驅動服務已經(jīng)存在,則可以直接開啟驅動服務,即調用系統(tǒng) API: StartService,開啟那個驅動服 務。如果那個驅動服務不存在,則首先得創(chuàng)建那個驅動服務,調用系統(tǒng) API: CreateService,創(chuàng)建驅動服務,需要傳入驅動服務的名字和驅動文件的路徑,獲得驅動服務句柄。然后再調用StartServie,開啟這個驅動服務。 3. 關閉句柄。服務開啟之后,關閉之前所有的句柄 。 打開驅動設備 驅動服務安裝成功后,接著在用戶層打開 FilterHook Driver。通過調用 OpenDevice函數(shù)(封裝 系統(tǒng) API: CreateFile) 來實現(xiàn) 該函數(shù)原型如下: long OpenDevice(LPCTSTR DriverName, HANDLE *DriverHandle); DriverName為驅動設備名, *DriverHandle為設備句柄(指針)。系統(tǒng) API: CreateFile函數(shù)通過該句柄 傳入驅動設備的名字,然后函數(shù)返回設備句柄 打開驅動設備 。 對驅動設備進行控制 本文防火墻提供了四種操作對驅動設備進行控制, 分別為 start、 stop、 add 和 clear,分別對應啟動防火墻、停止防火墻、添加過濾規(guī)則、清除過濾規(guī)則。 要實現(xiàn)這些操作,首先,定義了 4 種消息碼,此消息碼就是發(fā)送給驅動層的操作信息,這 4 個消息碼分別是: START_IP_HOOK、 STOP_IP_HOOK、 ADD_FILTER、CLEAR_FILTER。 接著,封裝了四個功能函數(shù),來實現(xiàn)這四種消息碼的功能請求 : StartFilter()、StopFilter()、 AddFilter()、 CleanFilter()。其中,這四個功能函數(shù)的主要實現(xiàn)都調用了系統(tǒng) API: DeviceControl, 這個 API 負責向驅動層發(fā)送控制信息。這個 API 所需參數(shù)主要有三個:驅動設備句柄,即上一步中打開驅動設備獲取句柄;控制碼:即上面預先定義的四個控制 碼,不同的控制碼代表通知驅動執(zhí)行不同的操作;一個緩沖區(qū),即需要傳遞給驅動層具體的數(shù)據(jù)。這里,執(zhí)行 ADD_FILTER 時,需要傳遞過濾規(guī)則的結構體,其他情況下這個參數(shù)為空。 windows平臺下個人防火墻的設計與實現(xiàn) 25 用戶界面 本文所述防火墻 實現(xiàn) 后 的用戶界面如圖 57 所示: 圖 57 個人防火墻用戶界面 本界面用 MFC 設計,其整體基于對話框。使用到的 控件有:靜態(tài)文本框、文本框、按鈕和列表框。界面設計遵循直觀,簡單的設計思路,用戶通過界面可以直觀的了解防火墻的功能:啟動、停止、添加過濾規(guī)則、刪除過濾 規(guī)則。 用戶界面程序的核心實現(xiàn)就是使用 CDriver 類向過濾鉤子驅動程序發(fā)送幾個設備控制碼( START_IP_HOOK、 STOP_IP_HOOK、 ADD_FILTER、 CLEAR_FILTER)。 點擊start 按鈕, 防火墻就根據(jù)該動作向 FilterHook 驅動程序發(fā)送 START_IP_HOOK 控制碼,這樣防火墻就可以啟動,開始工作。 防火墻啟動后就可以根據(jù)右側已有規(guī)則進行數(shù)據(jù)過濾 。 添加過濾規(guī)則 時 , 只需在左側文本框內輸入?yún)f(xié)議號、源 \目 IP 地址、源 \目掩碼、源\目端口號等信息 然后點擊 add 按鈕 ( 向 FilterHook驅動程序發(fā)送 ADD_FILTER 控制碼 )就可生成 一條規(guī)則并在右側列表框內顯示。通過 clear 按鈕 ( 向 FilterHook 驅動程序發(fā)送 CLEAR_FILTER 控制碼 ) 清除已有規(guī)則。 點擊 stop 按鈕后, 防火墻就根據(jù)該動作向FilterHook 驅動程序發(fā)送 START_IP_HOOK 控制碼 以關閉防火墻 ,停止過濾。 與其他商用防火墻相比, 本個人防火墻 界面和功能都可能相對簡單,但 可以對已知的欲阻止訪問進行提前對管控規(guī)則進行設置,這樣的好處是可以 對已知的預提前阻止的訪問規(guī)則進行添加, 起到提前預防作用。 系統(tǒng)測試 軟件測試就是利用測試工具按照測試方案和流程對產品進行功能和性能測試,甚至根據(jù)需要編寫不同的測試工具,設計和維護測試系統(tǒng),對測試方案可能出現(xiàn)的問題進行分析和評估。執(zhí)行測試用例后,需要跟蹤故障,以確保開發(fā)的產品適合需求。 windows平臺下個人防火墻的設計與實現(xiàn) 26 其 中 功能測試就是對產品的各功能進行驗證,根據(jù)功能測試用例,逐項測試,檢查產品是否達到用戶要求的功能 。下面就對本防火墻系統(tǒng)進行功能測試。 功能測試也叫黑盒子測試或數(shù)據(jù)驅動測試,只需考慮各個功能,不需要考慮整個軟件的內部結構及代碼 .一般從軟件產品的界面、架構出發(fā),按照需求編寫出來的測試用 例,輸入數(shù)據(jù)在預期結果和實際結果之間進行評測,進而提出更加使產品達到用戶使用的要求 測試環(huán)境與工具 本系統(tǒng)屬于 Windows 驅動開發(fā)范疇,涉及內核部分。為避免驅動錯誤導致系統(tǒng)錯誤錯誤,故整個測試過程在 VMware Workstation 虛擬機內的 Windows XP 系統(tǒng)環(huán)境下進行。 VMware Workstation 是一款桌面虛擬計算機軟件,提供用戶可在單一的桌面上同時運行不同的操作系統(tǒng),和進行開發(fā)、測試 、部署新的應用程序的最佳解決方案,故能很好的避免測試中出現(xiàn)的錯誤導致的嚴重后果。 由于涉 及驅動層的部分無法直接顯示,因此借助了 DebugView 這個調試工具來幫助查看驅動層的輸出顯示。 DebugView 是一款調試工具軟件,可以顯示計算機內的字符信息,對于本驅動程序 在內核層的運行結果進行查看。 功能測試 1. 測試方法 添加防火墻過濾規(guī)則。設置需要阻止的 TCP 協(xié)議通信的源、目 IP 地址,設置好端口號和掩碼等。然后開啟防火墻,訪問添加的規(guī)則內的 IP 地址。預期該規(guī)則指定的源IP 地址和目的 IP 地址之間的 HTTP(端口號 80)通信將被防火墻攔截阻止。 2. 測試過程及結果 本次測試 一個是 以訪問 黑龍江大學 校 園網(wǎng) 為例, 黑龍江大學 校園網(wǎng) 為源地址, IP地址為 , 由于 目的地址 只有 本機, 故設置為忽略, 目的 IP地址 設置 為 ,依次填入該條測試規(guī)則用例 ,協(xié)議號為 6 表示 TCP 協(xié)議,端口號 默認設置為零( 因 具體的端口號可能未知) 。 規(guī)則設置如圖 58 所示: windows平臺下個人防火墻的設計與實現(xiàn) 27 圖 58 添加過濾規(guī)則測試用例 右側顯示規(guī)則已經(jīng)添加,表示規(guī)則添加成功。 此時并未啟動防火墻, 過濾驅動還未注冊,規(guī)則未能生效,故 仍可對規(guī)則所指定 IP進行訪問 。 然后點擊 start 按鈕,啟動防火墻,再次 訪問該地址, 預期過濾規(guī)則生效,可以對規(guī)則指定通信進行攔截,實際測試 結果顯示如下: 圖 59 測試結果演示圖 測試結果表明,規(guī)則所指定的該 IP 與本地 IP 間的通信被阻止,即數(shù)據(jù)攔截成功。這是用戶可以直接看到的結果。由于驅動層的運行信息無法像用戶層的一樣顯示出來,如果想要看到驅動層的攔截過濾情況, 需要借助一些工具,本文 借助 DebugView 對防火墻驅動層進行查看,結果如圖 510 所示: windows平臺下個人防火墻的設計與實現(xiàn) 28 圖 510 FilterHook Driver 測試結果圖 通過結果,可以看到 該數(shù)據(jù)包的詳細情況,顯示表明,規(guī)則生效,防火墻攔截過濾成功。 另外,再對禁止所有數(shù)據(jù)包進行測試。方法是:在規(guī)則里添加一條各項所有為 0 的規(guī)則,然后啟動防火墻。測試結果:所有的網(wǎng)絡數(shù)據(jù)通信都被阻止。
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1