使用wireshark抓取USB包

2021-09-25 14:10:44 字數 1351 閱讀 9020

前段時間做專案時裡面用到了usb,當時usb驅動不是我寫的,專案開發過程中usb驅動出現了一些bug,但寫驅動的那個同事又在忙別的,所以自己硬著頭皮看了一些。網上搜了大量有關於usb的資料,同時看看usb驅動的**,然而還是沒看懂,bug也沒解決(網上說usb驅動挺難得,現在看來確實是),後來bug還是寫驅動的同事解決的。當時就想著有空了,一定要好好看一下usb驅動的**。

現在專案也算告一段落了,所以就想著回頭好好看看usb驅動。學習usb驅動,抓取usb包是比不可少的。網上查閱了發現抓取usb包的工具,主要有以下三個:bus hound,usblyzer 和-usbtrace,我使用的是bus hound和usblyzer。關於這兩個工具的使用我就不在這班門弄斧了,我今天想說的是wireshark這個工具。無意中發現wireshark也可以抓取usb資料報,而且列出來的資訊也比較直觀。

可能有些人的wireshark無法抓取usb包,那是因為你在安裝的過程中都是一路預設下去的。所以如果想用wireshark抓取usb資料的話,可以考慮重新安裝。

在這個步驟時選中usbcap,然後其他預設安裝即可:

安裝成功後,開啟wireshark便會出現下面的usbcap介面:

雙擊usbcap就可以抓取usb的各種資料報了。

這是抓到的usb報文:

可以抓到電腦上所有usb裝置的報文,如:usb滑鼠、usb鍵盤等等

報文太多可以通過一些過濾條件,篩選出我們需要的報文。在過濾器中輸入usb.addr==「1.5.0」,即可只顯示我們想要的報文(因為我想保留的usb裝置的位址是5,所以addr等於1.5.0,其中0表示端點0)。

(注:此處的過濾條件比網路的過濾條件多乙個" ",網路過濾條件只需ip.addr==192.168.1.1即可)

下面便是過濾後的報文。可以看出每個所傳輸的資料,以及該位元組所代表的意思(這樣就不用hus bound抓到包後乙個位元組的和協議手冊對照了),最下面的是整個包的內容。

(上圖中的wlength:18,對應資料報中最好兩個位元組 12 00,資料報中都是16進製制的)

wireshark 抓取指定ip

顯示過濾可以完整的復現測試時的網路環境,但會產生較大的捕獲檔案和記憶體占用。捕捉過濾抓包前在capture option中設定,僅捕獲符合條件的包,可以避免產生較大的捕獲檔案和記憶體占用,但不能完整的復現測試時的網路環境。抓取所有目的位址是192.168.1.2 或192.168.1.3 埠是80 ...

wireshark如何抓取WebSocket資料報

websocket目前在web端使用廣泛,可以使用websocket來傳輸資料,解決了web端無法跟伺服器維持高效的長鏈結的問題。什麼是websocket呢?websocket是一種瀏覽器與伺服器進行全雙工通訊的應用層協議。它基於 tcp 傳輸協議,並復用 http 的握手通道,可以在瀏覽器裡使用,...

使用wireshark進行網路報文抓取與分析

wireshark 前稱ethereal 是乙個免費的網路報文分析軟體。網路報文分析軟體的功能是抓取網路報文,並逐層顯示報文中各欄位取值。網路報文分析軟體有個形象的名字 嗅探工具 像乙隻獵狗,忠實地守候在介面旁,抓獲進出該進口的報文,分析其中攜帶的資訊,判斷是否有異常,是網路故障原因分析的乙個有力工...