網絡封包抓取工具 Winpcap

WinPcap是用於網絡封包抓取的一套工具,可適用於32位的操作平臺上解析網絡封包,包含了核心的封包過濾,一個底層動態鏈接庫,和一個高層系統函數庫,及可用來直接存取封包的應用程序界面。
Winpcap是一個免費公開的軟件系統。它用於windows系統下的直接的網絡編程。
大多數網絡應用程序訪問網絡是通過廣泛使用的套接字。這種方法很容易實現網絡數據傳輸,因爲操作系統負責底層的細節(比如協議棧,數據流組裝等)以及提供了類似於文件讀寫的函數接口。
但是有時,簡單的方法是不夠的。因爲一些應用程序需要一個底層環境去直接操縱網絡通信。因此需要一個不需要協議棧支持的原始的訪問網絡的方法。
winpcap適用於下面的開發者:
1、捕獲原始數據包。不管這個包是發往本地機,還是其他機器之間的交換包。
2、在數據包被髮送到應用程序之前,通過用戶定義的規則過濾。
3、向網絡發送原始數據包。
4、對網絡通信量做出統計。
這些功能依賴於Win32系統內核中的設備驅動以及一些動態鏈接庫。
Winpcap提供了一個強大的編程接口,它很容易地在各個操作系統之間進行移植,也很方便程序員進行開發。
什麼樣的程序需要使用Winpcap
很多不同的工具軟件使用Winpcap於網絡分析,故障排除,網絡安全監控等方面。Winpcap特別適用於下面這幾個經典領域:
1、網絡及協議分析
2、網絡監控
3、通信日誌記錄
4、traffic generators
5、用戶級別的橋路和路由
6、網絡入侵檢測系統(NIDS)
7、網絡掃描
8、安全工具
Winpcap有些方面不能做。它不依靠主機的諸如TCP/IP協議去收發數據包。這意味着它不能阻塞,不能處理同一臺主機中各程序之間的通信數據。它只能“嗅探”到物理線路上的數據報。因此它不適用於traffic shapers,QoS調度,以及個人防火牆。
Winpcap內部結構
Winpcap是一個Win32平臺下用於抓包和分析的系統。包括一個內核級別的packet filter,一個底層的DLL(packet.dll)和一個高級的獨立於系統的DLL(Wpcap.dll)

1、 捕獲系統要能得到網絡上原始傳輸數據必須繞過協議棧。這就需要一個模快運行於操作系統內核,與網絡設備驅動接口直接打交道。這一部分極端依賴系統,也被認 爲是一種設備驅動。現有版本有Windows 85,98,ME,NT 4,2000,Xp。這些驅動提供一些如數據包的捕獲與發送這些基本功能,還提供一些高級的可編程的過濾系統和監控引擎。過濾系統可以約束只捕獲特定的數 據包(比如,只捕獲特定主機發送的FTP報文)。監控引擎提供了一種強大但簡單的使用機制去獲得網絡通信的統計荷載數據。
2、捕獲系統要讓用戶程序使用內核提供的功能必須要有一個編程接口。Winpcap提供了兩個不同的庫:packet.dll 和wpcap.dll。
packet.dll提供一個底層的API,通過這個API可直接訪問網絡設備驅動,而獨立於Microsoft OS.
wpcap.dll是一個高層的強大捕獲程序庫,與Unix下的libpcap兼容。它獨立於下層的網絡硬件和操作系統。

在線文檔:http://www.osctools.net/apidocs/apidoc?api=winpcap

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章