USB軟件抓包分析工具之三:Wireshark-華山派華山劍法 (qq.com)
介紹
Wireshark是世界上最流行的網絡協議分析軟件,并且是一個免費的、開源的工具。相信做過網絡開發的一定用過這個工具進行過抓包分析。
借助USBPcap還可以進行USB的抓包和分析,USBPcap參考:https://desowin.org/usbpcap/
USBPcap從I/O請求包(IRP)中攜帶的USB請求塊(URBs)中捕獲數據。Wireshark將報文以幀的形式呈現。USBPcap的數據包與USB規范的數據包不完全相同,Wireshark的幀與USB幀也不同。
由于USBPcap捕獲的是功能設備對象(FDO)和物理設備對象(PDO)之間傳遞的URBs,如下圖
![pYYBAGRREfKAG4D4ACX2w5P37-k481.png](https://file.elecfans.com/web2/M00/A3/15/pYYBAGRREfKAG4D4ACX2w5P37-k481.png)
以下信息USBPcap可以抓取:
- 控制傳輸:
SETUP階段只能抓取DATA,不能抓取SETUP和ACK
DATA階段:USBPcap包包含來自事務的DATA包的組合數據。
STATUS階段:與STATUS階段相關的USBPcap包不包含任何數據。
- 同步傳輸:
單個IRP通常攜帶多個等時數據包。每個同步數據包都包含來自data數據包的數據。對于每個IRP都有兩個USBPcap包。第一個包含IRP從FDO到PDO時捕獲的數據,第二個包含從FDO到PDO的數據。在OUT傳輸的情況下,第一個USBPcap包包含完整的數據,第二個包包含有關事務完成狀態的信息。在In傳輸的情況下,第一個USBPcap包僅包含有關用于接收數據的分配緩沖區的信息,第二個包包含接收到的數據。
- 中斷傳輸:只能抓取DATA包,不能抓取IN,OUT和ACK。
- 批量傳輸:每次批量傳輸都會產生一個USBPcap數據包,包含來自屬于給定傳輸的所有事務的所有數據包的組合數據。
- 大容量存儲設備:每次與USB大容量存儲設備的數據交換都會產生三個USBPcap數據包,其中第一個包含命令,第二個包含數據,最后一個包含狀態。
以下一些信息不能通過USBPcap抓取:
- 總線狀態 (Suspended, Power ON, Power OFF, Reset, High Speed Detection Handshake)
- 包ID (PID)
- 拆分事務 (CSPLIT, SSPLIT)
- 總線狀態的持續時間和用于在線路上傳輸數據包的時間
- 傳輸速度 (Low Speed, Full Speed, High Speed)
另外也不能夠抓取完整的USB枚舉過程,只能看到USB控制傳輸發送到設備后,設備已分配其地址。
官網
安裝
![poYBAGRREfuARP_0ACmpKz86LpA789.png](https://file.elecfans.com/web2/M00/A2/95/poYBAGRREfuARP_0ACmpKz86LpA789.png)
我這里下載的是Wireshark-win64-4.0.5.exe,直接雙擊打開,安裝
![pYYBAGRREgGAcN8HAC2eVZBtihA248.png](https://file.elecfans.com/web2/M00/A3/15/pYYBAGRREgGAcN8HAC2eVZBtihA248.png)
![poYBAGRREgeAQFe8AC2eVQ_YQjg991.png](https://file.elecfans.com/web2/M00/A2/95/poYBAGRREgeAQFe8AC2eVQ_YQjg991.png)
![poYBAGRREg2AMoyRAC2eVdZEWLI689.png](https://file.elecfans.com/web2/M00/A2/95/poYBAGRREg2AMoyRAC2eVdZEWLI689.png)
我們可以把所有選項都勾選
![pYYBAGRREhGAMwQkAC2eVaYtR9U158.png](https://file.elecfans.com/web2/M00/A3/15/pYYBAGRREhGAMwQkAC2eVaYtR9U158.png)
勾選安裝桌面圖標和快速啟動圖標
![pYYBAGRREheAEVvUAC2eVQExeig054.png](https://file.elecfans.com/web2/M00/A3/15/pYYBAGRREheAEVvUAC2eVQExeig054.png)
指定安裝路徑
![poYBAGRREhuABjCHAC2eVZzMw34042.png](https://file.elecfans.com/web2/M00/A2/95/poYBAGRREhuABjCHAC2eVZzMw34042.png)
![pYYBAGRREiCAdvtlAC2eVb2irRQ466.png](https://file.elecfans.com/web2/M00/A3/15/pYYBAGRREiCAdvtlAC2eVb2irRQ466.png)
注意這里勾選安裝USBPcap
![poYBAGRREiSAFhQcAC2eVXWKieE485.png](https://file.elecfans.com/web2/M00/A2/95/poYBAGRREiSAFhQcAC2eVXWKieE485.png)
![poYBAGRREiiASEjAAC_7z5vIEnQ444.png](https://file.elecfans.com/web2/M00/A2/95/poYBAGRREiiASEjAAC_7z5vIEnQ444.png)
![pYYBAGRREiyADMglAC_7zw0vcB0304.png](https://file.elecfans.com/web2/M00/A3/15/pYYBAGRREiyADMglAC_7zw0vcB0304.png)
![pYYBAGRREjKATedkAC_7z796DcA809.png](https://file.elecfans.com/web2/M00/A3/15/pYYBAGRREjKATedkAC_7z796DcA809.png)
![poYBAGRREjWAERWEAC_7z-LOKSg183.png](https://file.elecfans.com/web2/M00/A2/95/poYBAGRREjWAERWEAC_7z-LOKSg183.png)
安裝USBPcap
![pYYBAGRREjqAF0KTAB5trHv1xyA877.png](https://file.elecfans.com/web2/M00/A3/15/pYYBAGRREjqAF0KTAB5trHv1xyA877.png)
![poYBAGRREj2AE1scAB5trGuETK8621.png](https://file.elecfans.com/web2/M00/A2/95/poYBAGRREj2AE1scAB5trGuETK8621.png)
![poYBAGRREkGABBKyAB5trA-V0X0183.png](https://file.elecfans.com/web2/M00/A2/95/poYBAGRREkGABBKyAB5trA-V0X0183.png)
![pYYBAGRREkWAXmHwAB5trENu3Jo081.png](https://file.elecfans.com/web2/M00/A3/15/pYYBAGRREkWAXmHwAB5trENu3Jo081.png)
![pYYBAGRREkmAUw9TAB5trIUP0aI428.png](https://file.elecfans.com/web2/M00/A3/15/pYYBAGRREkmAUw9TAB5trIUP0aI428.png)
![poYBAGRREk2AGUkgAC2eVdUrXNg070.png](https://file.elecfans.com/web2/M00/A2/95/poYBAGRREk2AGUkgAC2eVdUrXNg070.png)
注意保存數據重啟
![pYYBAGRRElOAJB30AC2eVdyTAzw634.png](https://file.elecfans.com/web2/M00/A3/15/pYYBAGRRElOAJB30AC2eVdyTAzw634.png)
使用
打開wireshark程序
一個USB根集線器會對應一個USBPcap設備,如果沒有可能是安裝完后沒有重啟或者沒有安裝USBPcap。
![poYBAGRREliAGLMdACVVFZFSwx0112.png](https://file.elecfans.com/web2/M00/A2/95/poYBAGRREliAGLMdACVVFZFSwx0112.png)
可以進去安裝路徑D:Program FilesWiresharkextcap下命令行輸入.USBPcapCMD.exe查看每個根集線器掛載的設備
![pYYBAGRRElyAcaGmADdfPL7ybwU672.png](https://file.elecfans.com/web2/M00/A3/15/pYYBAGRRElyAcaGmADdfPL7ybwU672.png)
設備過濾
我這里接入了一個UVC設備,可以看到對應的是USBPcap2的端口2
![poYBAGRREmGAAZVyACg1msoxmxM979.png](https://file.elecfans.com/web2/M00/A2/95/poYBAGRREmGAAZVyACg1msoxmxM979.png)
我們雙擊USBPcap2可以看到抓到了數據
其中2.6.3正好對應的是我們這個設備其中2對應PORT2 6對應USB設備地址為6,3對應端點3
![poYBAGRREmaAN76WACkNVPubGiU668.png](https://file.elecfans.com/web2/M00/A2/95/poYBAGRREmaAN76WACkNVPubGiU668.png)
我們也可以使用usb.addr==2.6.3進行過濾
點擊包可以顯示解析的信息和原始數據如下
![pYYBAGRREmuAd6DgACyi9TDYyEM734.png](https://file.elecfans.com/web2/M00/A3/15/pYYBAGRREmuAd6DgACyi9TDYyEM734.png)
文檔
USBPcap沒有完整的文檔,只能去官網看一些相關的信息https://desowin.org/usbpcap/tour.html。Wireshark有完善的文檔可以參考https://www.wireshark.org/docs/。
https://www.wireshark.org/docs/wsdg_html_chunked/ChapterDissection.html
總結
Wireshark使用USBPcap抓包相對于Bus Hound的優點是有更詳細的協議解析,缺點是不能進行數據發送調試。
Wireshark雖然以以太網抓包聞名于江湖,尤其是其包分析能力,借助USBPcap其也在USB抓包領域也占有一席之地。好比“以氣為體、以劍為用”,以氣御劍,氣就是Wireshark強大的包解析能力,USBPcap就是劍,以USBPcap為劍即能抓取解析USBPcap,以NPcap,WinPcap為劍即能抓取分析以太網包。
審核編輯 黃宇
-
usb
+關注
關注
60文章
7988瀏覽量
266261 -
軟件
+關注
關注
69文章
5026瀏覽量
88133 -
Wireshark
+關注
關注
0文章
49瀏覽量
6554
發布評論請先 登錄
相關推薦
Wireshark抓包和Tcpdump抓包實例分析
wireshark抓包數據分析問題
Wireshark數據抓包網絡協議的分析
![<b class='flag-5'>Wireshark</b>數據<b class='flag-5'>抓</b><b class='flag-5'>包</b>網絡協議的<b class='flag-5'>分析</b>](https://file.elecfans.com/web1/M00/CA/08/pIYBAF-DtQ-AO-kFAACAqDhp-pA933.png)
MCU_Wireshark USB 抓包過濾(抓特定端口地址)
![MCU_<b class='flag-5'>Wireshark</b> <b class='flag-5'>USB</b> <b class='flag-5'>抓</b><b class='flag-5'>包</b>過濾(<b class='flag-5'>抓</b>特定端口地址)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論