首页 文章

使用usbpcap / wireshark解码在GATT流量上捕获的HID

提问于
浏览
1

我正在尝试对使用GATT上的USB HID与主机通信的BLE设备进行逆向工程 . 我可以使用usbpcap捕获流量,但是当将结果加载到wireshark时,数据包似乎包含表示通过空中传输的数据的字节(即设备描述符),但是数据包不会根据USBHID协议进行解码 . 一切都被解码为USB,只包含URB_INTERRUPT_IN,URB_BULK输入/输出和URB_CONTROL_OUT,而我正在寻找像GET DESCRIPTOR请求/响应设备之类的东西 . 我可以采取额外的步骤来正确地格式化和解析数据包吗?

1 回答

  • 1

    使用中有一些特征 . 您有一个包含报告 Map 的特征 . 这通常只在设备配对时读取一次 . 此映射包含稍后通过报告通知发送的数据的布局/规范 . 这主要是将USB规范中的规范“复制粘贴”到BLE中 .

    现在,当您运行HID-over-GATT并且您的蓝牙控制器通过USB与主机通信时,您将在usbpcap中看到的是包含L2CAP数据的ACL数据,其中包含GATT数据,而GATT数据又包含HID的报告数据 . 然后主机上的蓝牙堆栈将对此进行解码并将其提供给内核的HID解析器 .

    我建议你把你的HID-over-GATT设备连接到Android手机,然后看看HCI snoop日志会发生什么,这可以在Wireshark中解码(但它不会解析你的HID数据) .

相关问题