拙网论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 193|回复: 1

【USB包分析系列】Wireshark

[复制链接]

949

主题

1001

帖子

3736

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3736
发表于 2020-4-1 20:30:17 | 显示全部楼层 |阅读模式
Wireshark Version 3.2.2 (v3.2.2-0-ga3efece3d640)

usb.addr = "1.11.0",其中1表示总线ID、11表示设备地址、0表示设备的端口0(即控制端口)

usb.device_address == 12

这样下面显示的就全是设备地址为12的数据了。



usb.device_address==17 &&usb.src=="1.17.0"

usb.device_address==17 &&usb.dst=="1.17.1"

https://blog.csdn.net/shiailan/article/details/97305163
https://www.amobbs.com/thread-5698355-1-1.html?_dsign=6c372e94
https://blog.csdn.net/haart/article/details/98757658
https://blog.csdn.net/zhoutaopower/article/details/82469665
https://blog.csdn.net/yhl_sophia/article/details/81503046
https://blog.csdn.net/zjy900507/article/details/81280089

报文太多可以通过一些过滤条件,筛选出我们需要的报文。在过滤器中输入usb.addr==“1.5.0”,即可只显示我们想要的报文(因为我想保留的usb设备的地址是5,所以addr等于1.5.0,其中0表示端点0)。




参考文献:Device Class Definition for Human Interface Devices(HID)

用于描述HID功能特征的有三个值:Class   SubClass   Interfaces

Subclass Code Description
   0    No Subclass
   1    Boot Interface Subclass
   2 - 255    Reserved


Protocol Code Description
  0    None
  1    Keyboard
  2    Mouse
  3 - 255   Reserved

The bInterfaceProtocol member of an Interface descriptor only has meaning if the bInterfaceSubClass
member declares that the device supports a boot interface, otherwise it is 0.



HID设备的特性

HID设备与HID驱动只能通过控制传输或者中断传输来连接,且端点0在USB设备中通常是作为控制管道。

在HID中,一次传输就是一个报告。

HID 支持在运行时忽略报表中某些字段的功能,这通过定义报告符长度大于实际生成的报告符长度来实现

HID设备通过HID描述符、报告描述符和物理描述符进行描述,其中物理描述符是可选的




由图可看出,HID Descriptor是与Interface Descriptor并行的描述符,其Class、SubClass和Protocol属性都是在接口描述符中配置,如下:

bInterfaceClass ——  3(HID Class)
bInterfaceSubclass  ——   0(Have no subclass) / 1(Boot Device)
bInterfaceProtocol  ——   0(Have no Protocol, only valid when Subclass is Boot Device)
   同时,Device Descriptor 中的bDeviceClass需配置成0x00



HID Descriptor的组成:

bLength     bDescriptorType   bcdHID   bCountryCode   bNumDescriptors  bDescriptorType   bDescriptorLength...



HID Report Descriptor

    如果报告描述符中有出现Report ID,则表示有多个Report,否则就只有一个Input、Output和Feature结构体存在,她们即代表所有的设备数据。

     报告描述符中由不同的item组成,一个Item是关于设备的一块信息,所有Item都有1字节的卷标,卷标里包含Tag,type,size

    相应的HID Driver里面有一个Item 解析器,对报告符中的Item进行解析,Item解析器一般会解析到Main Item、Pop Item和Push Item并进行相应的操作。



Report Descriptor中的Item解读

     Item由三种类型:Main(主项目)、Global(全局项目)、Local(区域项目),后两者主要用于修饰Main Item

     Local Item只适用于列下的第一个主项目,而Global Item则适用于其下方的所有主项目

    1、 Main Item的主要数据格式

input:设备操作输入到主机的数据格式,该数据格式会形成一个输入报告。获取输入报告的方式有两种:1、用Control pipe以get report(input)来传输;2、用Interrupt pipe在每一周期固定更新输入报告给主机
Output:主机输出到装置的数据格式,形成一个输出报告,以Control pipe用set report(output)将报告送到设备,通常不建议用Interrupt pipe.
Feature:主机送到设备的组态所需数据的数据格式,特征报告只能用Control pipe以get report(feature)和set report(feature)来取得和送出。
Collection:Input、Output和Feature的集合,如Mouse、Keyboard等(代码类型有:Physical、Application、Logical、Report、Named Array、Usage Switch、Usage Modify、Reserved)
End Collection:Collection集合结束
    2、Global Item的主要数据格式(不完全)

Usage Page
Report Count
Report Size
    3、Local Item的主要数据格式(不完全)

Usage
    Usages(用途)是报告符中的一部分,主要用于确认设备的具体操作信息,一个报告符中可以含有多个Usage tags。

     Usage和Control的关系是一一对应的   

     Usage是一个32位的无符号整型,高16位定义用途页(Usage Page),低16位定义用途ID(Usage ID)

Usage Mininum

Usage Maximum



一般的Items 数据格式分两个部分:前缀和数据

例如:USAGE_PAGE(0x05,0x01)  前者表示前缀,后者表示数据

           0x01表示用途页为通用桌面设备

            0x05——00000101

                   D0~D1表示这个前缀后面跟的数据长度

                   D2~D3表示前缀的类型,0-main  1-global  2-local   3-reserved

                   D4~D7表示前缀的tag,一般有input、output、feature、collection、end collection



   HID规范中指出:HID为发送输入报告必须拥有一个中断输入端点。中断IN端点使HID能够在非可预期的时间内向主机发送信息,主机驱动程序将使用中断事务来周期性的轮询设备以获得数据。

   因此,对于设备来说,其发送端点(对于主机来说是输入端点)必须为中断端点,这是由HID的类驱动程序所决定的,主机的类驱动程序不会读取HID接口的其它类型的端点的数据。这样设计也是为了保证数据传输的带宽。
    而对于HID接口的输出端点(对于设备来说是接收端点),可以使用其它的类型,比如批量端点。



工具:
USB 协会提供了一个HID 描述符编辑工具称作HID Descriptor Tool,其执行程序为DT.exe。这个工具软件可以在USB 网站上取得。虽然称作HID 描述符工具,事实上,仅提供编撰报告描述符之用。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

949

主题

1001

帖子

3736

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3736
 楼主| 发表于 2020-4-2 14:58:38 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|抱朴守拙BBS

GMT+8, 2025-5-26 03:29 , Processed in 0.187564 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表