本文轉(zhuǎn)自公眾號(hào),歡迎關(guān)注
USB軟件抓包分析工具之三:Wireshark-華山派華山劍法 (qq.com)
介紹
Wireshark是世界上最流行的網(wǎng)絡(luò)協(xié)議分析軟件,并且是一個(gè)免費(fèi)的、開(kāi)源的工具。相信做過(guò)網(wǎng)絡(luò)開(kāi)發(fā)的一定用過(guò)這個(gè)工具進(jìn)行過(guò)抓包分析。
借助USBPcap還可以進(jìn)行USB的抓包和分析,USBPcap參考:https://desowin.org/usbpcap/
USBPcap從I/O請(qǐng)求包(IRP)中攜帶的USB請(qǐng)求塊(URBs)中捕獲數(shù)據(jù)。Wireshark將報(bào)文以幀的形式呈現(xiàn)。USBPcap的數(shù)據(jù)包與USB規(guī)范的數(shù)據(jù)包不完全相同,Wireshark的幀與USB幀也不同。
由于USBPcap捕獲的是功能設(shè)備對(duì)象(FDO)和物理設(shè)備對(duì)象(PDO)之間傳遞的URBs,如下圖
以下信息USBPcap可以抓取:
- 控制傳輸:
SETUP階段只能抓取DATA,不能抓取SETUP和ACK
DATA階段:USBPcap包包含來(lái)自事務(wù)的DATA包的組合數(shù)據(jù)。
STATUS階段:與STATUS階段相關(guān)的USBPcap包不包含任何數(shù)據(jù)。
- 同步傳輸:
單個(gè)IRP通常攜帶多個(gè)等時(shí)數(shù)據(jù)包。每個(gè)同步數(shù)據(jù)包都包含來(lái)自data數(shù)據(jù)包的數(shù)據(jù)。對(duì)于每個(gè)IRP都有兩個(gè)USBPcap包。第一個(gè)包含IRP從FDO到PDO時(shí)捕獲的數(shù)據(jù),第二個(gè)包含從FDO到PDO的數(shù)據(jù)。在OUT傳輸?shù)那闆r下,第一個(gè)USBPcap包包含完整的數(shù)據(jù),第二個(gè)包包含有關(guān)事務(wù)完成狀態(tài)的信息。在In傳輸?shù)那闆r下,第一個(gè)USBPcap包僅包含有關(guān)用于接收數(shù)據(jù)的分配緩沖區(qū)的信息,第二個(gè)包包含接收到的數(shù)據(jù)。
- 中斷傳輸:只能抓取DATA包,不能抓取IN,OUT和ACK。
- 批量傳輸:每次批量傳輸都會(huì)產(chǎn)生一個(gè)USBPcap數(shù)據(jù)包,包含來(lái)自屬于給定傳輸?shù)乃惺聞?wù)的所有數(shù)據(jù)包的組合數(shù)據(jù)。
- 大容量存儲(chǔ)設(shè)備:每次與USB大容量存儲(chǔ)設(shè)備的數(shù)據(jù)交換都會(huì)產(chǎn)生三個(gè)USBPcap數(shù)據(jù)包,其中第一個(gè)包含命令,第二個(gè)包含數(shù)據(jù),最后一個(gè)包含狀態(tài)。
以下一些信息不能通過(guò)USBPcap抓取:
- 總線狀態(tài) (Suspended, Power ON, Power OFF, Reset, High Speed Detection Handshake)
- 包ID (PID)
- 拆分事務(wù) (CSPLIT, SSPLIT)
- 總線狀態(tài)的持續(xù)時(shí)間和用于在線路上傳輸數(shù)據(jù)包的時(shí)間
- 傳輸速度 (Low Speed, Full Speed, High Speed)
另外也不能夠抓取完整的USB枚舉過(guò)程,只能看到USB控制傳輸發(fā)送到設(shè)備后,設(shè)備已分配其地址。
官網(wǎng)
安裝
我這里下載的是Wireshark-win64-4.0.5.exe,直接雙擊打開(kāi),安裝
我們可以把所有選項(xiàng)都勾選
勾選安裝桌面圖標(biāo)和快速啟動(dòng)圖標(biāo)
指定安裝路徑
注意這里勾選安裝USBPcap
安裝USBPcap
注意保存數(shù)據(jù)重啟
使用
打開(kāi)wireshark程序
一個(gè)USB根集線器會(huì)對(duì)應(yīng)一個(gè)USBPcap設(shè)備,如果沒(méi)有可能是安裝完后沒(méi)有重啟或者沒(méi)有安裝USBPcap。
可以進(jìn)去安裝路徑D:Program FilesWiresharkextcap下命令行輸入.USBPcapCMD.exe查看每個(gè)根集線器掛載的設(shè)備
設(shè)備過(guò)濾
我這里接入了一個(gè)UVC設(shè)備,可以看到對(duì)應(yīng)的是USBPcap2的端口2
我們雙擊USBPcap2可以看到抓到了數(shù)據(jù)
其中2.6.3正好對(duì)應(yīng)的是我們這個(gè)設(shè)備其中2對(duì)應(yīng)PORT2 6對(duì)應(yīng)USB設(shè)備地址為6,3對(duì)應(yīng)端點(diǎn)3
我們也可以使用usb.addr==2.6.3進(jìn)行過(guò)濾
點(diǎn)擊包可以顯示解析的信息和原始數(shù)據(jù)如下
文檔
USBPcap沒(méi)有完整的文檔,只能去官網(wǎng)看一些相關(guān)的信息https://desowin.org/usbpcap/tour.html。Wireshark有完善的文檔可以參考https://www.wireshark.org/docs/。
https://www.wireshark.org/docs/wsdg_html_chunked/ChapterDissection.html
總結(jié)
Wireshark使用USBPcap抓包相對(duì)于Bus Hound的優(yōu)點(diǎn)是有更詳細(xì)的協(xié)議解析,缺點(diǎn)是不能進(jìn)行數(shù)據(jù)發(fā)送調(diào)試。
Wireshark雖然以以太網(wǎng)抓包聞名于江湖,尤其是其包分析能力,借助USBPcap其也在USB抓包領(lǐng)域也占有一席之地。好比“以氣為體、以劍為用”,以氣御劍,氣就是Wireshark強(qiáng)大的包解析能力,USBPcap就是劍,以USBPcap為劍即能抓取解析USBPcap,以NPcap,WinPcap為劍即能抓取分析以太網(wǎng)包。
審核編輯 黃宇
-
usb
+關(guān)注
關(guān)注
60文章
7876瀏覽量
263697 -
軟件
+關(guān)注
關(guān)注
69文章
4699瀏覽量
87088 -
Wireshark
+關(guān)注
關(guān)注
0文章
49瀏覽量
6489
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論