# usb-rea：USB 设备协议推断命令行工具与 MCP 服务器

> Python 命令行工具与 stdio MCP 服务器，用于推断只配有厂商应用的 USB 设备所用的协议。使用者在厂商应用中逐项操作时，它通过 usbmon 或 USBPcap 抓取流量，为每次操作记录标签，按操作比对数据包并推断消息格式：固定字节、滚动计数器、带缩放的 8 至 32 位数值、查找表、打包位字段，以及求和、异或或 CRC 校验。它还能解码设备回复、带会话令牌的握手和发往设备屏幕的图像流，在报告中把每个推断出的字段关联到 Wireshark 帧号，并生成 pyusb 驱动和 Wireshark Lua 解析器。

- 类型：集成
- 目标：协议
- 类别：独立 MCP 集成
- 关联：独立智能体集成
- 来源复核于：2026-11-02
- 收录于：2026-11-04
- 原始资源：<https://github.com/emirmrkaljevic/usb-rea>
- 一手来源：<https://github.com/emirmrkaljevic/usb-rea/blob/3b77ccbe3b2c87e344a507937ac3c4a1b2a35eb1/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/usb-rea/>
- 记录 JSON：<https://awesomerea.org/resources/usb-rea/record.json>
- 英文版：[English](https://awesomerea.org/resources/usb-rea/index.md)

## 使用条件与局限

- **前提条件：**需要 Python 3.10+，依赖 pyusb 与 MCP SDK；0.7.7 版（2026-11-01 发布）已发布到 PyPI。实时抓包需要 Linux 的 usbmon 加 dumpcap 或 tshark，或 Windows 上的 USBPcap；离线分析读取 pcap 或 pcapng 文件，其中各项操作需带时间戳标记，或按顺序列出且每次点击之间留有停顿。设备及其厂商应用由使用者自备，README 称该工具只分析使用者自有设备的流量。
- **局限：**README 将项目标为 alpha 阶段，并逐项列出功能局限，其中包括模式只能占一个字节、32 位读数不按有符号数处理、握手令牌必须原样复制，以及图像流至少需要三帧。通过 replay 命令或 MCP 工具向硬件发送数据包需要明确确认。
- **测试证据：**CI 在 Python 3.10、3.12 和 3.13 上运行 pytest，其中包括用 tshark 检查生成的解析器。docs/VALIDATION.md 使用的基准包括合成设备、依据 liquidctl 的 Kraken X 与 Hydro H100i Platinum 驱动及 rivalcfg 的 Rival 100 驱动合成的抓包，以及按需下载的两个 Wireshark 示例抓包；仓库还保存了一份用户分享的 ASUS TUF Gaming LC III LCD 抓包，已裁剪并将图像数据清零。模拟 USB 设备测试和真实硬件案例仍是路线图上的未完成项。
- **许可：**依 LICENSE 与 pyproject.toml 采用 MIT 许可。
- **署名：**README 把名称解释为“Reverse Engineer any USB gadget”（逆向任意 USB 设备）。

## 一手来源

1. <https://github.com/emirmrkaljevic/usb-rea/blob/3b77ccbe3b2c87e344a507937ac3c4a1b2a35eb1/README.md>
2. <https://github.com/emirmrkaljevic/usb-rea/blob/3b77ccbe3b2c87e344a507937ac3c4a1b2a35eb1/docs/VALIDATION.md>
3. <https://github.com/emirmrkaljevic/usb-rea/blob/3b77ccbe3b2c87e344a507937ac3c4a1b2a35eb1/docs/case-study-hydro-platinum.md>
4. <https://github.com/emirmrkaljevic/usb-rea/blob/3b77ccbe3b2c87e344a507937ac3c4a1b2a35eb1/tests/data/SOURCES.md>
5. <https://github.com/emirmrkaljevic/usb-rea/blob/3b77ccbe3b2c87e344a507937ac3c4a1b2a35eb1/.github/workflows/ci.yml>
6. <https://github.com/emirmrkaljevic/usb-rea/blob/3b77ccbe3b2c87e344a507937ac3c4a1b2a35eb1/src/usb_rea/capture.py>
7. <https://github.com/emirmrkaljevic/usb-rea/blob/3b77ccbe3b2c87e344a507937ac3c4a1b2a35eb1/src/usb_rea/replay.py>
8. <https://github.com/emirmrkaljevic/usb-rea/blob/3b77ccbe3b2c87e344a507937ac3c4a1b2a35eb1/pyproject.toml>
9. <https://github.com/emirmrkaljevic/usb-rea/blob/3b77ccbe3b2c87e344a507937ac3c4a1b2a35eb1/LICENSE>
10. <https://github.com/emirmrkaljevic/usb-rea/releases/tag/v0.7.7>
11. <https://pypi.org/project/usb-rea/0.7.7/>

## 同分区更多条目：智能体与 MCP

- [IDA NO MCP：面向 AI 编程工具的 IDA 反编译导出工具](https://awesomerea.org/zh/resources/ida-no-mcp/index.md) · 集成
- [ida-mcp-rs 无界面 IDA Pro MCP 服务器](https://awesomerea.org/zh/resources/ida-mcp-rs/index.md) · 集成
- [ida-multi-mcp 多实例 IDA Pro MCP 服务器](https://awesomerea.org/zh/resources/ida-multi-mcp/index.md) · 集成
- [x64dbg MCP（x64dbgMCP）调试器 MCP 服务器](https://awesomerea.org/zh/resources/x64dbgmcp/index.md) · 集成
- [IDASQL IDA Pro 数据库 SQL 接口](https://awesomerea.org/zh/resources/idasql/index.md) · 集成
- [Exoproc Windows 进程插桩与智能体 MCP 接口](https://awesomerea.org/zh/resources/exoproc/index.md) · 集成

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
