出版時間:2012-11 出版社:清華大學(xué)出版社 作者:伍紅兵,胡勇強,俞海英 著 頁數(shù):399
Tag標(biāo)簽:無
內(nèi)容概要
《主機(jī)防火墻設(shè)計技術(shù)及Tdifw源代碼分析》以開源項目Tdifw為素材,詳細(xì)分析了主機(jī)防火墻設(shè)計技術(shù)及實現(xiàn)。 《主機(jī)防火墻設(shè)計技術(shù)及Tdifw源代碼分析》的目的是幫助讀者學(xué)習(xí)和掌握防火墻設(shè)計技術(shù)與實現(xiàn)方法。主機(jī)防火墻一般采用“服務(wù)十驅(qū)動”的系統(tǒng)構(gòu)架,能夠控制哪個用戶運行的哪個進(jìn)程能夠訪問哪個遠(yuǎn)程主機(jī)的哪個端口。相應(yīng)地,主機(jī)防火墻開發(fā)者首先需要具備Windows安全模型、服務(wù)應(yīng)用程序設(shè)計、內(nèi)核驅(qū)動程序設(shè)計、網(wǎng)絡(luò)體系結(jié)構(gòu)等方面的知識,然后需要掌握如何運用這些技術(shù)開發(fā)主機(jī)防火墻。圍繞這些內(nèi)容,《主機(jī)防火墻設(shè)計技術(shù)及Tdifw源代碼分析》分為以下幾個部分:Windows安全模型;服務(wù)與事件日志;內(nèi)核驅(qū)動程序設(shè)計;Windows網(wǎng)絡(luò)體系結(jié)構(gòu);Tdifw防火墻設(shè)計技術(shù)與源代碼分析?! ”緯m合大專院校計算機(jī)專業(yè)的學(xué)生、Windows程序員、Windows內(nèi)核程序員、信息安全領(lǐng)域的程序員以及對Windows防火墻設(shè)計感興趣的編程愛好者使用?! ¢喿x本書需要有C語言、Windows操作系統(tǒng)和計算機(jī)網(wǎng)絡(luò)的基礎(chǔ)知識。
書籍目錄
第1章Windows安全模型 1.1受保護(hù)的對象 1.2對象安全模型 1.3安全標(biāo)識符 1.4訪問令牌 1.4.1模仿 1.4.2受限制的令牌 1.5安全描述符 1.5.1 ACL分配 1.5.2訪問控制檢查 1.6賬戶權(quán)限和特權(quán) 1.6.1賬戶權(quán)限 1.6.2賬戶特權(quán) 1.7 Windows安全性組件 1.8一個不容易理解的問題 1.8.1登錄會話 1.8.2會話 1.8.3窗口站和桌面 1.8.4小結(jié) 第2章服務(wù)與事件日志 2.1 Windows服務(wù)概覽 2.1.1服務(wù)相關(guān)組件 2.1.2服務(wù)相關(guān)注冊表項 2.2服務(wù)程序工作原理 2.2.1進(jìn)程人口函數(shù) 2.2.2服務(wù)入口函數(shù) 2.2.3服務(wù)控制處理器 2.2.4控制碼和狀態(tài)報告 2.3服務(wù)控制程序 2.3.1打開SCM 2.3.2安裝服務(wù) 2.3.3刪除服務(wù) 2.3.4啟動與控制服務(wù) 2.3.5重新配置服務(wù) 2.3.6鎖定SCM數(shù)據(jù)庫 2.4服務(wù)調(diào)試 2.5事件日志 2.5.1報告事件 2.5.2消息文件 2.5.3事件日志體系結(jié)構(gòu)和開發(fā)流程 2.5.4創(chuàng)建消息文件 2.5.5編譯消息 2.5.6資源文件 2.6 Windows服務(wù)舉例——ServiceFramework 2.6.1安裝服務(wù)InstallService 2.6.2服務(wù)程序MyService 2.6.3客戶端程序MyClient 第3章 內(nèi)核驅(qū)動程序設(shè)計 3.1基本驅(qū)動程序示例 3.1.1基本的NT驅(qū)動BaseNT 3.1.2基本的WDM驅(qū)動 3.2設(shè)備驅(qū)動程序基本概念 3.2.1系統(tǒng)I/O組件 3.2.2驅(qū)動程序基本結(jié)構(gòu)與工作模型 3.2.3驅(qū)動程序分類 3.2.4 WDM驅(qū)動程序與設(shè)備棧 3.2.5設(shè)備棧的建立 3.2.6 IRP在設(shè)備棧中的傳遞 3.2.7分層的驅(qū)動程序 3.2.8注冊表中的驅(qū)動程序信息 3.2.9設(shè)備枚舉 3.2.10驅(qū)動程序加載順序 3.3關(guān)鍵數(shù)據(jù)結(jié)構(gòu) 3.3.1驅(qū)動對象 3.3.2設(shè)備對象 3.3.3文件對象 3.3.4 I/O請求包IRP 3.3.5 I/O棧單元 3.4驅(qū)動程序編譯 3.4.1使用WDK的編譯環(huán)境編譯驅(qū)動程序 3.4.2使用Visual Studio編譯驅(qū)動程序 3.5驅(qū)動程序調(diào)試 3.5.1調(diào)試環(huán)境設(shè)置 3.5.2結(jié)合WRK對項目調(diào)試 3.6驅(qū)動程序安裝 3.6.1設(shè)備安裝組件 3.6.2 PNP設(shè)備安裝舉例 3.6.3 INF文件 3.7 Toaster示例分析 3.7.1 目錄和文件說明 3.7.2編譯方法 3.7.3驅(qū)動安裝 3.7.4運行示例 3.7.5過濾驅(qū)動 3.7.6設(shè)備棧 第4章Windows網(wǎng)絡(luò)體系結(jié)構(gòu) 4.1 網(wǎng)絡(luò)API 4.2 WinSock 4.2.1 SPI 4.3傳輸驅(qū)動程序接口TDI 4.4網(wǎng)絡(luò)驅(qū)動程序接口規(guī)范NDIS 4.5 Windows平臺下的防火墻方案 4.5.1用戶級的實現(xiàn)方法 4.5.2核心級的實現(xiàn)方法 4.5.3各種攔截方案比較 4.6對傳輸驅(qū)動接口TDI的詳細(xì)討論 4.6.1傳輸驅(qū)動程序接口(TDI) 4.6.2 TDI設(shè)備對象 4.6.3 TDI文件對象 4.6.4 TDI傳輸驅(qū)動程序例程 4.6.5 TDI內(nèi)核模式客戶交互 4.6.6 TDI請求及事件 第5章Tdifw防火墻設(shè)計技術(shù)與源代碼分析 5.1 Tdifw安裝與使用 5.1.1 Tdifw體系結(jié)構(gòu) 5.1.2系統(tǒng)文件說明 5.1.3安裝 5.1.4配置文件Tdifw.conf 5.2分析環(huán)境構(gòu)建 5.2.1 Tdifw移植到Visual Studio 2010要點 5.2.2 Tdifw項目調(diào)試 5.2.3增加輸出錯誤信息的可讀性 5.3 Tdifw安裝程序tdi_install.C 5.3.1 Tdifw過濾驅(qū)動在系統(tǒng)中的位置 5.3.2 install.exe使用方法 5.3.3 tdi_install.c注釋 5.4 SVC項目 5.4.1 SVC項目中的內(nèi)存泄露檢測——CRT調(diào)試堆 5.4.2 main.C文件 5.4.3 SVC項目的錯誤信息輸出 5.4.4 Tdifw服務(wù)線程service_main 5.4.5 start函數(shù) 5.4.6 stop函數(shù) 5.4.7加載配置文件 5.4.8服務(wù)程序響應(yīng)驅(qū)動程序請求 5.4.9處理驅(qū)動程序請求 5.4.10其他函數(shù)的解釋 5.4.11 Tdifw服務(wù)中的消息文件 5.5 drv驅(qū)動項目 5.5.1 drv項目中的內(nèi)存泄露檢測 5.5.2驅(qū)動入口DriverEntry 5.5.3 ot—init 5.5.4 filter_init 5.5.5 conn_state_init 5.5.6 c_n_a_device 5.5.7 OnUnload 5.5.8 d_n_d_device 5.5.9分發(fā)例程DeviceDispatch 5.5.10 tdi_create 5.5.11 tdi_dispatch_complete 5.5.12處理IRP_MJ_INTERNAL_DEVICE_CONTROL請求的函數(shù) 參考文獻(xiàn)
章節(jié)摘錄
版權(quán)頁: 插圖: 2.6.2 服務(wù)程序MyService 服務(wù)程序只是一個框架,沒有完成什么有意義的工作,需要理解框架的結(jié)構(gòu),知道如果要增加有意義的工作應(yīng)該在什么位置增加代碼。 代碼主要流程為: (1)定義服務(wù)表項SERVICE_TABLE_ENTRY; (2)調(diào)用StartServiceCtrlDispatcher函數(shù)啟動服務(wù)線程; (3)服務(wù)線程入口函數(shù)service_main注冊服務(wù)控制處理器函數(shù)service_ctrl,然后調(diào)用服務(wù)的主體函數(shù)ServiceSpecific; (4)ServiceSpecific函數(shù)完成服務(wù)的主要工作: 加載自定義的注冊表項中的配置信息; 創(chuàng)建命名管道以準(zhǔn)備與客戶端程序通信; 啟動線程PipeThread專門用于通過命名管道與客戶端程序通信; 啟動一個while循環(huán),完成服務(wù)的主體工作,本例只是完成一些測試工作:將一些信息寫入自定義的文本格式的日志文件中、將一些信息寫入標(biāo)準(zhǔn)的Windows事件日志中。 (5)service_ctrl函數(shù)接收SCM的控制請求,其中最重要的工作是處理SERVICECONTROL_STOP控制請求、停止服務(wù),停止的方法很簡單,將控制服務(wù)是否停止的全局變量g_shutDown設(shè)為TRUE,ServiceSpecific函數(shù)中的while循環(huán)會判斷該全局變量以決定是否退出循環(huán),一旦退出循環(huán),ServiceSpecific函數(shù)就會返回,接著service_main函數(shù)也會返回,服務(wù)線程終止,最后StartServiceCtrlDispatcher函數(shù)也結(jié)束,主線程終止,從而整個服務(wù)也就停止了。 (6)在以上過程中適當(dāng)?shù)牡胤秸{(diào)用ReportStatusToSCMgr函數(shù)報告服務(wù)的運行狀態(tài)。 下面對其中的重要函數(shù)做一個說明。 1.main()函數(shù) 這是服務(wù)應(yīng)用程序的主線程入口函數(shù),一般情況下由SCM負(fù)責(zé)加載。主要工作就是定義服務(wù)表項SERVICE_TABLE_ENTRY,然后調(diào)用StartServiceCtrlDispatcher函數(shù)啟動服務(wù)線程。其中加了一個調(diào)試功能,如果在命令行直接輸入: 則程序由系統(tǒng)的SHELL加載,而不是由SCM加載,也不會調(diào)用StartSerViceCtrlDispatcher函數(shù),而是直接調(diào)用服務(wù)的主體函數(shù)ServiceSpecific: 從而整個程序就像一個普通的控制臺程序,在ServiceSpecific函數(shù)中設(shè)置斷點,可以調(diào)試服務(wù)的主體功能。
編輯推薦
《主機(jī)防火墻設(shè)計技術(shù)及Tdifw源代碼分析》適合大專院校計算機(jī)專業(yè)的學(xué)生、Windows程序員、Windows內(nèi)核程序員、信息安全領(lǐng)域的程序員以及對Windows防火墻設(shè)計感興趣的編程愛好者使用。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載
主機(jī)防火墻設(shè)計技術(shù)及Tdifw源代碼分析 PDF格式下載