Bus Hound抓包分析,USB裝置識別為HID

2021-10-24 15:21:50 字數 3992 閱讀 4183

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...