usb库文件usb_desc.c分析

Posted prayer521

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了usb库文件usb_desc.c分析相关的知识,希望对你有一定的参考价值。

参考《圈圈教你玩USB》

usb协议中使用的是小端结构,所以实际数据在传输时是低字节在先的。

设备描述符的实现:

  已知每个设备都必须有且仅有一个设备描述符,它的结构在USB协议中有详细的定义。

              偏移量                             域                  大小/字节                          说 明                       
0 bLength 1 该描述符的长度(18字节)
1 bDescription 1 描述符类型(设备描述符为0x01)
2 bcdUSB 2 本设备所使用的usb协议版本
4 bDeviceClass 1 类代码
5 bDeviceSubClass 1 子类代码
6 bDeviceProtocol 1 设备所使用的协议
7 bMaxPackSize0 1 端点0最大包长
8 idVender 2 厂商id
10 idProduct 2 产品ID
12 bcdDevice 2 设备版本号
14 iManufacturer 1 描述厂商的字符串的索引
15 iProduct 1 描述产品的字符串的索引
16 iSerialNumber 1 产品序列号字符串的索引
17 bNumcofigurations 1 可能的配置数

 

 1 const uint8_t MASS_DeviceDescriptor[MASS_SIZ_DEVICE_DESC] =
 2   {
 3     0x12,   /* bLength  */
 4     0x01,   /* bDescriptorType */
 5     0x00,   /* bcdUSB, version 2.00 */
 6     0x02,
 7     0x00,   /* bDeviceClass : each interface define the device class */
 8     0x00,   /* bDeviceSubClass */
 9     0x00,   /* bDeviceProtocol */
10     0x40,   /* bMaxPacketSize0 0x40 = 64 */
11     0x83,   /* idVendor     (0483) */
12     0x04,
13     0x20,   /* idProduct */
14     0x57,
15     0x00,   /* bcdDevice 2.00*/
16     0x02,
17     1,              /* index of string Manufacturer  */
18     /**/
19     2,              /* index of string descriptor of product*/
20     /* */
21     3,              /* */
22     /* */
23     /* */
24     0x01    /*bNumConfigurations */
25   };

 

以上是关于usb库文件usb_desc.c分析的主要内容,如果未能解决你的问题,请参考以下文章

python 一个终端代码片段,在mac上生成可启动的usb live CD,以运行类似ubuntu或debian的内容。

USB开发库文件分析

Android 逆向整体加固脱壳 ( DEX 优化流程分析 | DexPrepare.cpp 中 dvmOptimizeDexFile() 方法分析 | /bin/dexopt 源码分析 )(代码片段

STM32 usb_mem.c和usb_sil.c文件的分析

Python中的录音

CTF—MISC—USB键盘流量分析