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描述符、类请求代码以及供查询的消息数据等 中断输入 必须 传输从设备到主机的输入数据 中断输出 可选
本文将深入探讨SSH的内置USB HID支持及其对用户和管理员的益处。 USB HID简介 USB HID是指通过USB接口连接的人机接口设备,例如键盘、鼠标和安全密钥。...在安全领域,USB HID设备通常用于存储和处理身份验证信息,如数字签名和加密密钥。 SSH的内置USB HID支持 SSH协议内置的USB HID支持允许用户使用USB安全密钥进行身份验证。...USB HID的优势 简便性: 用户只需插入USB安全密钥,即可完成身份验证,极大简化了登录过程。 安全性: 私钥存储在USB安全密钥中,不会在网络上传输,降低了被攻击的风险。...总结 SSH的内置USB HID支持为用户和管理员提供了一个简单、安全的身份验证解决方案。...随着安全需求的不断增加,利用SSH和USB 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
0x01 背景知识 HID(Human InterfaceDevice,是计算机直接与人交互的设备,例如键盘、鼠标等)攻击的一种。...Badusb也属于HID攻击的一种,在badusb之前还有两种HID攻击分别是teensy和USB RUBBER DUCKY(usb橡皮鸭)。斗哥先介绍以下这三种类型有何不同。...USB RUBBER DUCKY(usb橡皮鸭) USB RUBBER DUCKY简称usb橡皮鸭,是最早的按键注入工具,可根据对应要求定制硬件。...0x02 Teensy制作 准备材料: Arduino Leonardo //小型单片机模拟USB。 超短micro转USB。 Arduino IDE //用于烧录代码的编译器 。...1.HID攻击需配合社会工程学进行攻击。 2.Keyboard.press 完一定要Keyboard.release 释放按键, 不然会一直按。
键帽规格 HID设备描述符 按键值 HID Usage ID table 文字速查: Key HID Usage HID Usage ID Key HID Usage HID...由于手上没有USB鼠标,对BYTE1的4-7位没有测试,对于BYTE2 BYTE3做个测试,BYTE1的4-7全为0的时候,BYTE2 BYTE3的正负表示鼠标移动方向 键盘发送给PC的数据每次8个字节
大家好,又见面了,我是你们的朋友全栈君。 3.4 Struts 2的基本流程 经过前面介绍,我们已经基本了解了Struts 2框架的MVC实现。大致上,...
device" > strings/0x409/product # Define a Keyboard mkdir -p functions/hid.usb0 echo 1 > functions/...hid.usb0/protocol echo 1 > functions/hid.usb0/subclass echo 8 > functions/hid.usb0/report_length echo...x03\\x95\\x06\\x75\\x08\\x15\\x00\\x25\\x65\\x05\\x07\\x19\\x00\\x29\\x65\\x81\\x00\\xc0 > functions/hid.usb0.../report_desc mkdir -p configs/c.1/strings/0x409 ln -s functions/hid.usb0 configs/c.1/ echo "Config 1...内容输入 HID键盘协议:ID Usage Tables 1.12 :10 Keyboard/Keypad Page (0x07) 实现字符串输入需要将目标内容解析成HID keycode,然后由HID
前面说了USB鼠标,这次趁热打铁,说一下USB键盘。依然只说如何修改,不说背后的原理。原因你懂的,涉及的知识点太多了。 会不会写成USB三部曲? 不知道 猜猜我下一步再写个啥?...2 修改usbd_hid.c文件 其次,生成工程后打开,修改usbd_hid.c文件。配置集合(USBD_HID_CfgFSDesc)要做一些改动,首先是长度: ?...之前是:HID_MOUSE_REPORT_DESC_SIZE,长度是74,现在改成: HID_KEYBOARD_REPORT_DESC_SIZE,长度63....上面提到了,之前是鼠标描述符,长度74,现在改成键盘描述符,长度63. 4 生成键盘的报告描述符 把USB鼠标的报告描述符删掉,换成USB键盘的报告描述符。...不会写USB键盘的报告描述符怎么办? USB官方提供了一个USB报告描述符自动配置的工具,打开!里面有各种例程,我们直接复制一个USB键盘的报告描述符即可。 ?
HID core driver [ 0.870736] usb 1-4: new low-speed USB device number 2 using xhci_hcd [ 1.040346...:301A.0001: input,hidraw0: USB HID v1.11 Mouse [PixArt Dell MS116 USB Optical Mouse] on usb-0000:00:14.0.../input4 [ 1.423970] hid-generic 0003:413C:2113.0002: input,hidraw1: USB HID v1.11 Keyboard [Dell.../devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5:1.1/input/input5 [ 1.480682] hid-generic 0003:413C...:2113.0003: input,hidraw2: USB HID v1.11 Device [Dell KB216 Wired Keyboard] on usb-0000:00:14.0-5/input1
USB RUBBER DUCKY和Teensy都可用于实施HID模拟攻击,其中USB RUBBER DUCKY入手简单,傻瓜式操作,但价格不菲啊;而Teensy USB性价比比较高,也可用来制作各种酷炫的...这就是为什么会有一个无处不在的USB标准HID或人机接口设备(Human Interface Device)。任何一个宣称是键盘HID的设备都能够被大多数操作系统自动的探测和接入。...Freebuf小科普 HID(Human Interface Device)人机接口设备类别是Windows最早支持的USB类别。...由其名称可以了解HID设备是计算机直接 与人交互的设备,例如键盘、鼠标和游戏杆等。不过HID设备不一定要有人机接口,只要符合HID类别规范,就都是HID设备。 ?...结合计算机对键盘的固有信任和速度超过1000字/分钟的通过脚本模拟的按键操作,传统的安全对策都能够被USB橡皮鸭轻易的绕过,即HID模拟攻击。
这段时间刚好项目有用到USB HID,需要用到HID.lib库文件,因此下载了这个WDK7.1.0版本,采用HID.LIB,以及采用USB HID的目的,就是省去了PC端的驱动程序的编写,直接采用Windows...内置的驱动程序,只需要了解USB HID通信数据包的机制即可。...当然下位机也需要写一个USB HID的USB Device驱动。...简单的说下USB HID的枚举吧: 一、枚举USB设备 通过枚举USB控制器->枚举此控制器上的USB HUB->枚举HUB的各个端口->获得设备信息。...二、枚举HID设备 HID设备是微软定义的标准人机接口规范。比如USB鼠标,USB游戏手柄等。
实战背景 在之前的关于HID攻击介绍文章中,学习了解了HID攻击,是否感觉很有趣呢?是否也想在实际中进行操作一波呢?...此外,给大家分享一个HID代码生成工具:setoolkit,上面集成了一些好用的HID攻击代码,仅供大家测试娱乐使用。
nintendo_hid_devices[] = { { HID_USB_DEVICE(USB_VENDOR_ID_NINTENDO, USB_DEVICE_ID_NINTENDO_PROCON..., { HID_USB_DEVICE(USB_VENDOR_ID_NINTENDO, USB_DEVICE_ID_NINTENDO_CHRGGRIP) }, {...HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_NINTENDO, USB_DEVICE_ID_NINTENDO_JOYCONL) }, { HID_BLUETOOTH_DEVICE...原装的左右手柄,使用的是HID_BLUETOOTH_DEVICE宏定义,表示匹配的是蓝牙HID协议,并不匹配USB HID协议。...2.1 注册input event 用hid-nintendo.c驱动作为例子进行讲解,首先看nintendo_hid_probe函数,在上一篇文章中说过,当USB HID设备注册成功后,会在内核中匹配所有
mod=viewthread&tid=110519 前两期USB实战视频教程分享了USB BULK的下位机和QT6.4下位机开发,本期视频教程,我们带来HID的免驱方式玩法,上篇依然是先分享下位机开发方式...链接:https://pan.baidu.com/s/1474JMUFeEO7mSzhCG7MCaQ 提取码:z2d8 2、USB教程资料参考 https://www.armbbs.cn/forum.php
看来你们对USB兴趣一般,所以这次我把它放在次条。感兴趣的就看一眼,没兴趣的就算了。 前面两篇文章分别说了如何实现基于STM32的USB鼠标和基于STM32的USB键盘。...这篇文章,我们试着同时在一个USB设备上,实现USB的鼠标与键盘二合一。花一份的钱,实现两样东西,它不香吗? 这里要说一下,实现鼠标键盘二合一的功能,方法有多种,这里只说其中一种。...第二,修改usbd_hid.c中的配置集合(USBD_HID_CfgFSDesc)。如下图所示,框住的地方是个宏定义。配置集合的长度,由之前的34,变为41. ? 端点个数,由1变成2..../*bInterval: Polling Interval */ 第三,修改HID描述符中,报告描述符的长度: ?...向USB主机发送数据的时候,数组的第一个元素是报告ID,后面才是键盘数据或鼠标数据。实现前面两节的例程的时候,USB键盘我们定义了一个8元素的数组,USB鼠标我们定义了一个4元素的数组。
,还包含了接口描述符,端点描述符,并且因为USB键盘注册的是一个USB HID设备,所以在配置描述符中还包含着HID描述符,如图14所示: 图14:Wireshark中查看配置描述符 使用USB Tree...├── hid.usb0 -> ../../../../usb_gadget/g1/functions/hid.usb0 │?? ├── MaxPower │??...2.1.6 HID报告描述符 当USB主机通过接口描述符得知USB设备是USB HID设备时,将会再获取HID报告描述符,在USBPcap中捕获到的HID报告描述符如图21所示: 图21:Wireshark...报告描述符来源于Linux内核示例,如图22所示: 图22:Linux USB HID gadget 驱动文档 所以下一步我们需要能顺利阅读HID报告描述符,可以参考官方文档,官方文档的优点是内容齐全,...在大致了解了如何向USB主机发送数据后,再来看看HID的报告描述符: static struct hidg_func_descriptor my_hid_data = { .subclass
3.2 RL-USB系统特色 RL-USB支持USB Host和USB Device。 RL-USB可以同时管理芯片的多个USB外设。...USB Host支持的类:HID,CDC,MSC,自定义类。 USB Device支持的类:HID,CDC,MSC,ADC和自定义类。 支持多线程和线程安全操作。...所以大家配置的stack大小要大于512字节: 3.3.3 任务栈需求 RL-USB的Device内核要占用一个任务,然后每创建一个HID类,MSC类,CDC类,ADC类或者自定义类都需要单独占用一个任务...3.3.4 RTX5定时器组 使用RL-USB Device的HID类需要使能RTX5的定时器组。...所以大家配置的stack大小要大于512字节: 3.4.3 任务栈需求 RL-USB的Host内核要占用一个任务,然后每创建一个HID类,MSC类,CDC类或者自定义类都需要单独占用一个任务。
: USB HID v1.01 Gamepad [test Nintendo Switch Pro My Test Pro Controller] on usb-0000:0b:00.0-2/input0...正版的Switch Pro手柄,不管是接入Windows系统还是Ubuntu系统,都能抓到USB相关的数据包还有HID描述符,但是主机却无法正常使用手柄。...[93719.315256] nintendo 0003:057E:2009.0004: hidraw1: USB HID v81.11 Joystick [Nintendo Co., Ltd....4 本篇总结 参考资 通过本篇文章,我们了解了如何模拟一个USB鼠标,USB游戏手柄设备,并且可以学习如何对Linux内核中的HID驱动进行修改然后输出相关调试信息。...后续文章中,将会对/dev/input/eventX事件进行深入研究,还有会对非HID的USB进行研究学习。
网上有很多调试工具,比如串口调试助手,网络调试助手,HID调试助手。这些不可否认,确实带来挺多debug便利。...这篇文章介绍如何使用C#开发一款定制化的HID工具。 首先开发之前必须要明确自己的需要,以及需要哪些前期准备工作,对于HID工具来说,前期准备莫非就是API。...首先一定是UI的设计,HID工具最重要的两个东东就是VendorID和ProductID。在HIDdevice information这一栏中出了那两个东东,其他的都是跟产品有关。...对象申请:申请HID对象,并将接收事件的委托指定事件的委托类型。 打开设备:其中的VendorID和ProductID就是UI上的VendorID和ProductID。
6 配置USB相关参数 第六,中间件(Middleware)这里,选择USB。右侧上面选择Human Interface Device Class,也就是俗称的HID。 下面要注意几个地方!...这个我可以回答,因为你选的是HID,而不是存储类设备。 为什么不是游戏手柄? 其实,你可以理解为,这是官方提供给我们的一个鼠标例程。...在usb_hid.c文件中,有一个数组:USBD_HID_CfgFSDesc,其中一行: ? 单是这个还不够,还要结合报告描述符。也在这个文件内,名字是HID_MOUSE_ReportDesc。...内容如下: __ALIGN_BEGIN static uint8_t HID_MOUSE_ReportDesc[HID_MOUSE_REPORT_DESC_SIZE] __ALIGN_END = {.../** * @brief USBD_HID_SendReport * Send HID Report * @param pdev: device instance *
领取专属 10元无门槛券
手把手带您无忧上云