這個作品使用了Cypress的無線模組, 只是它並沒有拿來傳資料. 而是利用模組原本的監聽功能來掃描2.4G頻帶內的無線信號.
正體中文翻譯
原文Handheld 2.4 GHz Spectrum Analyzer
2010年2月23日 星期二
手持式頻譜分析儀
2010年2月19日 星期五
USB分析工具1 - SnoopyPro 和 usbmon
在同時講解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 周邊晶片 這條路上發生的問題,不論是要錢或免費的軟體工具全部都看不到。
2010年2月17日 星期三
USB 中級心法之USB封包解說
今天做了一個解說USB封包的工具,當做是USB中級心法系列的準備。有興趣學習USB的人可以自己先玩一下來熟悉所謂的3*3。(用IE來玩的速度較慢,建議換用其他瀏灠器)
Get Device Descriptor - Index=0 Length=18 |
SETUP txn - 80 06 00 01 00 00 12 00 |
SETUP packet |
SYNC |
00000001 |
SETUP |
0xB4 |
ADDR |
0x01 |
ENDP |
0x0 |
CRC5 |
0x17 |
DATA0 packet |
SYNC |
00000001 |
DATA0 |
0xC3 |
DATA |
80 06 00 01 00 00 12 00 |
CRC16 |
0x072F |
ACK packet |
SYNC |
00000001 |
ACK |
0x4B |
IN txn - 12 01 00 02 00 00 00 08 |
IN packet |
SYNC |
00000001 |
IN |
0x96 |
ADDR |
0x01 |
ENDP |
0x0 |
CRC5 |
0x17 |
DATA1 packet |
SYNC |
00000001 |
DATA1 |
0xD2 |
DATA |
12 01 00 02 00 00 00 08 |
CRC16 |
0xEAE7 |
ACK packet |
SYNC |
00000001 |
ACK |
0x4B |
IN txn - 6D 04 16 C0 40 03 01 02 |
IN packet |
SYNC |
00000001 |
IN |
0x96 |
ADDR |
0x01 |
ENDP |
0x0 |
CRC5 |
0x17 |
DATA0 packet |
SYNC |
00000001 |
DATA0 |
0xC3 |
DATA |
6D 04 16 C0 40 03 01 02 |
CRC16 |
0x5ACF |
ACK packet |
SYNC |
00000001 |
ACK |
0x4B |
IN txn - 00 01 |
IN packet |
SYNC |
00000001 |
IN |
0x96 |
ADDR |
0x01 |
ENDP |
0x0 |
CRC5 |
0x17 |
DATA1 packet |
SYNC |
00000001 |
DATA1 |
0xD2 |
DATA |
00 01 |
CRC16 |
0xFCF1 |
ACK packet |
SYNC |
00000001 |
ACK |
0x4B |
OUT txn - |
OUT packet |
SYNC |
00000001 |
OUT |
0x87 |
ADDR |
0x01 |
ENDP |
0x0 |
CRC5 |
0x17 |
DATA1 packet |
SYNC |
00000001 |
DATA1 |
0xD2 |
DATA |
CRC16 |
0x0000 |
ACK packet |
SYNC |
00000001 |
ACK |
0x4B |
Get Configuration Descriptor - Index=0 Length=255 |
SETUP txn - 80 06 00 02 00 00 FF 00 |
SETUP packet |
SYNC |
00000001 |
SETUP |
0xB4 |
ADDR |
0x01 |
ENDP |
0x0 |
CRC5 |
0x17 |
DATA0 packet |
SYNC |
00000001 |
DATA0 |
0xC3 |
DATA |
80 06 00 02 00 00 FF 00 |
CRC16 |
0x9725 |
ACK packet |
SYNC |
00000001 |
ACK |
0x4B |
IN txn - 09 02 22 00 01 01 00 A0 |
IN packet |
SYNC |
00000001 |
IN |
0x96 |
ADDR |
0x01 |
ENDP |
0x0 |
CRC5 |
0x17 |
DATA1 packet |
SYNC |
00000001 |
DATA1 |
0xD2 |
DATA |
09 02 22 00 01 01 00 A0 |
CRC16 |
0x5019 |
ACK packet |
SYNC |
00000001 |
ACK |
0x4B |
IN txn - 32 09 04 00 00 01 03 01 |
IN packet |
SYNC |
00000001 |
IN |
0x96 |
ADDR |
0x01 |
ENDP |
0x0 |
CRC5 |
0x17 |
DATA0 packet |
SYNC |
00000001 |
DATA0 |
0xC3 |
DATA |
32 09 04 00 00 01 03 01 |
CRC16 |
0xACB2 |
ACK packet |
SYNC |
00000001 |
ACK |
0x4B |
IN txn - 02 00 09 21 10 01 00 01 |
IN packet |
SYNC |
00000001 |
IN |
0x96 |
ADDR |
0x01 |
ENDP |
0x0 |
CRC5 |
0x17 |
DATA1 packet |
SYNC |
00000001 |
DATA1 |
0xD2 |
DATA |
02 00 09 21 10 01 00 01 |
CRC16 |
0x68CE |
ACK packet |
SYNC |
00000001 |
ACK |
0x4B |
IN txn - 22 34 00 07 05 81 03 04 |
IN packet |
SYNC |
00000001 |
IN |
0x96 |
ADDR |
0x01 |
ENDP |
0x0 |
CRC5 |
0x17 |
DATA0 packet |
SYNC |
00000001 |
DATA0 |
0xC3 |
DATA |
22 34 00 07 05 81 03 04 |
CRC16 |
0xB587 |
ACK packet |
SYNC |
00000001 |
ACK |
0x4B |
IN txn - 00 0A |
IN packet |
SYNC |
00000001 |
IN |
0x96 |
ADDR |
0x01 |
ENDP |
0x0 |
CRC5 |
0x17 |
DATA1 packet |
SYNC |
00000001 |
DATA1 |
0xD2 |
DATA |
00 0A |
CRC16 |
0x7E12 |
ACK packet |
SYNC |
00000001 |
ACK |
0x4B |
OUT txn - |
OUT packet |
SYNC |
00000001 |
OUT |
0x87 |
ADDR |
0x01 |
ENDP |
0x0 |
CRC5 |
0x17 |
DATA1 packet |
SYNC |
00000001 |
DATA1 |
0xD2 |
DATA |
CRC16 |
0x0000 |
ACK packet |
SYNC |
00000001 |
ACK |
0x4B |