{
  "added_at": "2026-11-09",
  "category": "protocol-analysis",
  "description_en": "Explore a USB host’s supported device classes and vendor-specific behavior through programmable device emulation.",
  "description_zh": "通过可编程设备模拟，研究 USB 主机支持的设备类别及厂商特定行为。",
  "entry_url": "https://awesomerea.org/resources/umap2/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/umap2/",
  "evidence_url": "https://github.com/nccgroup/umap2/blob/a428667306f6bbc51ca02370aaf84d58f1283756/README.rst",
  "group": "tools",
  "id": "umap2",
  "json_url": "https://awesomerea.org/resources/umap2/record.json",
  "kind": "tool",
  "markdown_url": "https://awesomerea.org/resources/umap2/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/umap2/index.md",
  "name": "Umap2",
  "name_zh": "Umap2",
  "record_type": "resource",
  "relationship": "foundation",
  "requirements": [
    "Needs supported USB-device hardware such as Facedancer or Raspdancer; GadgetFS support is partial. The README installs the experimental package from source rather than PyPI.",
    "The project is alpha-stage legacy tooling. Most components claim Python 2/3 compatibility, but the kitty fuzzer requires Python 2; host-OS detection is unimplemented and the tool does not fuzz the MTP layer."
  ],
  "requirements_zh": [
    "需要 Facedancer、Raspdancer 等受支持的 USB 设备硬件；GadgetFS 仅部分支持。README 从源码安装实验性包，而非通过 PyPI。",
    "该项目是 alpha 阶段的旧工具。多数组件声称兼容 Python 2／3，但 kitty 模糊测试器需要 Python 2；主机操作系统识别尚未实现，也不直接对 MTP 层进行模糊测试。"
  ],
  "targets": [
    "protocol"
  ],
  "url": "https://github.com/nccgroup/umap2",
  "verification": "source-reviewed",
  "verified_at": "2026-10-29"
}
