首页
学习
活动
专区
工具
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(Secure Shell)是一个为网络服务提供安全通信通道的协议,广泛应用于远程服务器管理、文件传输等多种场景。为了确保通信的安全性,SSH协议提供了多种身份验证机制。...本文将深入探讨SSH的内置USB HID支持及其对用户和管理员的益处。 USB HID简介 USB HID是指通过USB接口连接的人机接口设备,例如键盘、鼠标和安全密钥。...在安全领域,USB HID设备通常用于存储和处理身份验证信息,如数字签名和加密密钥。 SSH的内置USB HID支持 SSH协议内置的USB HID支持允许用户使用USB安全密钥进行身份验证。...通过将USB安全密钥插入计算机,用户可以利用密钥中存储的私钥完成SSH身份验证,而无需记住复杂的密码或通过其他方式验证身份。SSH会通过USB接口与安全密钥通信,完成密钥交换和身份验证过程。...总结 SSH的内置USB HID支持为用户和管理员提供了一个简单、安全的身份验证解决方案。

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

USB通信基础知识

1 USB系统组成 主机:提供USB接口和接口管理功能的硬件、软件、固件的复合体。...协议 6.1 USB基本规范 USB在逻辑上被分为三层:信号层、协议层、数据传输层。...PID) 奇数据包(PID) 握手 (handshake) 确认(ack) 不确认(nack) 停止(stall) 0x4B 0x5A 0x1E 接收器无错的接收数据包 接收设备忙不能接收数据 设备出错通信不上...isochronous transfers):周期性,持续性的传输,用于传输与时效相关的信息,并且在数据中保存时间戳的信息 中断传输(interrput transfers):周期性,低频率,允许有限延迟的通信...大容量数据传输(bulk transfers):非周期性,大容量突发数据的通信,数据可以占用任意带宽,并容忍延迟 6.6 USB枚举过程 当一个USB设备插入主机后,会有以下活动: 供电 复位

2K10

USB通信协议深入理解

USB数据在【主机软件】与【USB设备特定的端点】间被传输。【主机软件】与【USB设备特定的端点】间的关联叫做【pipes】。一个USB设备可以有多个管道(pipes)。 1....包(Packet) 包(Packet)是USB系统中信息传输的基本单元,所有数据都是经过打包后在总线上传输的。数据在 USB总线上的传输以包为单位,包只能在帧内传输。...高速USB 总线的帧周期为125us,全速以及低速 USB 总线的帧周期为 1ms。帧的起始由一个特定的包(SOF 包)表示,帧尾为 EOF。...注意:虽然高速USB总线和全速/低速USB总线的帧周期不一样,但是SOF包中帧编号的增加速度是一样的,因为在高速USB系统中,SOF包中帧编号实际上取得是计数器的高11位,最低三位作为微帧编号没有使用,...输出(OUT)事务处理 输出事务处理:表示USB主机把一个数据包输出到总线上的某个USB设备接收的过程。

91120

深入理解 USB 通信协议

USB数据在【主机软件】与【USB设备特定的端点】间被传输。【主机软件】与【USB设备特定的端点】间的关联叫做【pipes】。一个USB设备可以有多个管道(pipes)。 2....包(Packet) 包(Packet)是USB系统中信息传输的基本单元,所有数据都是经过打包后在总线上传输的。数据在 USB总线上的传输以包为单位,包只能在帧内传输。...高速USB 总线的帧周期为125us,全速以及低速 USB 总线的帧周期为 1ms。帧的起始由一个特定的包(SOF 包)表示,帧尾为 EOF。...注意:虽然高速USB总线和全速/低速USB总线的帧周期不一样,但是SOF包中帧编号的增加速度是一样的,因为在高速USB系统中,SOF包中帧编号实际上取得是计数器的高11位,最低三位作为微帧编号没有使用,...输出(OUT)事务处理 输出事务处理:表示USB主机把一个数据包输出到总线上的某个USB设备接收的过程。

1.1K20

FPGA和USB3.0通信-USB3.0 PHY介绍

可以和FPGA搭配使用的USB3.0 PHY芯片 通过之前的介绍,我们大致了解到USB3.0整个协议异常复杂,就连物理层都需要SerDes(FPGA实现的情况...USB3.0 PHY简介 首先我们需要了解PHY具体完成哪些工作以及我利用FPGA能 实现哪些工作才能实现USB通信。...LEVEL0 通信连接示意图 升级的UTMI+接口 ULPI(UTMI+ Low Pin Interface) 通信连接示意图 以上三种接口都是和USB2.0 PHY通信的接口(如果还不理解的话,这三种接口类似网口中媒体接口...举例如下:我用FPGA实现USB2.0通信,我使用逻辑实现cntroller+外挂USB PHY的方式,那么我的接口基本使用ULPI接口(降低pin的数量); USB3316 芯片逻辑框图 (来源:芯片数据手册...,这里在多说一句,目前市场上为了方便开发,USB3.0芯片内部会放置一个单片机,主要还是方便扩展接口,以方便芯片不单单只在USB3.0通信方面应用。

2.8K30

Android USB转串口通信开发基本流程

好久没有写文章了,年前公司新开了一个项目,是和usb转串口通信相关的,需求是用安卓平板通过usb转接后与好几个外设进行通信,一直忙到最近,才慢慢闲下来,趁着这个周末不忙,记录下usb转串口通信开发的基本流程...我们开发使用的是usb主机模式,即:安卓平板作为主机,usb外设作为从机进行数据通信。...2.打开设备 接下来,我们需要打开刚刚搜索到的usb设备,我们可以将平板与usb外设之间的连接想象成一个通道,只有把通道的门打开后,两边才能进行通信。...3.数据传输 到这里,我们已经可以与usb外设进行数据传输了,首先来看怎么向usb设备发送数据。...转串口通信的基本流程,有些地方写的不是很全面,比如接收usb外设数据的方法应该还有别的,不足之处欢迎指正。

3.3K40

IOT安全 :HID

如今,使用USB设备进行攻击的案例也屡见不鲜。本文将介绍常见的利用USB设备进行钓鱼攻击的手段。...--- 什么是HID攻击 HID 全称为 Human Interface Device,直译为人类接口设备,也被称为人体学输入设备,是指与人类直接交互的计算机设备,而pc端上的”HID”一般指的是USB-HID...而HID攻击就是攻击者将USB设备模拟成为键盘,让电脑识别成为键盘,再进行脚本模拟按键进行攻击。...Badusb也属于HID攻击的一种,在badusb之前还有两种HID攻击,分别是USB RUBBER DUCKY(usb橡皮鸭)和Teensy....HID攻击需配合社会工程学才能进行攻击,因此除了设备上的防护能力要增强,个人的安全意识也需要增强。 --- 本文作者 r0fus0d

1.6K11

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

2.1 通过流量再学习理解USB协议 这里提一个前置的知识点:USB是主从结构,一定会有一个为USB主机,一个为USB设备,并且通信永远都是由主机先发起的。...z的值表示的是端点号(Endpoint),我觉得有点像一个程序的文件描述符(fd),USB主机和设备间就是通过端点号来进行通信的,当USB设备还未在主机上注册时,默认使用0端点号来进行通信。...bInterfaceProtocol定义了接口协议为键盘,这样就会让键盘的HID驱动来处理后续通信。...(上图中定义的通信方式为中断传输),通信数据包的最大尺寸(8)字节。...2.1.6.1 解析HID配置描述符 我们先查看key-mime-pi项目的通信代码,树莓派如何告诉主机,哪些按键被控制了,相关代码如下所示: def send(hid_path, control_keys

25100

RL-USB教程开工制作,各种常用USB通信协议和上位机案例统统整出来,更新至第6章(2020-10-19)

mod=viewthread&tid=99710 说明: 1、各种的CDC,HID,MSC,虚拟网卡,WinUSB,Audio等,还有复合USB设备,Host外挂各种USB设备统统做个案例。...并且制作HID,BULK等通信机制的上位机例子。 2、之所以使用RL-USB作为USB协议栈的首个教程,主要是简单易用,各家M内核芯片都可以方便的移植。...3、基本上掌握了这个,大部分项目需要的USB通信我们基本都可以方便的实现。并且RL-USB的设备源码已经通过DAPLINK开源了出来,大家要查看也十分方便。...4、最后还有一点考虑是H7-TOOL的RTX5全家桶版和H7-TOOL的DAPLINK调试器配套文档要使用(V5,V6和V7开发板也会配套DAPLINK例子,含HID和WinUSB两种方式),所以把RTX5...例子: V7-4001_RTX5 Kernal Template.7z (2.79MB) V7-4002_RL-USB Template.7z (2.88MB) V7-4003_RL-USB

94720

DIY一个专属HID注入设备吧

但是由于价格原因,大多数研究人员首选Teensy USB开发板并基于Arduino IDE实现HID注入攻击。...电脑主机是通过设备描述符识别USB设备类型的,并在规定的端点建立与设备的通信关系,因此要做的第一步是要配置好设备的描述符。...键码不同于Ascii码,可参加MightyPork整理的usb_hid_keys.h[2]和我的例程Evilusb_Keycode.h[3]。...模拟U盘的另一个重要功能就是与主机通信,配合无线通信模块可以实现远程文件传输和Shell的建立。...六、总结与展望 本例完成了基于STM32F103C8T6模拟键盘和U盘实现HID注入攻击的BadUSB设备软硬件原型设计,接下来将在三个方面做出改进:一是增加SD卡卡槽扩展U盘容量,方便文件窃取;二是通过添加无线通信模块建立远程

1.3K00

如何用Wireshark捕获USB数据?

USB有不同的规格,以下是使用USB的三种方式: l USB UART l USB HID l USB Memory UART或者Universal Asynchronous Receiver/Transmitter...这种方式下,设备只是简单的将USB用于接受和发射数据,除此之外就再没有其他通讯功能了。 HID是人性化的接口。这一类通讯适用于交互式,有这种功能的设备有:键盘,鼠标,游戏手柄和数字显示设备。...其中使用的最广的不是USB HID 就是USB Memory了。 每一个USB设备(尤其是HID或者Memory)都有一个供应商ID(Vendor Id)和产品识别码(Product Id)。...如下图: 上图是连接在我电脑上的USB设备列表,通过lsusb查看命令。 例如说,我有一个无线鼠标Logitech。它是属于HID设备。...通过这些,我们可以了解到usb设备与主机之间的通信过程和工作原理,也许我们就可以把这些知识用到逆向工程中,得到一些东西。好了,就到这里!!! ‍‍

2.8K70

物理入侵之你真的敢用的我的U盘么?

00X2 什么是HID USB-HID 是Human Interface Device的缩写,由其名称可以了解HID设备是直接与人交互的设备,例如键盘、鼠标与游戏杆等。...有了此信息,计算机就可以与设备进行通信。驱动程序是硬件厂商根据操作系统编写的配置文件,可以说没有驱动程序,计算机中的硬件就无法工作。...但是HID有一个特性:就是操作系统自带了HID类的驱动程序,而用户无需去开发很麻烦的驱动程序,只要直接使用API调用即可完成通信。...所以很多简单的USB设备,喜欢枚举成HID设备,这样就可以不用安装驱动而直接使用。所以HID设备≠安装驱动。...大意是:TEENSY的是一个基于USB完整的单片机系统(设备),占用很少的空间(资源),能够实现 许多类型的项目。 所有编程是通过USB

1.5K30

浅谈总线通信机制----USB学习指南与总结

(3)缺省态 USB在被配置之前,通过地址0与主机进行通信。例如: ?...(4)地址态 经过了配置,USB设备复位后,就可以按主机分配给它的唯一地址来与主机通信,这种状态就是地址态;例如: ?...枚举将是整个USB学习的重中之重,枚举就是主机从设备读取各种描述符信息,这样主机就可以根据这些信息加载合适的的驱动程序,从而知道是什么类型的设备,如何进行通信等等。...而主机要获取设备相关的信息就必须要发起请求,请求主要有:USB标准请求(有一定的格式组成)、HID类请求等。 ? ? ?...说到描述符,USB有标准描述符,分别是:设备描述符、配置描述符、接口描述符、端点描述符、字符串描述符 (可选),每个设备都必须要支持标准描述符,还有HID描述符,报告描述符,物理描述符等。 ? ?

1.1K20
领券