出版時間:2012-7 出版社:機械工業(yè)出版社 作者:呂雪峰,彭文波,宋澤宇 頁數(shù):447
Tag標(biāo)簽:無
內(nèi)容概要
《網(wǎng)絡(luò)分析技術(shù)揭秘:原理、實踐與WinPcap深入解析》結(jié)合著名的開源軟件庫WinPcap來說明網(wǎng)絡(luò)分析技術(shù)的實現(xiàn)原理及使用方法。其中包括WinPcap內(nèi)核驅(qū)動,編譯與使用,數(shù)據(jù)包的捕獲、發(fā)送、內(nèi)核過濾與接收,以及網(wǎng)絡(luò)流量的統(tǒng)計與網(wǎng)絡(luò)狀態(tài)的分析等重要內(nèi)容,而且作者還通過修改內(nèi)核級的源代碼解決了開源代碼本身尚未完成的一個重要功能—數(shù)據(jù)包的內(nèi)核轉(zhuǎn)儲。經(jīng)過系統(tǒng)深入的分析,讀者既能對WinPcap的架構(gòu)、使用與實現(xiàn)機制有深入的理解,又能快速熟悉操作系統(tǒng)內(nèi)核與用戶層交互的實現(xiàn)機制,并全面了解網(wǎng)絡(luò)分析專業(yè)各方面的技術(shù),進而將相關(guān)知識運用到實際項目中。
如果您的工作與網(wǎng)絡(luò)軟件相關(guān),無論是開發(fā)人員還是測試人員,我們都強烈建議您閱讀這本書。
作者簡介
呂雪峰,華中科技大學(xué)控制工程與控制理論專業(yè)碩士,資深軟件工程師,國船電氣(武漢)有限公司軟件技術(shù)總監(jiān)。是目前國內(nèi)對WinPcap進行徹底分析研究的先驅(qū),活躍于51CTO、ChinaUnix、CSDN等社區(qū)。對WinPcap與網(wǎng)絡(luò)分析具有深入的理解,在《計算機應(yīng)用》等學(xué)術(shù)期刊上發(fā)表核心論文多篇。尤精于嵌入式Linux。 彭文波,從事互聯(lián)網(wǎng)產(chǎn)品工作,曾在省級電子商務(wù)認(rèn)證中心從事安全開發(fā)工作,曾就職于多家專業(yè)網(wǎng)管軟件公司,先后參與了電子商務(wù)認(rèn)證系統(tǒng)、移動網(wǎng)絡(luò)管理系統(tǒng)等產(chǎn)品的開發(fā)。 宋澤宇,七二二研究所數(shù)字通信專業(yè)碩士,高級工程師,國船電氣(武漢)有限公司副總經(jīng)理,曾參與多個大型項目的研制工作。
書籍目錄
前言
第1章 揭開網(wǎng)絡(luò)分析的神秘面紗
1.1 網(wǎng)絡(luò)分析概述
1.2 網(wǎng)絡(luò)分析的主要用途
1.3 黑客使用嗅探器的方法
1.4 被嗅探數(shù)據(jù)的真面目
1.4.1 使用嗅探器獲得FTP的用戶名和密碼
1.4.2 使用嗅探器分析沖擊波蠕蟲(Blaster Worm)
1.5 常見的網(wǎng)絡(luò)分析器
1.6 網(wǎng)絡(luò)分析器的工作原理
1.6.1 以太網(wǎng)簡介
1.6.2 理解開放系統(tǒng)互連(OSI)模型
1.6.3 了解CSMACD協(xié)議
1.6.4 IP、ICMP、TCP與UDP協(xié)議
1.6.5 硬件
1.6.6 欺騙交換機
1.7 嗅探器的檢測
1.7.1 檢測嗅探器的原理
1.7.2 防止網(wǎng)絡(luò)嗅探可采取的安全措施
1.8 網(wǎng)絡(luò)分析工具的主要功能組成
1.9 Wireshark的概述、安裝與使用
1.9.1 Wireshark的概述
1.9.2 Wireshark的安裝
1.9.3 Wireshark的使用
1.1 0小結(jié)
第2章 初識網(wǎng)絡(luò)分析基礎(chǔ)庫WinPcap
2.1 WinPcap概述
2.2 WinPcap的優(yōu)點
2.3 WinPcap的使用者
2.4 WinPcap的體系架構(gòu)
2.4.1 WinPcap的主要組成
2.4.2 數(shù)據(jù)包捕獲的基本過程
2.4.3 WinPcap的驅(qū)動程序
2.4.4 WinPcap內(nèi)核驅(qū)動的主要功能
2.5 用戶空間庫接口函數(shù)
2.5.1 wpcap.dll庫中的重要函數(shù)
2.5.2 Packet.dll庫中的重要函數(shù)
2.6 小結(jié)
第3章 網(wǎng)絡(luò)分析工具的內(nèi)核驅(qū)動基礎(chǔ)知識
3.1 Windows驅(qū)動程序基礎(chǔ)知識
3.1.1 驅(qū)動對象(DRIVER_OBJECT)
3.1.2 設(shè)備對象(DEVICE_OBJECT)
3.1.3 設(shè)備擴展(_DEVICE_EXTENSION)
3.1.4 IRP與派遣函數(shù)
3.1.5 同步處理
3.1.6 內(nèi)核的內(nèi)存操作
3.1.7 內(nèi)存操作的運行時函數(shù)
3.1.8 內(nèi)核的注冊表操作
3.2 NDIS協(xié)議驅(qū)動程序
3.2.1 三種類型的網(wǎng)絡(luò)驅(qū)動程序
3.2.2 協(xié)議驅(qū)動程序的特征結(jié)構(gòu)體
3.3 小結(jié)
第4章 編譯與使用WinPcap
4.1 源代碼目錄結(jié)構(gòu)
4.2 構(gòu)建驅(qū)動程序NPF
4.3 構(gòu)建Packet.dll庫
4.4 構(gòu)建wpcap.dll庫
4.5 安裝NPF驅(qū)動程序與各庫文件
4.6 使用WinPcap庫進行程序開發(fā)的實例
4.7 小結(jié)
第5章 WinPcap驅(qū)動程序的初始化與清除
5.1 驅(qū)動程序中的初始化函數(shù)DriverEntry
5.1.1 DriverEntry函數(shù)的工作流程
5.1.2 DriverEntry函數(shù)的具體實現(xiàn)
5.2 驅(qū)動程序中的卸載函數(shù)DriverUnload
5.3 小結(jié)
第6章 獲得與釋放網(wǎng)絡(luò)適配器設(shè)備列表
6.1 使用WinPcap選擇合適的適配器
6.1.1 wpcap.dll庫導(dǎo)出的相應(yīng)函數(shù)
6.1.2 獲得與釋放網(wǎng)絡(luò)適配器列表的實例
6.1.3 獲取已安裝設(shè)備高級信息的實例
6.2 獲得網(wǎng)絡(luò)適配器列表的幕后
6.2.1 wpcap.dll庫中獲得網(wǎng)絡(luò)適配器列表的實現(xiàn)
6.2.2 Packet.dll庫中獲得網(wǎng)絡(luò)適配器列表的實現(xiàn)
6.2.3 內(nèi)核空間中獲得網(wǎng)絡(luò)適配器列表的實現(xiàn)
6.3 釋放網(wǎng)絡(luò)適配器列表的實現(xiàn)
6.4 小結(jié)
第7章 打開與關(guān)閉適配器
7.1 使用WinPcap打開與關(guān)閉適配器
7.1.1 wpcap.dll庫導(dǎo)出的相應(yīng)函數(shù)
7.1.2 關(guān)鍵數(shù)據(jù)結(jié)構(gòu)pcap_t
7.1.3 打開與關(guān)閉網(wǎng)絡(luò)適配器的實例
7.2 打開與關(guān)閉適配器的幕后
7.2.1 打開適配器的實現(xiàn)
7.2.2 關(guān)閉適配器的實現(xiàn)
7.3 小結(jié)
第8章 數(shù)據(jù)包的發(fā)送
8.1 使用WinPcap發(fā)送數(shù)據(jù)包
8.1.1 wpcap.dll庫導(dǎo)出的相應(yīng)函數(shù)
8.1.2 數(shù)據(jù)包發(fā)送實例
8.2 數(shù)據(jù)包發(fā)送的幕后
8.2.1 發(fā)送單個數(shù)據(jù)包的實現(xiàn)
8.2.2 單個數(shù)據(jù)包發(fā)送多次的實現(xiàn)
8.2.3 發(fā)送隊列方式的實現(xiàn)
8.3 小結(jié)
第9章 數(shù)據(jù)包的內(nèi)核過濾
9.1 基礎(chǔ)知識
9.1.1 flex和bison簡介
9.1.2 #line宏
9.1.3 以太網(wǎng)的典型幀結(jié)構(gòu)
9.1.4 數(shù)據(jù)包過濾的原理簡介
9.1.5 BPF虛擬機
9.1.6 Tcpdump與WinDump
9.1.7 BPF指令集實例
9.1.8 BPF過濾器的優(yōu)化研究
9.1.9 BPF系統(tǒng)架構(gòu)
9.2 WinPcap數(shù)據(jù)包過濾基礎(chǔ)
9.2.1 數(shù)據(jù)包過濾過程
9.2.2 過濾表達(dá)式
9.2.3 編譯過濾表達(dá)式生成過濾器的字節(jié)碼
9.2.4 把過濾器字節(jié)碼傳遞給內(nèi)核
9.3 使用WinPcap過濾數(shù)據(jù)包
9.3.1 wpcap.dll庫導(dǎo)出的相應(yīng)函數(shù)
9.3.2 使用過濾器的實例
9.4 數(shù)據(jù)包過濾的幕后
9.4.1 wpcap.dll庫中相應(yīng)函數(shù)的實現(xiàn)
9.4.2 Packet.dll庫對應(yīng)的函數(shù)
9.4.3 驅(qū)動程序中對應(yīng)的函數(shù)
9.4.4 NPF_tap函數(shù)的數(shù)據(jù)包過濾部分
9.5 小結(jié)
第10章 數(shù)據(jù)包的接收
10.1 使用WinPcap接收數(shù)據(jù)包
10.1.1 wpcap.dll庫導(dǎo)出的相應(yīng)函數(shù)
10.1.2 數(shù)據(jù)包接收的實例
10.2 數(shù)據(jù)接收的幕后
10.2.1 wpcap.dll庫中相應(yīng)函數(shù)的實現(xiàn)
10.2.2 Packet.dll庫中相應(yīng)函數(shù)的實現(xiàn)
10.2.3 內(nèi)核空間部分的實現(xiàn)
10.3 小結(jié)
第11章 統(tǒng)計網(wǎng)絡(luò)流量與網(wǎng)絡(luò)狀態(tài)
11.1 使用WinPcap進行網(wǎng)絡(luò)統(tǒng)計的方法
11.1.1 wpcap.dll庫導(dǎo)出的相應(yīng)函數(shù)
11.1.2 統(tǒng)計實例
11.2 網(wǎng)絡(luò)統(tǒng)計的幕后
11.2.1 工作模式
11.2.2 模式設(shè)置函數(shù)
11.2.3 網(wǎng)絡(luò)流量統(tǒng)計的實現(xiàn)
11.2.4 網(wǎng)絡(luò)狀態(tài)統(tǒng)計的實現(xiàn)
11.3 小結(jié)
第12章 文件的存儲與讀取
12.1 libpcap文件存儲格式
12.1.1 轉(zhuǎn)儲文件的頭信息
12.1.2 每個數(shù)據(jù)包的頭信息
12.2 使用WinPcap進行文件存儲與讀取
12.2.1 wpcap.dll導(dǎo)出的相應(yīng)函數(shù)
12.2.2 文件存儲與讀取的實例
12.3 數(shù)據(jù)包文件存儲的幕后
12.3.1 pcap_dump_open函數(shù)
12.3.2 pcap_dump函數(shù)
12.3.3 pcap_dump_flush函數(shù)
12.3.4 pcap_dump_close函數(shù)
12.4 數(shù)據(jù)包文件讀取的幕后
12.5 內(nèi)核文件轉(zhuǎn)儲的實現(xiàn)
12.5.1 wpcap.dll庫中相應(yīng)函數(shù)的實現(xiàn)
12.5.2 Packet.dll庫中相應(yīng)函數(shù)的實現(xiàn)
12.5.3 驅(qū)動程序中對應(yīng)的函數(shù)
12.6 小結(jié)
第13章 修改源代碼
13.1 給wpcap.dll增加設(shè)置重復(fù)發(fā)送次數(shù)的函數(shù)
13.1.1 修改步驟
13.1.2 測試結(jié)果
13.2 修改WinPcap的內(nèi)核驅(qū)動代碼
13.2.1 支持內(nèi)核轉(zhuǎn)儲功能
13.2.2 測試內(nèi)核統(tǒng)計與轉(zhuǎn)儲模式
13.2.3 支持大量數(shù)據(jù)包的轉(zhuǎn)儲
13.2.4 內(nèi)核驅(qū)動程序修改后的源文件
13.3 小結(jié)
第14章 性能測試與分析
14.1 測試環(huán)境
14.2 測試實例
14.2.1 不同發(fā)送方式的比較
14.2.2 發(fā)送不同數(shù)據(jù)包長度的比較
14.2.3 不同接收方式的比較
14.3 小結(jié)
附錄A 源語法規(guī)范
附錄B 過濾表達(dá)式規(guī)范
附錄C SYN洪泛攻擊的詳細(xì)資料
附錄D ARP欺騙資料
參考文獻
章節(jié)摘錄
版權(quán)頁: 插圖: 無連接。該方式不保證發(fā)送的信息一定可以收到。 面向連接。該方式提供了四種服務(wù):連接的建立、確認(rèn)和數(shù)據(jù)到達(dá)響應(yīng)、差錯恢復(fù) (通過請求重發(fā)接收到的錯誤數(shù)據(jù)實現(xiàn))、滑動窗口(系數(shù):128)?;瑒哟翱谟脕硖岣邤?shù)據(jù)傳速率。 無連接應(yīng)答響應(yīng)服務(wù)。 在面向連接的通信方式中,每一個LLC幀發(fā)送的內(nèi)容都會被確認(rèn)。LLC子層在接收LLC幀(又稱協(xié)議數(shù)據(jù)單元,PDU)結(jié)束時需要檢測在傳輸時是否有幀丟失了,如果丟失,則會給發(fā)送端發(fā)送一個請求,請求重新開始傳輸,此次傳輸將從沒有到達(dá)的PDU開始。 LLC子層位于MAC子層的上面,它在上層與MAC子層的協(xié)議(如以太網(wǎng)、令牌環(huán)網(wǎng)等)之間扮演著一個聯(lián)絡(luò)人的角色。 3.網(wǎng)絡(luò)層 接下來的一層為網(wǎng)絡(luò)層,在這一層數(shù)據(jù)包會被順序化,同時會被賦予邏輯地址。邏輯地址是通過軟件賦予的地址,不是永久性的。TCP/IP協(xié)議在互聯(lián)網(wǎng)上使用的IP地址就是邏輯地址。 網(wǎng)絡(luò)層也負(fù)責(zé)在點或結(jié)點之間創(chuàng)建一個虛擬鏈路(這里指的一個邏輯連接,而不是一個物理連接)。其中結(jié)點是具有MAC地址的設(shè)備,包含計算機、打印機或路由器等。 這一層也負(fù)責(zé)路由與推進數(shù)據(jù)包。路由是指從一個網(wǎng)絡(luò)或子網(wǎng)推進數(shù)據(jù)包到另一個網(wǎng)絡(luò)或子網(wǎng)。如果沒有路由器,計算機只能與同一網(wǎng)段中的計算機通信。對于互聯(lián)網(wǎng)來說,路由是一個關(guān)鍵,同時也是網(wǎng)絡(luò)層最重要的任務(wù)。 網(wǎng)絡(luò)層還提供流量控制與差錯控制功能。在該層操作的設(shè)備是路由器與三層交換機。從這一層開始,實現(xiàn)OSI模型的基本方法將與軟件密切關(guān)聯(lián),而不再是硬件。 4.傳輸層 OSI模型的第四層為傳輸層,這一層負(fù)責(zé)從一個結(jié)點傳輸數(shù)據(jù)到另一個結(jié)點上。它在結(jié)點間提供透明的數(shù)據(jù)傳輸,并管理端到端的流量控制、錯誤檢測與錯誤恢復(fù)。 首先,傳輸層協(xié)議在不同計算機的特定端口之間發(fā)起聯(lián)系,并設(shè)置虛擬的鏈路。每臺主機的傳輸協(xié)議確認(rèn)應(yīng)用程序發(fā)送的數(shù)據(jù)是否是被授權(quán)訪問的,并且兩個端點是否都準(zhǔn)備好開始數(shù)據(jù)傳輸了。當(dāng)該同步完成時,數(shù)據(jù)將被發(fā)送。在數(shù)據(jù)傳送的過程中,每臺主機上的傳輸協(xié)議會監(jiān)控數(shù)據(jù)流并監(jiān)視傳輸錯誤。如果傳輸檢測到錯誤,傳輸協(xié)議將提供錯誤恢復(fù)。 對網(wǎng)絡(luò)通信而言,傳輸層所提供的功能非常重要。前面提到數(shù)據(jù)鏈路層提供了底層可靠性與面向連接或非連接的通信,傳輸層做了同樣的工作,只不過是在更高的層次上。 面向連接的傳輸控制協(xié)議(TCP)與面向非連接的用戶數(shù)據(jù)包協(xié)議(UDP)是傳輸層常見的兩種協(xié)議。 傳輸層也管理端口的邏輯地址,比如,決定所接收的數(shù)據(jù)屬于哪個應(yīng)用程序,一臺計算機上可能會同時運行幾個網(wǎng)絡(luò)應(yīng)用程序。 傳輸層還會處理域名解析,如使用域名系統(tǒng)(Domain Name System,DNS)就是處理該問題的一種方法。
編輯推薦
《網(wǎng)絡(luò)分析技術(shù)揭秘:原理、實踐與WinPcap深入解析》深入地、全面地敘述了網(wǎng)絡(luò)分析的核心技術(shù),并以大量示例演示了相關(guān)概念,其中包括進行網(wǎng)絡(luò)分析必要的各種軟硬件基礎(chǔ)知識,網(wǎng)絡(luò)數(shù)據(jù)包的捕獲、發(fā)送、分析、文件轉(zhuǎn)儲等方面的內(nèi)容。因此《網(wǎng)絡(luò)分析技術(shù)揭秘:原理、實踐與WinPcap深入解析》適合各層次的網(wǎng)絡(luò)分析人員使用,例如網(wǎng)絡(luò)軟件開發(fā)人員與網(wǎng)絡(luò)軟件測試人員從中可獲得許多網(wǎng)絡(luò)分析與軟件設(shè)計的知識;網(wǎng)絡(luò)安全工程師可以從中獲得網(wǎng)絡(luò)攻擊者所使用技術(shù)的一些細(xì)節(jié)知識。
名人推薦
本書通過對WinPcap架構(gòu)、使用與實現(xiàn)機制的深入分析,來讓我們快速熟悉操作系統(tǒng)內(nèi)核與用戶層交互的實現(xiàn)機制,掌握網(wǎng)絡(luò)分析技術(shù)的核心!而且文中還加入了很多實例,避免了大段的理論闡述,這讓我們理解起來會相對容易一些。我們還可通過查看書中提供的每行代碼的運行結(jié)果,來驗證自己的想法。所以對于希望學(xué)習(xí)網(wǎng)絡(luò)分析技術(shù)的人員來說這是一本不可多得的參考書籍。 ——任曉琿 黑客反病毒組織創(chuàng)始人 本書作者從事軟件開發(fā)工作多年,本書的寫作也花費了作者幾年的時間,可謂是嘔心瀝血之作。作者在寫作之初,曾希望能把網(wǎng)絡(luò)分析的核心技術(shù)用淺顯易懂的方式展現(xiàn)出來,以幫助讀者掌握這門技術(shù),并可以把它運用于實際工作中,真真正正地“學(xué)以致用”,我覺得,他做到了。而且他還通過直接修改內(nèi)核級源代碼的方式解決了開源代碼本身尚未完成的一個重要功能——數(shù)據(jù)包的內(nèi)核轉(zhuǎn)儲。 ——51CTO隨著計算機網(wǎng)絡(luò)的迅速發(fā)展,網(wǎng)絡(luò)安全、網(wǎng)絡(luò)性能、網(wǎng)絡(luò)軟件質(zhì)量等相關(guān)問題也隨之凸現(xiàn)。這些問題受到人們越來越多的關(guān)注,并逐漸成為網(wǎng)絡(luò)應(yīng)用所面臨的障壁。正是在這種局勢下,網(wǎng)絡(luò)分析逐漸成為一門獨立的、專業(yè)的學(xué)科,在網(wǎng)絡(luò)軟件開發(fā)、調(diào)試、測試與維護中得以廣泛使用。因為網(wǎng)絡(luò)分析涉及諸多技術(shù),所以為了有效使用這些技術(shù)并更好地理解這些技術(shù)原理,就要對相關(guān)人員提出很高的要求。 在本書中,作者對網(wǎng)絡(luò)分析的核心技術(shù)進行了深入的剖析。其結(jié)合常用的網(wǎng)絡(luò)分析開源庫WinPcap詳細(xì)演示了網(wǎng)絡(luò)分析技術(shù)的使用。給希望使用WinPcap、熟悉WinPcap高級特性、甚至自行開發(fā)與修改WinPcap源代碼的人員提供了全面的、詳細(xì)的參考信息。與此同時,作者還把網(wǎng)絡(luò)分析各技術(shù)的實現(xiàn)原理分析得十分透徹,使讀者除了學(xué)習(xí)到如何使用網(wǎng)絡(luò)分析技術(shù)外,還可理解網(wǎng)絡(luò)分析工具的設(shè)計架構(gòu)。這是很重要的,尤其是對于網(wǎng)絡(luò)高級測試人員與開發(fā)人員來說,這些都是必備的知識。 目前市面上少有關(guān)于網(wǎng)絡(luò)分析的書籍,更沒有一本詳細(xì)分析網(wǎng)絡(luò)分析各技術(shù)底層實現(xiàn)機制的書籍,所以本書頗具出版價值。 ——熊有倫 中國科學(xué)院院士
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載
網(wǎng)絡(luò)分析技術(shù)揭秘 PDF格式下載