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