在同時講解USB中級心法時,這裡也會定期介紹USB裝置開發時會用到的工具。今天要介紹的是二個完全免費且開放原始碼的工具。 SnoopyPro和Linux 內建的 usbmon.
SnoopyPro已經好幾年沒有人在維護了,Vista之後的作業系統也不保證可以用。它最大的好處就是使用簡單且完全免費。使用方法如下:
1.執行 SnoopyPro.exe 2.按 F2 打開USB裝置視窗 3.從 File 選單裡選 ‘Unpack Drivers’ 4.從 File 選單裡選 ‘Install Service’ 5.在想要觀察的裝置上按滑鼠右鍵並選擇 ‘Install and Restart’ 6.操縱被觀察的裝置(插拔,操作軟體,按鈕……) 7.作業系統收發的該裝置資料都會被記錄下來供後統分析
另外要介紹的是Linux 2.6. 內建的usbmon, 如果裝的是Ubuntu 9.10 那裝完之後直接可以用,只需在shell視窗裡打 ‘cat /sys/kernel/debug/usb/usbmon/0u > /tmp/1.mon.out’ 再去操縱想要觀察的裝置就會記錄所有系統收發的USB資料。
實際錄下的記錄檔如下:
d187b000 1597420637 S Ci:1:004:0 s 80 06 0100 0000 0012 18 <
d187b000 1597423351 C Ci:1:004:0 0 18 = 12011001 00000008 6d0416c0 40030102 0001
d187b000 1597423501 S Ci:1:004:0 s 80 06 0200 0000 0009 9 <
d187b000 1597424980 C Ci:1:004:0 0 9 = 09021900 010100a0 32
看起來是不是跟USB中級心法前章的資料收掉Transaction和Packet很像呢?
這就是這種軟體監看工具最弱的一環,軟體只能記錄作業系統有辦法看到的資料。所以從主機板的南橋(或USB界面上)驅動程式->南橋晶片(USB卡)->USB cable->USB 周邊晶片 這條路上發生的問題,不論是要錢或免費的軟體工具全部都看不到。