內容介紹
《網路分析技術揭秘:原理、實踐與WinPcap深入解析》結合著名的開源軟體庫WinPcap來說明網路分析技術的實現原理及使用方法。其中包括WinPcap核心驅動,編譯與使用,數據包的捕獲、傳送、核心過濾與接收,以及網路流量的統計與網路狀態的分析等重要內容,而且作者還通過修改核心級的原始碼解決了開原始碼本身尚未完成的一個重要功能——數據包的核心轉儲。經過系統深入的分析,讀者既能對WinPcap的架構、使用與實現機制有深入的理解,又能快速熟悉作業系統核心與用戶層互動的實現機制,並全面了解網路分析專業各方面的技術,進而將相關知識運用到實際項目中。作品目錄
前言第1章 揭開網路分析的神秘面紗
1.1 網路分析概述
1.2 網路分析的主要用途
1.3 黑客使用嗅探器的方法
1.4 被嗅探數據的真面目
1.4.1 使用嗅探器獲得FTP的用戶名和密碼
1.4.2 使用嗅探器分析衝擊波蠕蟲(Blaster Worm)
1.5 常見的網路分析器
1.6 網路分析器的工作原理
1.6.1 乙太網簡介
1.6.2 理解開放系統互連(OSI)模型
1.6.3 了解CSMACD協定
1.6.4 IP、ICMP、TCP與UDP協定
1.6.5 硬體
1.6.6 欺騙交換機
1.7 嗅探器的檢測
1.7.1 檢測嗅探器的原理
1.7.2 防止網路嗅探可採取的安全措施
1.8 網路分析工具的主要功能組成
1.9 Wireshark的概述、安裝與使用
1.9.1 Wireshark的概述
1.9.2 Wireshark的安裝
1.9.3 Wireshark的使用
1.1 0小結
第2章 初識網路分析基礎庫WinPcap
2.1 WinPcap概述
2.2 WinPcap的優點
2.3 WinPcap的使用者
2.4 WinPcap的體系架構
2.4.1 WinPcap的主要組成
2.4.2 數據包捕獲的基本過程
2.4.3 WinPcap的驅動程式
2.4.4 WinPcap核心驅動的主要功能
2.5 用戶空間庫接口函式
2.5.1 wpcap.dll庫中的重要函式
2.5.2 Packet.dll庫中的重要函式
2.6 小結
第3章 網路分析工具的核心驅動基礎知識
3.1 Windows驅動程式基礎知識
3.1.1 驅動對象(DRIVER_OBJECT)
3.1.2 設備對象(DEVICE_OBJECT)
3.1.3 設備擴展(_DEVICE_EXTENSION)
3.1.4 IRP與派遣函式
3.1.5 同步處理
3.1.6 核心的記憶體操作
3.1.7 記憶體操作的運行時函式
3.1.8 核心的註冊表操作
3.2 NDIS協定驅動程式
3.2.1 三種類型的網路驅動程式
3.2.2 協定驅動程式的特徵結構體
3.3 小結
第4章 編譯與使用WinPcap
4.1 原始碼目錄結構
4.2 構建驅動程式NPF
4.3 構建Packet.dll庫
4.4 構建wpcap.dll庫
4.5 安裝NPF驅動程式與各庫檔案
4.6 使用WinPcap庫進行程式開發的實例
4.7 小結
第5章 WinPcap驅動程式的初始化與清除
5.1 驅動程式中的初始化函式DriverEntry
5.1.1 DriverEntry函式的工作流程
5.1.2 DriverEntry函式的具體實現
5.2 驅動程式中的卸載函式DriverUnload
5.3 小結
第6章 獲得與釋放網路適配器設備列表
6.1 使用WinPcap選擇合適的適配器
6.1.1 wpcap.dll庫導出的相應函式
6.1.2 獲得與釋放網路適配器列表的實例
6.1.3 獲取已安裝設備高級信息的實例
6.2 獲得網路適配器列表的幕後
6.2.1 wpcap.dll庫中獲得網路適配器列表的實現
6.2.2 Packet.dll庫中獲得網路適配器列表的實現
6.2.3 核心空間中獲得網路適配器列表的實現
6.3 釋放網路適配器列表的實現
6.4 小結
第7章 打開與關閉適配器
7.1 使用WinPcap打開與關閉適配器
7.1.1 wpcap.dll庫導出的相應函式
7.1.2 關鍵數據結構pcap_t
7.1.3 打開與關閉網路適配器的實例
7.2 打開與關閉適配器的幕後
7.2.1 打開適配器的實現
7.2.2 關閉適配器的實現
7.3 小結
第8章 數據包的傳送
8.1 使用WinPcap傳送數據包
8.1.1 wpcap.dll庫導出的相應函式
8.1.2 數據包傳送實例
8.2 數據包傳送的幕後
8.2.1 傳送單個數據包的實現
8.2.2 單個數據包傳送多次的實現
8.2.3 傳送佇列方式的實現
8.3 小結
第9章 數據包的核心過濾
9.1 基礎知識
9.1.1 flex和bison簡介
9.1.2 #line宏
9.1.3 乙太網的典型幀結構
9.1.4 數據包過濾的原理簡介
9.1.5 BPF虛擬機
9.1.6 Tcpdump與WinDump
9.1.7 BPF指令集實例
9.1.8 BPF過濾器的最佳化研究
9.1.9 BPF系統架構
9.2 WinPcap數據包過濾基礎
9.2.1 數據包過濾過程
9.2.2 過濾表達式
9.2.3 編譯過濾表達式生成過濾器的位元組碼
9.2.4 把過濾器位元組碼傳遞給核心
9.3 使用WinPcap過濾數據包
9.3.1 wpcap.dll庫導出的相應函式
9.3.2 使用過濾器的實例
9.4 數據包過濾的幕後
9.4.1 wpcap.dll庫中相應函式的實現
9.4.2 Packet.dll庫對應的函式
9.4.3 驅動程式中對應的函式
9.4.4 NPF_tap函式的數據包過濾部分
9.5 小結
第10章 數據包的接收
10.1 使用WinPcap接收數據包
10.1.1 wpcap.dll庫導出的相應函式
10.1.2 數據包接收的實例
10.2 數據接收的幕後
10.2.1 wpcap.dll庫中相應函式的實現
10.2.2 Packet.dll庫中相應函式的實現
10.2.3 核心空間部分的實現
10.3 小結
第11章 統計網路流量與網路狀態
11.1 使用WinPcap進行網路統計的方法
11.1.1 wpcap.dll庫導出的相應函式
11.1.2 統計實例
11.2 網路統計的幕後
11.2.1 工作模式
11.2.2 模式設定函式
11.2.3 網路流量統計的實現
11.2.4 網路狀態統計的實現
11.3 小結
第12章 檔案的存儲與讀取
12.1 libpcap檔案存儲格式
12.1.1 轉儲檔案的頭信息
12.1.2 每個數據包的頭信息
12.2 使用WinPcap進行檔案存儲與讀取
12.2.1 wpcap.dll導出的相應函式
12.2.2 檔案存儲與讀取的實例
12.3 數據包檔案存儲的幕後
12.3.1 pcap_dump_open函式
12.3.2 pcap_dump函式
12.3.3 pcap_dump_flush函式
12.3.4 pcap_dump_close函式
12.4 數據包檔案讀取的幕後
12.5 核心檔案轉儲的實現
12.5.1 wpcap.dll庫中相應函式的實現
12.5.2 Packet.dll庫中相應函式的實現
12.5.3 驅動程式中對應的函式
12.6 小結
第13章 修改原始碼
13.1 給wpcap.dll增加設定重複傳送次數的函式
13.1.1 修改步驟
13.1.2 測試結果
13.2 修改WinPcap的核心驅動代碼
13.2.1 支持核心轉儲功能
13.2.2 測試核心統計與轉儲模式
13.2.3 支持大量數據包的轉儲
13.2.4 核心驅動程式修改後的源檔案
13.3 小結
第14章 性能測試與分析
14.1 測試環境
14.2 測試實例
14.2.1 不同傳送方式的比較
14.2.2 傳送不同數據包長度的比較
14.2.3 不同接收方式的比較
14.3 小結
附錄A 源語法規範
附錄B 過濾表達式規範
附錄C SYN洪泛攻擊的詳細資訊
附錄D ARP欺騙資料
參考文獻