集成

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

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

目标
协议
类别
独立 MCP 集成
关联
独立智能体集成
来源复核于

使用条件与局限

  • 前提条件:需要 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 设备),未提及 REA 项目。

关于此条目

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

报告条目过时 建议修正翻译

一手来源

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

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

智能体与 MCP分区全部 66 项资源