2015-07-01 129 views
0

我正在使用Atmel AVR set of libraries编程USB海量存储设备,仅使用主机HID驱动程序。我希望根据设备是否插入Windows机器和Linux(我们只是说基于Debian的机器)而具有一些特定的行为。我搜索了API并没有发现任何似乎有此功能的东西。AVR USB检测操作系统

是否有一个特定的功能,允许我检测连接的操作系统?或者,是否有一组特定的行为可以输入,至少可以推断出连接的操作系统?

+1

你是在主机端开发自己的驱动程序,还是依靠系统标准驱动程序(例如HID)?使用自己的驱动程序,您可以将OS信息合并到协议中,但通常情况下无法猜测主机的操作系统。但是我们可以理论化(例如http://ix.cs.uoregon.edu/~butler/pubs/sadfe11.pdf) – Archie

+0

@Archie使用HID,感谢您的帮助我澄清。该资源可能非常有用 - 现在正在研究它 – KDEx

回答

1

根据USB规范没有标准的方法来获得主机系统的类型。

而且通常你不希望你的设备反应os的依赖。 通常情况下,您希望您的设备符合规范,以便任何具有正确USB实施的设备都可以与其连接。

否则会有这么多不同的操作系统的考虑。例如Linux的口味。

然而,一些安全研究人员提出了(或者他们是否发现了这样的事情)?badusb设备通过某些时间和协议检测主机操作系统的唯一性来触发轻微集中的攻击。

所以你可以在这个方向搜索。

但是,这种方法更像是通过看他的脚印识别具体的人。这个人可以随时更新鞋子...