首页
学习
活动
专区
圈层
工具
发布

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描述符、类请求代码以及供查询的消息数据等 中断输入 必须 传输从设备到主机的输入数据 中断输出 可选

16.6K61

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支持为用户和管理员提供了一个简单、安全的身份验证解决方案。

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

    信创系统支持 USB HID 设备的两种方案

    相较于传统的串口通信设备,HID 设备具有传输速率更高、标准化支持更强、可热插拔以及免驱动的优势。随着越来越多的外设逐步转向 HID 标准,这里探讨一下 HID 设备在 UOS 系统中的支持方案。...2. libusb 简介:通用 USB 访问库,HID 是 USB 设备的一类。...特点: 可以访问 HID 以及非 HID USB 设备; 更底层,需要自己解析 HID 报告; 更灵活,可以实现特定控制请求。...对于这种情况,有两种方案: 开发一个 service 服务,在后台运行,服务以 root 运行,所以有权限访问 HID 设备。应用程序和服务器程序进行通信,应用程序访问 HID 设备均通过服务程序。...服务程序 crash 后有重启机制,避免由于服务程序 crash 导致应用程序无法和 HID 设备通信; 配置 udev 规则,让特定的设备对其它组有访问权限。

    23310

    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设备插入主机后,会有以下活动: 供电 复位

    2.5K10

    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设备接收的过程。

    1.4K20

    深入理解 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设备接收的过程。

    2K20

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

    可以和FPGA搭配使用的USB3.0 PHY芯片 通过之前的介绍USB3.0通信-USB3.0协议介绍>,我们大致了解到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通信方面应用。

    5.3K42

    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

    2K11

    Android USB口通信开发基本流程,USB传输的4种模式

    刷卡器 Android开发中USB串口通信开发主要涉及到以下几个类及相应的方法:  1 ,UsbManager:负责管理USB设备的类,你可以在相应代码中通过以下方法获得 //获取UsbManager...false.  3) openDevice(UsbDevice device)  打开USB设备,以便向此USB设备发送和接受数据,返回一个关于此USB设备的连接。 ...则为写数据,USB_DIR_IN, 则为读数据  我们开发使用的是usb主机模式,即:安卓平板作为主机,usb外设作为从机进行数据通信。...2.打开设备 接下来,我们需要打开刚刚搜索到的usb设备,我们可以将平板与usb外设之间的连接想象成一个通道,只有把通道的门打开后,两边才能进行通信。...转串口通信的基本流程,有些地方写的不是很全面,比如接收usb外设数据的方法应该还有别的,不足之处欢迎指正。

    1.9K10

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

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

    4.4K40

    原创 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

    3K00

    真车转向拨杆拆车件+Arduino实现欧卡2游戏内模拟对应功能——第1部分:前期调研

    USB HID 描述符USB HID 协议简介HID 协议允许设备(例如键盘、鼠标、游戏控制器)通过统一的协议与电脑通信。...对于例如 Arduino Uno 这样的板子,默认使用 ATmega328P,仅通过 USB 转串口芯片(如 ATmega16U2)进行通信,所以默认并不支持作为 HID 设备发送自定义描述符。...虽然 D1 UNO R3 本身不能直接充当 USB HID 设备(例如游戏手柄或键盘),但它能通过 USB 转串口(或WiFi串口通信)与电脑建立串口连接,然后由 SimHub 读取串口数据,根据预设的规则来模拟按键事件...无 USB 控制器无法模拟 HID 报告或识别为“键盘设备”UNO R3 的 USB 接口是 CH340G / ATmega16U2仅做串口通信,不具备 HID 功能❗️那为什么网上那段代码能编译?...✅ 实际可用 GPIO 数量分析CH552G 有 16 个引脚,但需要保留一些特殊用途:功能占用引脚说明USB 通信(HID)P3.2、P3.3必须保留用于 USB D- 和 D+电源/地/RSTVCC

    1.5K10

    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.8K00

    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

    1.2K20
    领券