c - AVR USB 检测操作系统

标签 c avr atmel

我正在使用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/

相关文章:

gcc - 如何将lwIP原始源代码包含到我的项目中?

c - 将参数传递给另一个 .c 文件

C:输出带有凯撒密码加密中的符号,为什么? pset2 CS50

c - 使用 itoa() 函数后 printf() 调用的奇怪行为

c - 什么时候用Cygwin或MinGW编译C代码?

list - 在嵌入式系统上使用动态数据结构有多糟糕?

echo - Sim900 仅回显命令 - 无响应

c - 如何获得数字的第一个设置位的位置

gcc - 使用avr-gcc编写汇编代码

c - 如何仅更新微 Controller 中代码的某些部分或 API