USB(五)——大容量存储设备的枚举

通过抓包软件对USB的枚举过程抓包,得到的部分信息如下:

  Device - Device ID (followed by the endpoint for USB devices)
            (20) COMNAV MASS STORAGE   1 [ROM=.0 ]
            (28) HID-compliant mouse
            (30) SanDisk Ultra USB 3.0 [ROM=1.00]
            (32) SanDisk Ultra USB 3.0 [ROM=1.00]
            (33) USB Mass Storage Device
  Length - Total transfer length
  Phase  - Phase Type
            CTL   USB control transfer       
            IN    Data in transfer           
            OUT   Data out transfer          
            RESET bus reset                  
            USTS  USB status                 
  Data   - Hex dump of the data transferred
  Descr  - Description of the phase
  Cmd... - Position in the captured data


Device  Length    Phase  Data                                                                                                    Description                       Cmd.Phase.Ofs(rep)
------  --------  -----  ------------------------------------------------------------------------------------------------------  --------------------------------  ------------------
  33.0            CTL    80 06 00 01  00 00 12 00                                                                                GET DESCRIPTOR                           1.1.0        
  33.0        18  IN     12 01 00 02  00 00 00 40  51 09 65 16  00 01 01 02  03 01                                               .......@Q.e.......                       1.2.0        
  33.0            CTL    80 06 00 02  00 00 09 00                                                                                GET DESCRIPTOR                           2.1.0        
  33.0         9  IN     09 02 20 00  01 01 00 80  64                                                                            .. .....d                                2.2.0        
  33.0            CTL    80 06 00 02  00 00 20 00                                                                                GET DESCRIPTOR                           3.1.0        
  33.0        32  IN     09 02 20 00  01 01 00 80  64 09 04 00  00 02 08 06  50 00 07 05  81 02 00 02  00 07 05 02  02 00 02 00  .. .....d.......P...............         3.2.0        
  33.0            CTL    80 06 00 03  00 00 02 00                                                                                GET DESCRIPTOR                           4.1.0        
  33.0         2  IN     04 03                                                                                                   ..                                       4.2.0        
  33.0            CTL    80 06 00 03  00 00 04 00                                                                                GET DESCRIPTOR                           5.1.0        
  33.0         4  IN     04 03 09 04                                                                                             ....                                     5.2.0        
  33.0            CTL    80 06 03 03  09 04 02 00                                                                                GET DESCRIPTOR                           6.1.0        
  33.0         2  IN     32 03                                                                                                   2.                                       6.2.0        
  33.0            CTL    80 06 03 03  09 04 32 00                                                                                GET DESCRIPTOR                           7.1.0        
  33.0        50  IN     32 03 30 00  38 00 36 00  30 00 36 00  45 00 36 00  44 00 34 00  30 00 38 00  37 00 45 00  33 00 38 00  2.0.8.6.0.6.E.6.D.4.0.8.7.E.3.8.         7.2.0        
                         30 00 33 00  37 00 30 00  46 00 41 00  39 00 42 00  41 00                                               0.3.7.0.F.A.9.B.A.                       7.2.32       
  33.0            CTL    00 09 01 00  00 00 00 00                                                                                SET CONFIG                               8.1.0        
  33.0            CTL    01 0b 00 00  00 00 00 00                                                                                SET INTERFACE                            9.1.0        
  33.0            CTL    a1 fe 00 00  00 00 01 00                                                                                GET MAX LUN                             10.1.0        
  33.0         1  IN     00                                                                                                      .                                       10.2.0        
  33.2        31  OUT    55 53 42 43  30 5c 0a b4  24 00 00 00  80 00 06 12  00 00 00 24  00 00 00 00  00 00 00 00  00 00 00     USBC0\..$..........$...........         11.1.0        
  33.1        36  IN     00 80 04 02  1f 00 00 00  4b 69 6e 67  73 74 6f 6e  44 61 74 61  54 72 61 76  65 6c 65 72  20 32 2e 30  ........KingstonDataTraveler 2.0        12.1.0        
                         50 4d 41 50                                                                                             PMAP                                    12.1.32       
  33.1        13  IN     55 53 42 53  30 5c 0a b4  00 00 00 00  00                                                               USBS0\.......                           13.1.0        
  33.2        31  OUT    55 53 42 43  30 ac 21 ad  24 00 00 00  80 00 06 12  00 00 00 24  00 00 00 00  00 00 00 00  00 00 00     USBC0.!.$..........$...........         14.1.0        
  33.1        36  IN     00 80 04 02  1f 00 00 00  4b 69 6e 67  73 74 6f 6e  44 61 74 61  54 72 61 76  65 6c 65 72  20 32 2e 30  ........KingstonDataTraveler 2.0        15.1.0        
                         50 4d 41 50                                                                                             PMAP                                    15.1.32       
  33.1        13  IN     55 53 42 53  30 ac 21 ad  00 00 00 00  00                                                               USBS0.!......                           16.1.0        
  33.2        31  OUT    55 53 42 43  30 ac 21 ad  fc 00 00 00  80 00 0a 23  00 00 00 00  00 00 00 fc  00 00 00 00  00 00 00     USBC0.!........#...............         17.1.0        
  33.1            USTS   c0000004                                                                                                stall pid                               18.1.0        
  33.1            RESET                                                                                                                                                  19.1.0        
  • 第一个命令或者说是请求:

80 06 00 01 00 00 12 00

0x80为位图,可得:

Recipient: Device
Request Type: Standard
Direction: Device->Host

其他值:
Request: 0x06 (GET_CONFIGURATION)
Value: 0x0100(设备描述符)
Index: 0x0000(偏移)
Length: 0x0012(返回18个字节)

  • 第一个返回

12 01 00 02  00 00 00 40  51 09 65 16  00 01 01 02  03 01

bLength:12 ,此设备描述符的长度是18字节
bDecriptorType:01 ,参照表5得知是设备描述符 

bcdUSB:00 02 ,代表USB协议的版本号,此处2.0版

bDeviceClass:00
bDeviceSubClass:00,表述设备类码由接口文件给出,可能是为了每个接口独立实现不同的功能。
bDevicePortocol:00,跟前两个字节紧密联系,这里指还是等待在接口文件里再说明使用的设备协议
bMaxPacketSize0:40,指端点0最大可接受的包大小。

idVendor:51 09 ,VID其实是0x0951,字节序问题不在赘述
idProduct:65 16 ,PID 0x1665,在http://www.linux-usb.org/usb.ids查询得知

bcdDevice:00 01
iManufacturer:01,
iProduct:02,
iSerialNumber:03,
bNumConfigurations:01
这几个数字都是索引值,如果以后主机想向设备端索要这些字符串信息(包含在字符串描述符里),就用这些值填充wIndex.

  • 第二个命令

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值