使用Bus Hound 进行鼠标的数据分析
设备33被明确识别为一个HID兼容鼠标,支持标准的鼠标报告格式。07 05- 长度7字节,类型端点描述符81- 端点地址(IN端点1)03- 属性(中断传输)08 00- 最大包大小8字节00- 轮询间隔(系统决定)

1.获取设备描述符 CTL: 80 06 00 01 00 00 12 00 IN: 12 01 00 02 00 00 00 08 61 04 4a 5b 00 01 01 02 00 01
解析:
方向:电脑向鼠标请求
请求:获取18字节(0x12)的设备描述符
12 01 -描述符长度18字节,类型为设备描述符
00 02 -USB规范版本2.00
00 -设备类(在接口中定义)
00-设备子类
00-设备协议
08-最大包大小8字节
61 04 -厂商ID 0x0461
4a 5b -产品ID 0x5b4a
00 01 -设备版本1.00
01-厂商字符串索引1
02-厂商字符串索引2
00-无序列号
01-配置数量1个
2.获取配置描述符(首次9字节)
CTL: 80 06 00 02 00 00 09 00
IN: 09 02 22 00 01 01 00 a0 32
解析:
请求:获取配置描述符的前9字节
响应:配置描述符头部
09 02 -长度9字节,类型配置描述符
22 00 总长度34字节(0x22)
01 -接口数量1个
01 -配置值1
a0 -属性(总线供电,支持远程唤醒)
32 -最大电流100mA(0x32*2mA)
3.获取完整配置描述符集合(34字节)
CTL: 80 06 00 02 00 00 22 00
IN: 09 02 22 00 01 01 00 a0 32 09 04 00 00 01 03 01 02 00 09 21 11 01 00 01 22 4f 00 07 05 81 03 08 00 00
这是最关键的部分,包含完整的配置信息
A.配置描述符
09 02 22 00 01 01 00 a0 32 (同上)
. 接口描述符 (9字节) ⭐ 鼠标识别关键
09 04 00 00 01 03 01 02 00
-
09 04- 长度9字节,类型接口描述符 -
00- 接口编号0 -
00- 交替设置0 -
01- 端点数量1个 -
03- 接口类:0x03 = HID设备 ✅ -
01- 接口子类:0x01 = 支持启动协议 ✅ -
02- 接口协议:0x02 = 鼠标 ✅ -
00- 接口字符串索引(无)
C. HID描述符 (9字节)
09 21 11 01 00 01 22 4f 00
-
09 21- 长度9字节,类型HID描述符 -
11 01- HID规范版本1.11 -
00- 国家代码(无) -
01- HID描述符数量1个 -
22- 描述符类型(报告描述符) -
4f 00- 报告描述符长度79字节(0x4f)
D. 端点描述符 (7字节)
07 05 81 03 08 00 00
6. 📄 获取HID报告描述符
CTL: 81 06 00 22 00 00 8f 00 IN: 05 01 09 02 a1 01 09 01 a1 00 05 09 19 01 29 03 15 00 25 01 75 01 95 03 81 02 75 05 95 01 81 03 05 01 09 30 09 31 09 38 15 81 25 7f 75 08 95 03 81 06 09 3c 05 ff 95 01 75 08 81 06 05 0c 0a 38 02 95 01 81 06 c0 c0
报告描述符解析:
7. 🔤 获取字符串描述符
CTL: 80 06 02 03 09 04 06 01 IN: 38 03 48 00 50 00 20 00 31 00 32 00 35 00 20 00 41 00 4d 00 20 00 55 00 53 00 42 00 20 00 4f 00
解析:
🎯 总结确认
通过分析接口描述符:
设备33被明确识别为一个HID兼容鼠标,支持标准的鼠标报告格式。
-
07 05- 长度7字节,类型端点描述符 -
81- 端点地址(IN端点1) -
03- 属性(中断传输) -
08 00- 最大包大小8字节 -
00- 轮询间隔(系统决定) -
4. ⚙️ 设置配置
text
CTL: 00 09 01 00 00 00 00 00
-
激活配置1,设备进入配置状态
-
5. 🎮 HID类特定请求:设置空闲
CTL: 21 0a 00 00 00 00 00 00
-
21- 方向OUT,类特定请求,指向接口 -
0a- SET_IDLE请求 -
设置设备在无数据变化时不报告
-
定义了鼠标的数据格式:按钮状态(3位)、X/Y坐标、滚轮等
-
这是HID设备功能的具体定义
-
获取产品字符串(索引2)
-
Unicode字符串:"HP 125 AM USB O"
-
bInterfaceClass = 0x03 → HID设备
-
bInterfaceSubClass = 0x01 → 支持启动协议
-
bInterfaceProtocol = 0x02 → 鼠标
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)