百科解釋
winpcap(windows packet capture)是windows平臺下一個免費,公共的網(wǎng)絡訪問系統(tǒng)。
開發(fā)winpcap這個項目的目的在于為win32應用程序提供訪問網(wǎng)絡底層的能力。它提供了以下的各項功能:
1> 捕獲原始數(shù)據(jù)報,包括在共享網(wǎng)絡上各主機發(fā)送/接收的以及相互之間交換的數(shù)據(jù)報;
2> 在數(shù)據(jù)報發(fā)往應用程序之前,按照自定義的規(guī)則將某些特殊的數(shù)據(jù)報過濾掉;
3> 在網(wǎng)絡上發(fā)送原始的數(shù)據(jù)報;
4> 收集網(wǎng)絡通信過程中的統(tǒng)計信息。
winpcap的主要功能在于獨立于主機協(xié)議(如TCP/IP)而發(fā)送和接收原始數(shù)據(jù)報。也就是說,winpcap不能阻塞,過濾或控制其他應用程序數(shù)據(jù)報的發(fā)收,它僅僅只是監(jiān)聽共享網(wǎng)絡上傳送的數(shù)據(jù)報。因此,它不能用于QoS調度程序或個人防火墻。目前,winpcap開發(fā)的主要對象是windows NT/2000/XP,這主要是因為在使用winpcap的用戶中只有一小部分是僅使用windows 95/98/Me,并且微軟也已經(jīng)放棄了對win9x的開發(fā)。因此本文相關的程序T-ARP也是面向NT/2000/XP用戶的。其實winpcap中的面向9x系統(tǒng)的概念和NT系統(tǒng)的非常相似,只是在某些實現(xiàn)上有點差異,比如說9x只支持ANSI編碼,而NT系統(tǒng)則提倡使用Unicode編碼。有個軟件叫sniffer pro.可以作網(wǎng)管軟件用,有很多功能,可監(jiān)視網(wǎng)絡運行情況,每臺網(wǎng)內機器的數(shù)據(jù)流量,實時反映每臺機器所訪問IP以及它們之間的數(shù)據(jù)流通情況,可以抓包,可對過濾器進行設置,以便只抓取想要的包,比如POP3包,smtp包,ftp包等,并可從中找到郵箱用戶名和密碼,還有ftp用戶名和密碼.它還可以在使用交換機的網(wǎng)絡上監(jiān)聽,不過要在交換機上裝它的一個軟件.還有一個簡單的監(jiān)聽軟件叫 Passwordsniffer,可截獲郵箱用戶名和密碼,還有ftp用戶名和密碼,它只能用在用HUB網(wǎng)絡上著名軟件tcpdump及ids snort都是基于libpcap編寫的,此外Nmap掃描器也是基于libpcap來捕獲目標主機返回的數(shù)據(jù)包的。
WinPcap是用于網(wǎng)絡封包抓取的一套工具,可適用于32位的操作平臺上解析網(wǎng)絡封包,包含了核心的封包過濾,一個底層動態(tài)鏈接庫,和一個高層系統(tǒng)函數(shù)庫,及可用來直接存取封包的應用程序界面。
Winpcap是一個免費公開的軟件系統(tǒng)。它用于windows系統(tǒng)下的直接的網(wǎng)絡編程。
大多數(shù)網(wǎng)絡應用程序訪問網(wǎng)絡是通過廣泛使用的套接字。這種方法很容易實現(xiàn)網(wǎng)絡數(shù)據(jù)傳輸,因為操作系統(tǒng)負責底層的細節(jié)(比如協(xié)議棧,數(shù)據(jù)流組裝等)以及提供了類似于文件讀寫的函數(shù)接口。
但是有時,簡單的方法是不夠的。因為一些應用程序需要一個底層環(huán)境去直接操縱網(wǎng)絡通信。因此需要一個不需要協(xié)議棧支持的原始的訪問網(wǎng)絡的方法。
winpcap適用于下面的開發(fā)者:
1、捕獲原始數(shù)據(jù)包。不管這個包是發(fā)往本地機,還是其他機器之間的交換包。
2、在數(shù)據(jù)包被發(fā)送到應用程序之前,通過用戶定義的規(guī)則過濾。
3、向網(wǎng)絡發(fā)送原始數(shù)據(jù)包。
4、對網(wǎng)絡通信量做出統(tǒng)計。
這些功能依賴于Win32系統(tǒng)內核中的設備驅動以及一些動態(tài)鏈接庫。
Winpcap提供了一個強大的編程接口,它很容易地在各個操作系統(tǒng)之間進行移植,也很方便程序員進行開發(fā)。
什么樣的程序需要使用Winpcap
很多不同的工具軟件使用Winpcap于網(wǎng)絡分析,故障排除,網(wǎng)絡安全監(jiān)控等方面。Winpcap特別適用于下面這幾個經(jīng)典領域:
1、網(wǎng)絡及協(xié)議分析
2、網(wǎng)絡監(jiān)控
3、通信日志記錄
4、traffic generators
5、用戶級別的橋路和路由
6、網(wǎng)絡入侵檢測系統(tǒng)(NIDS)
7、網(wǎng)絡掃描
8、安全工具
Winpcap有些方面不能做。它不依靠主機的諸如TCP/IP協(xié)議去收發(fā)數(shù)據(jù)包。這意味著它不能阻塞,不能處理同一臺主機中各程序之間的通信數(shù)據(jù)。它只能“嗅探”到物理線路上的數(shù)據(jù)報。因此它不適用于traffic shapers,QoS調度,以及個人防火墻。
Winpcap內部結構
Winpcap是一個Win32平臺下用于抓包和分析的系統(tǒng)。包括一個內核級別的packet filter,一個底層的DLL(packet.dll)和一個高級的獨立于系統(tǒng)的DLL(Wpcap.dll)
1、捕獲系統(tǒng)要能得到網(wǎng)絡上原始傳輸數(shù)據(jù)必須繞過協(xié)議棧。這就需要一個?爝\行于操作系統(tǒng)內核,與網(wǎng)絡設備驅動接口直接打交道。這一部分極端依賴系統(tǒng),也被認為是一種設備驅動。現(xiàn)有版本有Windows 85,98,ME,NT 4,2000,Xp。這些驅動提供一些如數(shù)據(jù)包的捕獲與發(fā)送這些基本功能,還提供一些高級的可編程的過濾系統(tǒng)和監(jiān)控引擎。過濾系統(tǒng)可以約束只捕獲特定的數(shù)據(jù)包(比如,只捕獲特定主機發(fā)送的FTP報文)。監(jiān)控引擎提供了一種強大但簡單的使用機制去獲得網(wǎng)絡通信的統(tǒng)計荷載數(shù)據(jù)。
2、捕獲系統(tǒng)要讓用戶程序使用內核提供的功能必須要有一個編程接口。Winpcap提供了兩個不同的庫:packet.dll 和wpcap.dll。
packet.dll提供一個底層的API,通過這個API可直接訪問網(wǎng)絡設備驅動,而獨立于Microsoft OS.
wpcap.dll是一個高層的強大捕獲程序庫,與Unix下的libpcap兼容。它獨立于下層的網(wǎng)絡硬件和操作系統(tǒng)。