我很少运行 Windows,但有一些 Windows 软件我想看看。这不需要安全“加密狗”,但如果没有特定的 USB 连接外围设备(几乎一无所知),就无法启动。
我的软件是 Brother PE-Design Plus,它为他们的绣花机准备 .pes 文件。硬件描述为“04f9:2100 Brother Industries, Ltd Card Reader Writer”。
这对我来说根本不是“关键任务”,因为我正在查看的机器可以使用 USB“拇指驱动器”进行配置,但较旧的机器/必须/通过这些编写器之一进行编程。
作家是稀缺和昂贵的。相同类型卡的旧版本连接到串行端口,但我拥有的软件似乎是特定于 USB 的。该卡在环氧树脂 blob 下有一个芯片,怀疑是 512Kbyte 闪存设备。
安装后,Brother 软件包含一个 CardIO.dll 文件,该文件对正确的 USB vid:pid 数字进行编码,并包含与卡相关的调试消息和混乱的 C++ 入口点名称,包括 ?ChkCardWriterConnected@CCardIO@@QAE?AW4CIOError@@ HPAEPAH@Z
该文件中没有任何内容表明预期的设备类型(即 USB 串行与 HID 等),但我对 Windows 驱动程序内部的了解有限。
我在想我也许可以编写一个 Teensy(我想我有一个 3.5)来模拟各种 USB 设备类型,看看我是否至少可以计算出 Brother 软件所期望的设备类型。否则我知道例如https://hackaday.com/2019/07/02/hands-on-greatfet-is-an-embedded-tool-that-does-it-all/和 Facedancer 项目,但是我认为像这样的大多数事情更倾向于分析可用的硬件而不是一些看不见的东西。
Windows 上的 Wireshark 什么也没显示。我还没有尝试在 Qemu(等)下设置 Windows 并查看是否可以在硬件级别跟踪任何内容,但我怀疑检测是基于热插拔事件,该事件告诉 Windows 它将积极响应存在询问。
任何想法将不胜感激。
几天后:看起来好像有任何带有正确 vid:pid doublet 的 USB 设备足以加载 Brother 读卡器驱动程序,但不能运行应用程序(并且在 Wireshark 中没有任何有用的显示)。我一直在使用设置为 rawhid 设备的 Teensy 3.5,我不确定设备类型是否重要,因为我怀疑我遇到了操作系统缓存问题,这些问题使水变得浑浊。