EzUSB
EzUSB
一个简单的USB流量

点开第一个流量发现抓捕到payload,第三个字节为09.

表示USB Device向HOST发送了信息,“Leftover Capture Data” 就是 USBPcap 抓到的 EP 数据(payload)
根据HID 键盘标准表:
以下kecode对应的就是usage ID
| Keycode | 键 | ASCII |
|---|---|---|
| 0x04 | a | 61 |
| 0x05 | b | 62 |
| 0x06 | c | 63 |
| 0x07 | d | 64 |
| 0x08 | e | 65 |
| 0x09 | f | 66 |
| 0x0A | g | 67 |
| 0x0B | h | 68 |
| 0x0C | i | 69 |
| 0x0D | j | 6A |
| 0x0E | k | 6B |
| 0x0F | l | 6C |
| 0x10 | m | 6D |
| 0x11 | n | 6E |
| 0x12 | o | 6F |
| 0x13 | p | 70 |
| 0x14 | q | 71 |
| 0x15 | r | 72 |
| 0x16 | s | 73 |
| 0x17 | t | 74 |
| 0x18 | u | 75 |
| 0x19 | v | 76 |
| 0x1A | w | 77 |
| 0x1B | x | 78 |
| 0x1C | y | 79 |
| 0x1D | z | 7A |
那么09对应的就是键盘上的 f
其他的键对应的usage ID的表如下:
数字:
| Keycode | 键 | 未按 Shift | 按下 Shift |
|---|---|---|---|
| 0x1E | 1 | 1 |
! |
| 0x1F | 2 | 2 |
@ |
| 0x20 | 3 | 3 |
# |
| 0x21 | 4 | 4 |
$ |
| 0x22 | 5 | 5 |
% |
| 0x23 | 6 | 6 |
^ |
| 0x24 | 7 | 7 |
& |
| 0x25 | 8 | 8 |
* |
| 0x26 | 9 | 9 |
( |
| 0x27 | 0 | 0 |
) |
控制键
| Keycode | 功能 |
|---|---|
| 0x28 | Enter |
| 0x29 | ESC |
| 0x2A | Backspace |
| 0x2B | Tab |
| 0x2C | Space |
符号键
| Keycode | 未按 Shift | 按下 Shift |
|---|---|---|
| 0x2D | - |
_ |
| 0x2E | = |
+ |
| 0x2F | [ |
{ |
| 0x30 | ] |
} |
| 0x31 | \ |
` |
| 0x32 | Non-US # |
~(因键盘而异) |
| 0x33 | ; |
: |
| 0x34 | ' |
" |
| 0x35 | ``` | ~ |
| 0x36 | , |
< |
| 0x37 | . |
> |
| 0x38 | / |
? |
功能键
| Keycode | 键 |
|---|---|
| 0x3A | F1 |
| 0x3B | F2 |
| 0x3C | F3 |
| 0x3D | F4 |
| 0x3E | F5 |
| 0x3F | F6 |
| 0x40 | F7 |
| 0x41 | F8 |
| 0x42 | F9 |
| 0x43 | F10 |
| 0x44 | F11 |
| 0x45 | F12 |
导航键
| Keycode | 键 |
|---|---|
| 0x4A | Home |
| 0x4B | PageUp |
| 0x4C | Delete |
| 0x4D | End |
| 0x4E | PageDown |
| 0x4F | Right Arrow |
| 0x50 | Left Arrow |
| 0x51 | Down Arrow |
| 0x52 | Up Arrow |
小键盘
| Keycode | 键 |
|---|---|
| 0x53 | Num Lock |
| 0x54 | / |
| 0x55 | * |
| 0x56 | - |
| 0x57 | + |
| 0x58 | Enter |
| 0x59 | 1 |
| 0x5A | 2 |
| 0x5B | 3 |
| 0x5C | 4 |
| 0x5D | 5 |
| 0x5E | 6 |
| 0x5F | 7 |
| 0x60 | 8 |
| 0x61 | 9 |
| 0x62 | 0 |
| 0x63 | . |
回到那个leftover capture data
1 | |
在 HID Boot Report 格式下,对数据 00 00 09 00 00 00 00 00 各字段的含义解析如下:
- 字节 0(Modifier):
00:表示无修饰键被按下,即没有按下 Ctrl、Shift、Alt、GUI 等修饰键。 - 字节 1(Reserved):
00:该字节为保留字节,在 HID Boot Report 格式中不做具体使用。 - 字节 2(Keycode #1):
09:代表第一个被按下的键的 HID usage ID,也就是第一个按键的键码。 - 字节 3 - 7(Keycode #2–#6):
00 00 00 00 00:表示除了第一个按键外,没有其他非修饰键被按下。
我们再看一个:

Leftover Capture Data: 20002f0000000000 是一组字节数据,按照常见的 HID 报告格式,可对其各字节含义进行如下解析:
第 1 字节: 20
将 20 转换为二进制是 0010 0000,这表示第 5 位被置 1,对应的是 Right Shift 键被按下。根据 HID 协议中修饰键位的定义,该字节用于表示修饰键的状态,所以此数据表明当前按下了 Right Shift 键 1。
第 2 字节: 00
通常该字节为保留字节, 00 表示此保留位无特殊含义。
第 3 字节: 2f
参考脚本中的映射关系, 0x2F 对应的字符是 [,所以该字节表示当前按下的按键对应的扫描码为 [ 。
第 4 - 8 字节: 00000000
这几个字节通常用于表示其他按键, 00 表示当前没有其他额外的按键被按下。
综合起来,Leftover Capture Data: 20002f0000000000 表示当前按下了 Right Shift 键和 [ 键。
Right Shift 键和 [ 键这个组合键的对应的输入就是 {
那么整个的就可以得到所有键入信息.
最后可以使用 青少年CTF在线工具箱
- Title: EzUSB
- Author: HuAmI
- Created at : 2025-11-30 12:12:12
- Updated at : 2025-11-30 16:23:37
- Link: https://redefine.ohevan.com/2025/11/30/EzUSB/
- License: This work is licensed under CC BY-NC-SA 4.0.
Comments