我正在使用Atmel AVR set of libraries对USB大容量存储设备进行编程仅使用主机 HID 驱动程序。我想根据将设备插入Windows计算机与Linux(请说基于Debian)的机器的机器是否插入Windows机器。我搜索了 API,但没有找到任何似乎具有此功能的东西。
是否有特定功能可以让我检测所连接的操作系统?或者,我可以键入一组特定的行为来至少推断出连接的操作系统吗?
最佳答案
根据 USB-Spec 没有标准方法来获取主机系统的类型。
通常您不希望您的设备做出依赖于操作系统的 react 。 通常,您希望您的设备符合规范,以便任何具有正确 USB 实现的设备都可以与其连接。
否则就会有很多不同的操作系统需要考虑。例如数十种 Linux 风格。
然而,一些安全研究人员提出了(或者他们在野外发现过这样的事情吗?)badusb 设备的攻击场景,这些设备通过某些时间和协议(protocol)的唯一性来检测主机操作系统,以触发稍微集中的攻击。</p>
所以你可以朝这个方向搜索。
但这种方法更像是通过查看脚印来识别特定的人。该人可以随时更新鞋子...
关于c - AVR USB 检测操作系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31165217/