初窥wireshark fiddler等抓包工具及部分实现分析
生活随笔
收集整理的這篇文章主要介紹了
初窥wireshark fiddler等抓包工具及部分实现分析
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
做過網絡方面開發的同學都知道,一個適用的抓包工具對工作問題的分析是很有用的。前段時間我也在折騰網絡方面的相關開發,所以又重新使用了一下網絡抓包工具。接下來就介紹一下現在用的比較多的幾個網絡抓包工具。
基本介紹: ?????1、wireshark: wireshark的前身是Ethereal,2006年因為其創始人Gerald Combs的跳槽而改名為wireshark。它是一個跨平臺的軟件,可以在unix系列、linux、mac os、windows等多個平臺上面進行網絡協議抓包工作。同時他也是一個開源軟件,有興趣的話可以下載源碼深入了解。我們可以通過wireshark官網進一步了解相關知識及下載該軟件。 2、fiddler fiddler的定位是網頁調試工具,能記錄所有客戶端和服務器的http和https請求,允許你監視,設置斷點,甚至修改輸入輸出數據。我們還可以為fiddler安裝自己所需的插件,從而更好的利用fiddler的強大功能。詳細介紹信息可以通過fiddler官網進一步了解, 3、IEInspector HTTP Analyzer IEInspector HTTP Analyzer同樣能夠提供監控、跟蹤、調試和分析http/https的功能。HTTP Analyzer的很多特色功能在這里有比較詳細的介紹,如果你有這方面的需求,可以從進一步了解。不過,這是一個付費軟件,你可以先使用一段時間,試用版下載地址。 4、sniffer 還是大學的時候用過這個這個抓包工具,那個時候還是覺得這個工具挺神奇的,后來用的就用的少了。前段時間想重新裝一次試試,發現其安裝過程太繁瑣了,并且安裝后沒法偵聽到網卡,估計是因為自己下載的版本太低的緣故。反正現在也只是抱著再玩玩這個工具的心態去裝的,用不了所以就放棄卸載了。深入了解: 對于上述的四種抓包工具,個人是比較推薦wireshark和fiddler的,這兩個工具在功能上基本可以互補,能完成你的抓包常用需求,是網絡開發的利器。下面我也會重點介紹這兩個工具,并會簡要分析這兩個工具的異同點,同時也會嘗試著去了解這兩個工具的部分實現方式。 至于這兩個工具的使用方式就不做過多介紹了,網上這方面的教程比較全,下面的提到的幾篇文章應該已經能夠基本滿足需求,講的也足夠詳細,我也是通過看這些文章來開始熟悉使用的。 wireshark使用教程: 1、Wireshark抓包工具使用教程以及常用抓包規則 2、wireshark的使用教程 上面的簡單介紹里面已經講到了wireshark開源和跨平臺的特點,接下來介紹一下wireshark的其他幾個重要的特點。 wireshark的界面開發用的是GTK+ widget toolkit,當然如果你不喜歡界面, TShark也還是能滿足你的需求。 wireshark使用pcap network library來進行封包捕捉。Lipcap(Linux)或者Winpcap(Windows)。windows平臺下,在安裝wireshark的時候你就會發現會提示你安裝winpcap,當然,如果你已經安裝過了就沒有這個提示了。 ?????WinPcap(Windows Packet Capture)是Windows平臺下的鏈路層網絡訪問工具,其目的在于為Windows應用程序提供訪問網絡底層的能力。
? ? ?WinPcap功能:
??????????獲得網卡設備列表及其高級信息
??????????打開一個網卡適配器并將其設置成混雜模式 捕獲數據包
??????????設置過濾器
??????????將數據包存儲為文件并處理離線文件
??????????發送數據包
??????????收集網絡通信流量的統計信息
但是,WinPcap不能修改數據包或者攔截數據包 WinPcap架構:
?? ??? ? 網絡數據包過濾器(Netgroup Packet Filter,NPF)是一個協議驅動,是WinPcap的核心部件,它處理網絡傳輸的數據包,并向應用層提供捕捉、發送和分析數據包的服務。
?? ??? ? packet.dll是一個提供了一系列底層函數的動態鏈接庫,功能包括:
?? ??? ??? ? 安裝、啟動和停止NPF驅動設備
?? ??? ??? ? 對網絡數據包進行嗅探
?? ??? ??? ? 發送原始的數據報
?? ??? ??? ? 獲取網卡列表和每一個網絡的相關信息
?? ??? ??? ? 對網卡查詢和設置底層參數
?? ??? ?能Wpcap.dll是一個含有WinPcap公共API的動態鏈接庫,它導出一系列函數供捕獲網絡數據包和分析網絡,功能包括:
?? ??? ??? ? 對網絡數據包進行嗅探
?? ??? ??? ? 發送原始的數據報
?? ??? ??? ? 獲取網卡列表和每一個網絡的相關信息
?? ??? ??? ? 將數據包信息保存到磁盤
?? ??? ??? ? 在更高層上創建包過濾規則并應用到底層
因為使用winpcap是直接進行網卡抓包的,所以Wireshark能夠捕獲到經過網卡的所有包,但是這樣也造成在用wireshark對HTTPS包抓取的時候它只能抓到解析前的包數據,一般情況下不能直接解析,當然如果你一定要解析內容頁是可以做到的,網上搜索一下也能找到相關的教程。 winpcap的進一步了解可參考?WinPcap技術手冊 V4.1.2。 wireshark另外一個非常強大的功能呢就是它的過濾器,包括DisplayFilters和CaptureFilters,熟練配合使用這個這兩個Filter能夠讓你只看到你所需要的包。 捕捉過濾器(CaptureFilters):用于決定將什么樣的信息記錄在捕捉結果中。需要在開始捕捉前設置。
?????顯示過濾器(DisplayFilters):在捕捉結果中進行詳細查找。他們可以在得到捕捉結果后隨意修改。 當然這個過濾器的種類也是非常之多,要想能過熟練使用也絕非易事。過濾器Display Filter Reference介紹。 另外wireshark也支持一部分功能的擴展,wireshark對常見協議的支持已經比較完善,當然,如果你需要它對某些新協議進行支持的話你也可以安裝相應的插件。
? ? ?fiddler: 1、Fiddler 教程 2、抓包工具Fiddler的使用 fiddler的實現方式和wireshark不同,它并不對網卡進行監聽,而只是以代理web服務器的形式工作。它使用代理地址:127.0.0.1,端口:8888。當Fiddler退出的時候它會自動注銷,這樣就不會影響別的程序。他的實現方式也解釋了為什么使用fiddler進行網絡抓包的時候,當某些應用進行沒有真實證書的https訪問的時候,fiddler會有一個彈出框警示。 fiddler的實現方式如下圖,從它的實現方式中我們可以很簡單的看出,fiddler只支持http/https協議的抓取,這也從實現角度上解釋了它定位成網頁調試工具的原因。
監聽網卡和代理web服務器這兩種實現方式還是有挺大區別的。Fiddler能嗅探到HTTP代理的任意程序的數據包,但實際情況是,很多應用程序在一些賬號登陸的流程上是沒有走http代理的,之前在嘗試抓有些應用的登陸過程時就看到了這個問題。 當然,fiddler的這種代理服務器的實現方式也讓它能夠設置斷點,并可以再此基礎上修改request和response報文內容。 fiddler能支持https協議的分析,當然,前提是你先允許它抓取https數據,這個可以自己設置。像chrome這種登陸密碼不加密的工具,完全可以用fiddler來偵聽到用戶名密碼。(之前這個理解有誤,更正一下。fiddler能夠抓到https協議中的內容(如Chrome這種自己不加密密碼而是用https加密的工具的用戶名密碼),原因是fiddler以一個本地服務器的形式工作,當chrome向自己服務器請求一個https的證書時,fiddler會在中間截下來,然后返回一個它自己能夠解析的https證書,并同時向真正的服務器再請求一次,并保存真正服務器返回的證書。chrome收到fiddler返回的證書后開始用這個證書加密數據,再將數據上傳。fiddler在截到這份數據后,因為是自己給的證書,所以它能正確的解析出數據,同時將原始數據再用真正的證書加密一次,并上傳至真正的服務器。這樣就實現了https內容的抓取。) 另外,新版fiddler還能支持win8 metro的抓包,之前開發win8 app的時候一直沒有找到一款合適的抓包工具,現在看來fiddler幫我們解決這個問題了,詳細介紹可以參考Fiddler and Windows 8 Metro-style applications。
? ? ?如果你想進一步研究fiddler,可以買fiddler創始人寫的《Debugging with Fiddler: The complete reference from the creator of the Fiddler Web Debugger》這個書來深入研究。不過老美挺看重版權的,所以無論電子書還是紙質書都挺貴。 因本人知識水平有限,如有錯誤的地方歡迎指正。
來源:http://blog.csdn.net/lisztlee/article/details/8221135
總結
以上是生活随笔為你收集整理的初窥wireshark fiddler等抓包工具及部分实现分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用wireshark以及filddle
- 下一篇: 晚上给车烧纸最晚几点好