日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

网络抓包工具的开发和实现C++抓包嗅探器

發布時間:2023/12/29 c/c++ 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 网络抓包工具的开发和实现C++抓包嗅探器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

0、說在前面的話

1)?本文將以一個初學者的角度,一步一步幾乎是從0開始講述如何完成一個基于winpcap+MFC的sniffer(嗅探器)當然我指的“0”并不是指連編程都不會,如果C/C++不知為何物那么還是別看這篇文章了,本文只有那么幾點小小要求:

???????? a.懂基本的編程語法,只會java的沒關系,語言這東西語法差別不大,看著看著就懂了

?????????b.懂一點點網絡知識,起碼知道OSI七層網絡模型或者TCP/IP四層(也有說五層的)網絡模型

?????????c.?想學怎么做一個sniffer,而不是想來這里down代碼,這種代碼CSDN下載里多得是,不用來這里了

2)?本文里的程序不是最優秀的,不是最牛的,甚至不知道能不能算作優秀,所以牛人可以略過此文,此文是給那些想開發但又不會開發,懂那么一點點又其實不太懂的人看的(寫這個程序之前,我在MFC方面也算是這一類人:)

3)??本文不討論專業、學術內容,什么架構之類的都不在討論范圍之類,一切以實用為主,一切以開發出一個sniffer為核心

4)?本文主要內容:

? ? ??? ? ? a.工欲善其事,必先配環境——配置winpcap開發環境

????? b.掀起你的蓋頭來,讓我來畫你的臉——用MFC開發GUI

?? ?c.安得廣廈千萬間,先畫藍圖再砌磚——搭建wipcap抓包框架

????? d.要想從此過,留下協議頭——各層網絡協議頭的實現

????? e.莫道無人能識君,其實我懂你的心——解析數據包

????? f.千呼萬喚始出來,不抱琵琶也露面——將解析數據寫到GUI?

5)來看看我們要做的最終成果:?

?? 功能:

??????列出監測主機的所有網卡,選擇一個網卡,在混雜模式下進行監聽。

????? 捕獲所有流經網卡的數據包,并利用WinPcap函數庫設置過濾規則。

????? 可以本地文件形式保存和讀取已捕獲的數據包信息。

????? 分析捕獲到的數據包的包頭和數據,按照各種協議的格式進行格式化顯示。

????? 支持協議包括:IPv4IPv6、ARP、ICMP、TCP、UDP、HTTP。??

??界面:

???一、工欲善其事,必先配環境——配置winpcap開發環境

????????1.0、背景

????????WinPcap(Windows Packet Capture)是Windows平臺下的鏈路層網絡訪問工具,其目的在于為Windows應用程序提供訪問網絡底層的能力。需要注意的是WinPcap只能把數據包從網絡中抓過來(其實是復制過來,并沒有真實的抓過來,感覺像是拍了張照),并不能修改數據。

????????“那么在哪里可以買得到呢?”,其實不用買,要得到很容易,更何況咱中國人沒有為軟件付費的習慣:),參看下一節,“不可或缺的東西”:

????????1.1、不可或缺的東西

WinPcap V4.1.2:驅動程序、Dll文件

http://www.winpcap.org/install/bin/WinPcap_4_1_2.exe

WinPcap V4.1.2 Developer’s Pack:庫文件、頭文件、簡單的示例程序代碼和幫助文件

????????http://www.winpcap.org/install/bin/WpdPack_4_1_2.zip

當然還有VisualStudio2008或者VC++6.0,本文用的是VS2008

????????(這玩意的下載網址就不用我介紹了吧)

1.2、配置過程

l?添加頭文件目錄

VS2008:

????????工具->屬性->項目和解決方案-> VC++目錄->包含文件->添加WinPcap開發包中的Include目錄,如下圖:

????????

VC6:

???????? Tools->Options->Derectories->Include files->添加WinPcap開發包中的Include目錄,如下圖:

?

l?添加庫文件目錄

VS2008:

與上一個步驟一樣,只有一小個變化,選擇“庫文件”,然后添加WinPcap開發包中的Lib目錄,如下圖:

?

VC6:

?????? Tools->Options->Derectories->Library files->添加WinPcap開發包中的Lib目錄,如下圖:

???????

l?增加與WinPcap有關的預處理定義

VS2008:

????????項目->項目屬性->配置屬性->預處理定義->添加WPCAP和HAVE_REMOTE,如下圖:

?

??????????????????VC6:

?????? Project->Setting->C/C++->Preprocessor->添加WPCAP和HAVE_REMOTE,如下圖:

?

l?添加wpcap.lib庫文件

??????????????????????????? VS2008

??? 項目->項目屬性->配置屬性->連接器->命令行->附加選項框中加入wpcap.lib,如下圖:?

??

VC6:

????????????????????????Project->setting->link->加入wpcap.lib,如下圖:

?????????

l?添加pcap.h頭文件

在使用WinPcap API的所有源文件中添加#include "pcap.h”

1.3、???????運行測試代碼

所有配置工作全部搞定,現在來運行測試代碼,如果能順利執行,那么就配置成功了。

這里的測試代碼其實就是WinPcap中自帶的實例,還記得“不可或缺的文件”中下載的兩個文件沒?從WpdPack_4_1_2.zip解壓出來的文件中有Examples-pcap和Examples-remote兩個文件夾,進入Examples-pcap中可以看到,里面有很多實例,任意打開一個文件夾,打開其中的.dsw文件,執行一下就知道了。

筆者這里選擇的是UDPdump這個實例,執行成功的畫面如下:?

?

?第一章至此結束,欲知后事如何,請看下一章“起你的蓋頭來,讓我來畫你的臉——用MFC開發GUI”分解!


為了方便學習,完整的代碼下載在這里:http://download.csdn.net/download/litingli/4110529

?來源:http://blog.csdn.net/litingli/article/details/5950962

來源: http://blog.csdn.net/litingli/article/details/5950962

總結

以上是生活随笔為你收集整理的网络抓包工具的开发和实现C++抓包嗅探器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。