Bus Hound抓包分析,USB设备识别为HID(转)

Device:17.0  ——  表示ID为17的设备的0号端点

Phase:阶段列

Cmd.phase.ofs:命令数.阶段数.每个阶段中字节的偏移量

CTL:表示8字节的USB控制传输的Setup包

bmRequestType  ——  80:数据方向从USB到PC;标准的请求;USB设备接收

bRequest  ——  06:表示接下来发送的数据时GET_DESCRIPTOR(主控器读取USB描述符)

wValue  ——  00 01:从偏移地址0开始读取设备描述符

wIndex  ——  00 00:一般用于说明端点号或者接口标识

wLength  ——  12 00:下一阶段发送数据的长度为18个字节(小端格式理解)

First  【IN】:数据传输(USB设备到PC)

bLength  ——  12:数据字节长度为18

bDescriptorType  ——  01:设备描述符

bcdUSB  ——  00 02:USB设备2.0协议
bDeviceClass  ——  ef:USB_DEVICE_CLASS_MISCELLANEOUS(杂项)

bDeviceSubClass  ——  02

bDeviceProtocol  ——  01

bMaxPacketSize0  ——  40:最大包长64个字节

idVendor  ——  1Fc9

idProduct  ——  100B

bcdDevice  ——  0100

iManufacturer  ——  01

iProduct ——  02

iSerialNumber  ——  03

bNumConfigurations  ——  01

Second 【IN】

bLength —— 09:该描述符结构体的大小为9个字节

bDescriptorType ——02:配置描述符

wTotalLength  ——29 00:配置返回的所有数据大小为41个字节(其实是指明下一次传输的数据字节大小)

bNumInterfaces  ——01:此配置的接口数量

bConfigurationValue  ——01:此配置所需要的参数值

iConfiguration  ——00:描述该配置的字符串的索引值

bmAttributes  ——C0:供电模式的选择USB_CONFIG_SELF_POWERED(自供电)

bMaxPower  ——32:设备从总线提取的最大的电流100mA

Third 【IN】(前面数据和第二个IN一样,从32后开始分析)

bLength  ——  09:接口描述符结构体大小

bDescriptorType  —— 04:USB_INTERFACE_DESCRIPTOR_TYPE

bInterfaceNumber  ——  01:该接口的编号

bAlternateSetting   ——   00:备用的接口描述符编号

bNumEndpoints  —— 02:该接口使用的端点数,不包括端点0

bInterfaceClass  ——  03:接口类型为USB_DEVICE_CLASS_HUMAN_INTERFACE(HID)

bInterfaceSubClass  ——  00:接口子类型

bInterfaceProtocol  ——  00:接口遵循的协议

iInterface  ——  04:描述该接口的字符串索引值

HID Class Descriptor

bLength  ——09:该HID描述符的大小

bDescriptorType —— 21:HID_HID_DESCRIPTOR_TYPE

bcdHID  —— 00 01:HID类协议版本号,为1.1

bCountryCode  —— 00:固件的国家地区代码

bNumDescriptors  —— 01:下级描述符的个数

bDescriptorType  —— 22:下级描述符为HID_REPORT_DESCRIPTOR_TYPE(报告描述符)

wDescriptorLength  —— 2C 00:下级描述符的长度

Endpoint HID Interrupt In

bLength  ——  07

bDescriptorType  ——  05:端点描述符

bEndpointAddress  ——  84:HID_EP_IN Address

bmAttributes  ——  03:USB_ENDPOINT_TYPE_INTERRUPT

wMaxPacketSize  ——  04

bInterval  ——  00 20:间隔为16ms

Endpoint HID Interrupt Out

bLength  ——  07

bDescriptorType  ——  05:端点描述符

bEndpointAddress  ——  04:HID_EP_OUT Address

bmAttributes  ——  03:USB_ENDPOINT_TYPE_INTERRUPT

wMaxPacketSize  ——  04

bInterval  ——  00 20:间隔为16ms

CTL:表示8字节的USB控制传输的Setup包

bmRequestType  —— 00:数据方向从PC到USB;标准的请求;USB设备接收

bRequest  ——  09:表示接下来的请求是SET_CONFIGURATION (设置配置)

wValue  ——  00 01:从偏移地址0开始读取设备描述符

wIndex  ——  00 00:一般用于说明端点号或者接口标识

wLength  ——  00 00

CTL:表示8字节的USB控制传输的Setup包

bmRequestType  —— 21:数据方向从PC到USB;Class类的请求;接口接收

bRequest  ——  0a:表示接下来的请求是GET_INTERFACE (获取接口)

wValue  ——  00 00:从偏移地址0开始读取设备描述符

wIndex  ——  01 00:接口标识为01

wLength  ——  00 00

CTL:表示8字节的USB控制传输的Setup包

bmRequestType  —— 81:数据方向从USB到PC;标准请求;接口接收

bRequest  ——  06:表示接下来的请求是获取描述符

wValue  ——  00 22:从偏移地址00 22开始读取描述符

wIndex  ——  01 00:接口标识为01

wLength  ——  6C 00:数据长度为108个字节

Fourth 【IN】——HID Report Descriptor

具体参考usbdesc.c内的设置

分析整个通信过程则可知其传输事务过程如下:

1、Setup事务,传输Setup数据格式包,告诉设备接下要获取USB描述符,但不知道描述符的类型,并指明了接下来的数据传输方向和传输的数据大小

2、IN传输事务,表示设备传输数据到PC,传输中指明了这次传输的数据大小,类型是设备描述符以及其他相关的设备信息

3、Setup事务,改变了读取描述符的偏移地址和传输数据的大小

4、N传输事务,但描述符类型是配置描述符,指明了接口数量、供电模式、最大电流等参数

5、Setup事务,再次获取配置描述符,仅仅改变了获取的传输数据的大小为41个字节,即下一次准备接收41个字节

6、IN事务,返回配置描述符时连并接口、端点描述符都一起返回,向PC指明了这是个HID接口以及其使用的端点数

7、Setup事务,设置配置

8、Setup事务,设置接口闲置状态

9、Setup事务,获取描述符

10、IN事务,设备发送HID报告描述符给PC
---------------------
作者:yhl_sophia
来源:CSDN
原文:https://blog.csdn.net/yhl_sophia/article/details/81875382
版权声明:本文为博主原创文章,转载请附上博文链接!

原文地址:https://www.cnblogs.com/linxw-blog/p/10529505.html

时间: 2024-11-08 22:03:07

Bus Hound抓包分析,USB设备识别为HID(转)的相关文章

数据抓包分析基础

数据包分析基础 数据包分析 数据包嗅探或协议分析:指捕获和解析网络上在线传输数据的过程,为了能更好的了解网络上正在发生的事情. 目的 软件:Tcpdump.Omnipeek.Wireshark 监听网络线路 集线器嗅探方式 流经集线器的所有网络数据包都会被发送到每一个集线器连接的端口. 交换机嗅探方式 端口镜像.集线器输出.使用网络分流器.ARP欺骗方式等四种方式 端口镜像 设置连接的交换机的端口镜像功能,将交换机其他一个或多个端口的经过的数据包复制一份到嗅探器连接的端口上. 集线器输出 目标设

qxdm,qpst,qcat抓包分析VoLTE SIP协商包

QXDM,QPST和QCAT是Qualcomm高通公司针对高通芯片的抓包分析工具. QXDM抓包分析,QPST与手机com口连接,QCAT用来分析抓包产生的isf文件(log). 使用版本: QXDM-3.14.594 QPST-2.7.411 QCAT.06.30.30.00 首先,手机连接电脑usb以后,查看设备管理器,com口需要安装高通驱动. 打开QXDM,Options->communications,添加端口: 查看QPST,可以看到端口状态是enable,QXDM上显示端口连接.

Wireshark和TcpDump抓包分析对比

常见的抓包分析工具有:微软的Network Monitor和Message Analyzer.Sniff.WSExplorer.SpyNet.iptools.WinNetCap.WinSock Expert.Wireshark和linux的tcpdump等工具 今天,做了实验测试就对比分析其中的两款,其他的大家可以百度谷歌测试一哈^_^ 1. Wireshark与tcpdump介绍 Wireshark是一个网络协议检测工具,支持Windows平台和Unix平台,我一般只在Windows平台下使用

抓包分析TCP的三次握手和四次握手

问题描写叙述: 在上一篇<怎样对Android设备进行抓包>中提到了,server的开发者须要我bug重现然后提供抓包给他们分析.所以抓好包自己也试着分析了一下.发现里面全是一些TCP协议和HTTP协议.所以要想进行抓包分析,必须先了解TCP的原理.这里介绍了TCP的建立连接的三次握手和断开连接的四次握手. 问题分析: 1.TCP建立连接的三次握手 1.1前言:介绍三次握手之前,先介绍TCP层的几个FLAGS字段,这个字段有例如以下的几种标示 SYN表示建立连接, FIN表示关闭连接. ACK

Wireshark抓包分析TCP 3次握手、4次挥手过程

Wireshark简介 更多有关Wireshark的教程.软件下载等,请见:http://www.52im.net/thread-259-1-1.html,本文只作简要介绍. 1Wireshark 是什么? Wireshark 是最著名的网络通讯抓包分析工具.功能十分强大,可以截取各种网络封包,显示网络封包的详细信息. 你可以把网络包分析工具当成是一种用来测量有什么东西从网线上进出的测量工具,就好像使电工用来测量进入电信的电量的电度表一样(当然比那个更高级).过去的此类工具要么是过于昂贵,要么是

tcpdump抓包分析具体解释

說實在的,對於 tcpdump 這個軟體來說,你甚至能够說這個軟體其實就是個駭客軟體, 因為他不但能够分析封包的流向,連封包的內容也能够進行『監聽』, 假设你使用的傳輸資料是明碼的話,不得了,在 router 上面就可能被人家監聽走了! 非常可怕吶!所以,我們也要來瞭解一下這個軟體啊!(註:這個 tcpdump 必須使用 root 的身份執行) [[email protected] ~]# tcpdump [-nn] [-i 介面] [-w 儲存檔名] [-c 次數] [-Ae] [-qX] [

云计算之路-阿里云上:Wireshark抓包分析一个耗时20秒的请求

这篇博文分享的是我们针对一个耗时20秒的请求,用Wireshark进行抓包分析的过程. 请求的流程是这样的:客户端浏览器 -> SLB(负载均衡) -> ECS(云服务器) -> SLB -> 客户端浏览器. 下面是分析的过程: 1. 启动Wireshark,针对内网网卡进行抓包. 2. 在IIS日志中找出要分析的请求(借助Log Parser Studio) 通过c-ip(Client IP Address)可以获知SLB的内网IP,在分析Wireshar抓包时需要依据这个IP进

Python 爬虫知识点 - 淘宝商品检索结果抓包分析(续二)

一.URL分析 通过对“Python机器学习”结果抓包分析,有两个无规律的参数:_ksTS和callback.通过构建如下URL可以获得目标关键词的检索结果,如下所示: https://s.taobao.com/search?data-key=s&data-value=44&ajax=true&_ksTS=1482325509866_2527&callback=jsonp2528&q=Python机器学习&imgfile=&js=1&stat

使用Fiddler对手机进行抓包分析

场景:一个html页面,安卓app使用webview来显示,但是显示效果不是预期的.于是自己写了一个基本webview的demo,使用webview的loadurl方法请求这个html页面.可以正确显示,但是客户端组抓包说我请求的地址不一样,让我自己抓包分析. 分析:app在请求这个页面时请求附加了字符串及cookie等信息. 解决方法:使用Fiddler抓包,抓包过程网上有很多教程,注意一点有的手机可能设置代理时不能设置全局代理,可以使用ProxyDroid来设置全局代理. Fiddler抓包