首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

USB初学(一)---USB-HID的初步认识【转】

HID是一种USB通信协议,无需安装驱动就能进行交互,在学习HID之前,先来复习一下USB协议的相关内容。 USB设备描述符-概述 当插入USB设备后,主机会向设备请求各种描述符来识别设备。...bDeviceSubClass; //usb分配的子类代码,同上,值由USB规定和分配的,HID设备此值为0 BYTE bDeviceProtocl; //USB分配的设备协议代码,同上HID...当插入USB设备后,主机会向设备请求各种描述符来识别设备。 为了把一个设备识别为HID类别,设备在定义描述符的时候必须遵守HID规范。 ?...USB HID类可采用的通信管道 所有的HID设备通过USB的控制管道(默认管道,即端点0)和中断管道与主机通信。...表1、USB HID规范定义的HID设备可用端点 管道 要求 说明 控制(端点0) 必须 传输USB描述符、类请求代码以及供查询的消息数据等 中断输入 必须 传输从设备到主机的输入数据 中断输出 可选

10.5K50

SSH与内置USB HID支持的完美结合

本文将深入探讨SSH的内置USB HID支持及其对用户和管理员的益处。 USB HID简介 USB HID是指通过USB接口连接的人机接口设备,例如键盘、鼠标和安全密钥。...在安全领域,USB HID设备通常用于存储和处理身份验证信息,如数字签名和加密密钥。 SSH的内置USB HID支持 SSH协议内置的USB HID支持允许用户使用USB安全密钥进行身份验证。...跨平台性: 无论是Windows、Linux还是macOS,SSH的内置USB HID支持都能够提供稳定、可靠的身份验证服务。...总结 SSH的内置USB HID支持为用户和管理员提供了一个简单、安全的身份验证解决方案。...随着安全需求的不断增加,利用SSH和USB HID技术的身份验证方案将会得到更广泛的应用。

22630
您找到你想要的搜索结果了吗?
是的
没有找到

如何用Wireshark捕获USB数据?

现在越来越多的电子设备采用USB接口进行通讯通讯标准也在逐步提高。那么,我们就会好奇这些设备是如何工作的?而无论你是一个硬件黑客,业余爱好者或者只是对它有一点兴趣的,USB对我们都是具有挑战性的。...本文中,我们将向大家介绍怎样通过wireshark捕获usb数据,使用的环境如下: l Wireshark 2.0.1(SVN)l Linux kernel 4.1.6 你也可以用其他版本的wireshark...这种方式下,设备只是简单的将USB用于接受和发射数据,除此之外就再没有其他通讯功能了。 HID是人性化的接口。这一类通讯适用于交互式,有这种功能的设备有:键盘,鼠标,游戏手柄和数字显示设备。...其中使用的最广的不是USB HID 就是USB Memory了。 每一个USB设备(尤其是HID或者Memory)都有一个供应商ID(Vendor Id)和产品识别码(Product Id)。...我们需要给用户足够的权限来获取linux中的usb数据流。我们可以用udev来达到我们的目的。我们需要创建一个用户组usbmon,然后把我们的账户添加到这个组中。

2.8K70

linux usb端点

前言 端点在实际的USB通讯过程种的具体作用与含义十分重要,但是有些难以理解,自己整理一些知识作为备忘。 (注:1、文中的EP表示Endpoint; 一、端点概念。...端点(Endpoint),是主机与设备之间通讯数据的接收或来源。主机与设备之间通信时最终会总用于设备上的各个端点,它是主机与设备间通信流的一个逻辑终端。...USB设备进行访问。...五、端点与管道 1、管道的概念 管道是主机软件(数据缓存区),和USB设备各各端点之间的数据传输连接,他是两者之间通信流的抽象(实际上数据传输是USB总线接口完成)。...1)、“流”指不具有USB定义格式的数据流,流通道中的数据是流的形式,也就是该数据内容不具有USB要求的结构。

9.8K30

Android OTG之USB转串口模块通讯

Android OTG之USB转串口模块通讯 微信公众号:CodingAndroid CSDN:http://blog.csdn.net/xinpengfei521 1.背景简介 我们公司开发了一款室内机平板...2.分析及实现思路 智能门锁的控制是通过使用 433射频(不了解的请百度)来进行通讯的; 平板是没法与智能门锁直接进行通讯,但是厂家提供了一个433通讯模块(支持串口); 而平板(支持OTG)是支持USB...3.主要代码实现 3.1初始化USB转串口模块 由于我们选用的是CH340模块,我们先导入ch340的 jar 包,然后在代码中检查手机/平板是否支持USB HOST模式,如果支持我们就初始化通讯时的相关参数...:波特率、数据位、停止位等,具体的参数看你们之间通讯的协议。...初始化完成之后,我们就可以打开USB进行通讯了,同时初始化完成之后我们需要开启一个读取数据的线程,这样,一旦收到数据或者相应的响应包(一般也叫ACK)我们就可以进行相应的处理了。

3.1K10

破译优利德旗舰万用表UT181A通讯协议

UT181A是优利德门下旗舰级手持数字万用表,主打数据记录(Data Logging)功能,支持USB联机通讯。基本评测可以看我以前发的文章。...对破译其它联机通讯的设备也有借鉴意义。 可行性分析 UT181A使用了Silicon Labs HID-to-UART接口模块CP2110. 在操作系统里呈现为一个HID设备,这样的好处是不用装驱动。...从USBHID,再到UART,实际上是隔了两层,需要层层剥壳,还是有点繁琐。Free USB Analyzer的HID解码,是解为键盘/鼠标数据的;也许它的收费版可以解码为UART。 ?...图:用Free USB Analyzer截获UT181A通讯 不过我还有另一条完全不同的思路,也许会更简单。 API Hook 十几年前,我用过这种方法对SCSI设备的通讯进行劫获。...树莓派 在Debian系的Linux上(Ubuntu或树莓派),CP2110都被识别为HID设备,不需要安装驱动即可使用。

1.7K80

原创 Paper | USB设备开发:从入门到实践指南(一)

系统的USB gadget驱动,有需要的可以自行查看该部分的源码,位于Linux内核的:linux/drivers/usb/dwc2和linux/drivers/usb/gadget目录下。...18所示: 图18:Linux源码中关于bInterfaceProtocol值的宏定义 2.1.4 端点描述符 端点描述符的结构体定义为于:linux/include/uapi/linux/usb/ch9...2.1.6 HID报告描述符 当USB主机通过接口描述符得知USB设备是USB HID设备时,将会再获取HID报告描述符,在USBPcap中捕获到的HID报告描述符如图21所示: 图21:Wireshark...报告描述符来源于Linux内核示例,如图22所示: 图22:Linux USB HID gadget 驱动文档 所以下一步我们需要能顺利阅读HID报告描述符,可以参考官方文档,官方文档的优点是内容齐全,...通过修改接口描述符字段和HID报告描述符字段,来模拟一个鼠标。 研究一下手柄,讲道理手柄也是使用HID协议,但是Linux的代码里没看到相关定义。 研究非HID协议,比如U盘,网卡,打印机这些。

26800

原创 Paper | USB设备开发:从入门到实践指南(三)

nintendo_hid_devices[] = { { HID_USB_DEVICE(USB_VENDOR_ID_NINTENDO, USB_DEVICE_ID_NINTENDO_PROCON...HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_NINTENDO, USB_DEVICE_ID_NINTENDO_JOYCONL) }, { HID_BLUETOOTH_DEVICE...原装的左右手柄,使用的是HID_BLUETOOTH_DEVICE宏定义,表示匹配的是蓝牙HID协议,并不匹配USB HID协议。...从上面的内容可以知道,如果想要开发Linux下的Switch Pro手柄的客户端,只需要操作eventX文件,并且仔细阅读nintendo_hid_event函数,了解传输数据的数据结构就能实现。...Linux驱动中还未实现,从joydev_event可以看出,Linux的手柄驱动仅支持坐标系和按键功能,所以把支持加速度传感器的手柄给禁用了。

10010

原创 Paper | USB设备开发:从入门到实践指南(二)

所有环节准备就绪了(这次USB主机设备选择的是Linux主机),接下来就可以运行脚本,然后可以在Linux主机上看到以下信息: $ sudo dmesg [91788.951749] usb 3-2:...并且在Linux的源码中发现Swithc手柄的相关驱动:drivers/hid/hid-nintendo.c。 综合上述因素,选择了Switch手柄作为研究的切入点,但最终却发现选错了切入点。...3 hid_nintendo,usbhid,hid_generic 发现ubuntu成功适配到了hid_nintendo驱动,但是却报了一堆的错误,猜测是这些错误导致手柄驱动注册失败,在Linux下能被正常识别的手柄应该像上面的案例一样...另外因为测试使用的Linux是装在Windows上的虚拟机,vmware在Windows上安装了一个USB驱动,来让主机接入虚拟机当中的,可能是同样的BUG导致在Linux系统上也无法正常识别到手柄相关驱动...4 本篇总结 参考资 通过本篇文章,我们了解了如何模拟一个USB鼠标,USB游戏手柄设备,并且可以学习如何对Linux内核中的HID驱动进行修改然后输出相关调试信息。

8210

BadUSB的前世今生:USB RUBBER DUCKY和Teensy USB

USB RUBBER DUCKY和Teensy都可用于实施HID模拟攻击,其中USB RUBBER DUCKY入手简单,傻瓜式操作,但价格不菲啊;而Teensy USB性价比比较高,也可用来制作各种酷炫的...这就是为什么会有一个无处不在的USB标准HID或人机接口设备(Human Interface Device)。任何一个宣称是键盘HID的设备都能够被大多数操作系统自动的探测和接入。...Freebuf小科普 HID(Human Interface Device)人机接口设备类别是Windows最早支持的USB类别。...不管是Windows、Linux、Mac还是Android(当然是不算触摸屏了),各个系统平台所遵守的USB标准都是一致的。所以USB RUBBER DUCKY自然而然就具有了跨平台的特点。...主要特点: ①可以变身为任意类型的设备 ②AVR处理器,16 MHz ③单按钮编程 ④易于使用的Teensy Loader应用程序 ⑤免费软件开发工具 ⑥兼容Mac OS X,Linux和Windows

3.4K100

python监听usb鼠标插入

在刚把电脑系统转为linux之后,一直觉得需要通过命令:sudo rmmod psmouse来完成禁用触摸板的操作实在是太不方便了,于是就想着用一个python脚本来完成该操作。...于是在网上找到了pyUSB这个python库,可以轻松的完成对usb设备的操作。...我的整个思路是这样的,首先开机启动一个python程序,不断运行,不停的检查usb设备中是否有usb鼠标的身影,如果有,那么执行上面的那个禁用触摸板的命令,如果没有,就启用触摸板。...关于判断插入usb鼠标的代码已经完成,关于usb设备的必备知识: USB设备分类 USB从设备的分类可以从USB设备接口描述符(Standard Interface Descriptor)对应的的...2-communication device:通讯设备,如电话,moden等等。3-HID:人机交互设备,如键盘,鼠标等。

3.3K20

如何使用usbsas安全地读取不受信任的USB大容量存储设备

该工具基于Rust语言开发,并且支持在GNU/Linux上运行。 功能介绍 1、从不受信任的USB设备读取文件(不使用uas、USB_storage和文件系统等内核模块)。...usbsas-analyzer-server $ cargo build --release -p usbsas-tools $ cargo build --release --manifest-path=usbsas-hid.../hid-user/Cargo.toml $ cargo build --release --manifest-path=usbsas-hid/hid-dealer/Cargo.toml 工具使用...内核模式 usbsas最大的一个优势就是在用户空间中运行,因此Linux内核不能有usb_storage和uas模块。...在未设置CONFIG_USB_STORAGE和CONFIG_ USB_UAS的情况下编译内核,或者至少阻止加载此模块,因为如果存在,它们将在插入USB设备时自动加载: $ cat

1.7K20
领券