device:17.0 ——表示id為17的裝置的0號端點
phase:階段列
cmd.phase.ofs:命令數.階段數.每個階段中位元組的偏移量
ctl:表示8位元組的usb控制傳輸的setup包
bmrequesttype —— 80:資料方向從usb到pc;標準的請求;usb裝置接收
brequest —— 06:表示接下來傳送的資料時get_descriptor(主控器讀取usb描述符)
windex —— 00 00:一般用於說明端點號或者介面標識
wlength —— 12 00:下一階段傳送資料的長度為18個位元組(小端格式理解)
first 【in】:資料傳輸(usb裝置到pc)
blength —— 12:資料位元組長度為18
bdescriptortype —— 01:裝置描述符
bcdusb —— 00 02:usb裝置2.0協議
bdeviceclass —— ef:usb_device_class_miscellaneous(雜項)
bdevicesubclass —— 02
bdeviceprotocol —— 01
bmaxpacketsize0 —— 40:最大包長64個位元組
idvendor —— 1fc9
idproduct —— 100b
bcddevice —— 0100
imanufacturer —— 01
iproduct —— 02
iserialnumber —— 03
bnumconfigurations —— 01
second 【in】
blength —— 09:該描述符結構體的大小為9個位元組
bdescriptortype ——02:配置描述符
bnuminte***ces ——01:此配置的介面數量
bconfigurationvalue ——01:此配置所需要的引數值
iconfiguration ——00:描述該配置的字串的索引值
bmattributes ——c0:供電模式的選擇usb_config_self_powered(自供電)
bmaxpower ——32:裝置從匯流排提取的最大的電流100ma
third 【in】(前面資料和第二個in一樣,從32後開始分析)
blength —— 09:介面描述符結構體大小
bdescriptortype —— 04:usb_inte***ce_descriptor_type
binte***cenumber —— 01:該介面的編號
balternatesetting —— 00:備用的介面描述符編號
bnumendpoints —— 02:該介面使用的端點數,不包括端點0
binte***ceclass —— 03:介面型別為usb_device_class_human_inte***ce(hid)
binte***cesubclass —— 00:界面子型別
binte***ceprotocol —— 00:介面遵循的協議
iinte***ce —— 04:描述該介面的字串索引值
hid class descriptor
blength ——09:該hid描述符的大小
bdescriptortype —— 21:hid_hid_descriptor_type
bcdhid —— 00 01:hid類協議版本號,為1.1
bcountrycode —— 00:韌體的國家地區**
bnumdescriptors —— 01:下級描述符的個數
bdescriptortype —— 22:下級描述符為hid_report_descriptor_type(報告描述符)
wdescriptorlength —— 2c 00:下級描述符的長度
endpoint hid interrupt in
blength —— 07
bdescriptortype —— 05:端點描述符
bendpointaddress —— 84:hid_ep_in address
bmattributes —— 03:usb_endpoint_type_interrupt
wmaxpacketsize —— 04
binterval —— 00 20:間隔為16ms
endpoint hid interrupt out
blength —— 07
bdescriptortype —— 05:端點描述符
bendpointaddress —— 04:hid_ep_out address
bmattributes —— 03:usb_endpoint_type_interrupt
wmaxpacketsize —— 04
binterval —— 00 20:間隔為16ms
ctl:表示8位元組的usb控制傳輸的setup包
bmrequesttype —— 00:資料方向從pc到usb;標準的請求;usb裝置接收
brequest —— 09:表示接下來的請求是set_configuration (設定配置)
windex —— 00 00:一般用於說明端點號或者介面標識
wlength —— 00 00
ctl:表示8位元組的usb控制傳輸的setup包
bmrequesttype —— 21:資料方向從pc到usb;class類的請求;介面接收
brequest —— 0a:表示接下來的請求是get_inte***ce (獲取介面)
windex —— 01 00:介面標識為01
wlength —— 00 00
ctl:表示8位元組的usb控制傳輸的setup包
bmrequesttype —— 81:資料方向從usb到pc;標準請求;介面接收
brequest —— 06:表示接下來的請求是獲取描述符
windex —— 01 00:介面標識為01
wlength —— 6c 00:資料長度為108個位元組
fourth 【in】——hid report descriptor
具體參考usbdesc.c內的設定
分析整個通訊過程則可知其傳輸事務過程如下:
1、setup事務,傳輸setup資料格式包,告訴裝置接下要獲取usb描述符,但不知道描述符的型別,並指明了接下來的資料傳輸方向和傳輸的資料大小
2、in傳輸事務,表示裝置傳輸資料到pc,傳輸中指明了這次傳輸的資料大小,型別是裝置描述符以及其他相關的裝置資訊
3、setup事務,改變了讀取描述符的偏移位址和傳輸資料的大小
4、n傳輸事務,但描述符型別是配置描述符,指明了介面數量、供電模式、最大電流等引數
5、setup事務,再次獲取配置描述符,僅僅改變了獲取的傳輸資料的大小為41個位元組,即下一次準備接收41個位元組
6、in事務,返回配置描述符時連並介面、端點描述符都一起返回,向pc指明了這是個hid介面以及其使用的端點數
7、setup事務,設定配置
8、setup事務,設定介面閒置狀態
9、setup事務,獲取描述符
10、in事務,裝置傳送hid報告描述符給pc
USB滑鼠抓包資料
先看下上面的圖,相信這個圖很好理解吧?恩,看著挺熟悉的吧?下面還是介紹下吧。公司是有usb分析儀,不過看過,沒用過,這東西特貴。至於用,也是很簡單的,插好線後,設定一些功能,點一下執行就ok,然後就有上面的圖了。上圖是用國嵌資料中的,公司裡的東西,不好拿來用。usb資料是由二進位制數字串構成的,首先...
Httpwatch抓包分析
說明 本次抓包抓的是loadrunning11中自帶程式web tours的登入過程 結果如下圖 post webtours login.pl http 1.1 post定義請求方法,webtours login.pl定義請求伺服器哪些資源以及在伺服器位置,http表示採用的協議,1.1表示http...
linux抓包分析
linux 下抓包命令 tcpdump 可以輸入tcpdump 看下該命令是否安裝,沒有安裝 輸入 yum install y tcpdump 到目錄下開始抓包 tcpdump i eth1 w 1.pcap 生成1.pcap檔案 ctrl c 停止抓包 sz 1.pcap 匯出1.pcap 拉到w...