WinPcap和Libnet開發包介紹

        WinPcap是Windows平臺下一個專業網絡數據包捕獲開發包,是爲Libpcap在Windows平臺下實現數據包的捕獲而設計的。在設計WinPcap時參照了Libpcap,使用方法與LibPcap相似。使用WinPcap開發包,可以把在Linux下基於Libpcap的程序很容易地移植到Windows平臺下。WinPcap是在BSD許可證下發布地,它主要由加利福尼亞地Lawrence Berkeley Laboratory開發。WinPcap地下載網址爲:http://winpcap.polito.it/ 。目前有不少軟件都使用了WinPcap開發包,其中最爲著名的是Ethereal。它是一個免費的網絡協議分析軟件,其對數據包解析的細緻程度甚至高於業界著名的Sniffer和WildPackets;
WinPcap有三個模塊構成:
第一個模塊NPF(Netgroup Packet Filter),是一個虛擬設備驅動程序文件。它的功能是過濾數據包,並把這些數據包原封不動地傳給用戶態模塊,這個過程中包括了一些操作系統特有的代碼。
第二個模塊packet.dll是一組用戶級的函數庫,爲win32平臺提供了一個公共的接口。不同版本的Windows系統都有自己的內核模塊和用戶層模塊。Packet.dll用於解決這些不同。調用Packet.dll的程序可以運行在不同版本的Windows平臺上,而無需重新編譯。
第三個模塊數據包高級驅動程序庫(wpcap.dll)與操作系統無關,它提供了更加高層、抽象的函數,含有諸如產生過濾器,用戶級緩衝等高級功能。

       Libnet是一個專業的網絡數據包構造和發送開發包,它是一個高層次的API函數庫,允許開發者構造和發送網絡數據包。Libnet提供了一個對底層網絡數據包進行構造、修改和發送的高級接口。它隱藏了很多底層細節,省去了很多麻煩,如多路技術、緩衝區管理、網絡數據包頭信息、字節流順序、操作系統兼容性,以及校驗和計算問題等。Libnet主要提供了在IP層和鏈路層構造網絡數據包的功能和一些非常有用的輔助功能。使用Libnet可以非常輕鬆、快捷地構造任何形式的網絡數據包,開發各種各樣的網絡安全應用程序,甚至非常複雜的程序。Libnet主要用C語言寫成,提供了低層網絡數據報的構造、處理和發送功能.他的主要特點是:

.高層接口:Libnet主要用C語言寫成

.數據報構造:Libnet提供了一系列的TCP/IP數據報文的構造函數以方便用戶使用。

.數據報的處理:Libnet提供了一系列的輔助函數,利用這些輔助函數,幫助用戶簡化那些煩瑣的事務性的編程工作

.數據報發送:Libnet允許用戶在兩種不同的數據報發送方法中選擇。

另外Libnet允許程序獲得對數據報的絕對的控制,其中一些是傳統的網絡程序接口所不提供的。

Libnet提供兩種將數據報發送到網絡的接口:原始套接字(raw socket)接口和鏈路層(Link Layer)接口。本文選取的是鏈路層接口進行設計的。

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