读完后这个问题 https://stackoverflow.com/questions/68749/working-with-usb-devices-in-net关于使用 USB 设备,我想知道操作系统使用什么方法来区分 USB 设备类型?
例如,我可以插入 USB 鼠标,计算机“就知道”它是鼠标。如果我插入 1GB USB 驱动器,它“就知道”它是 1GB 的可移动存储。
设备使用什么类型的代码来“宣布”它是什么类型?或者操作系统正在轮询设备并获得一些标准化响应?
我如何对设备进行编程以将其自身标识为键盘?
为了构建一个通过 USB 工作的设备,您几乎肯定必须阅读以下网站提供的 USB 规范:http://www.usb.org/developers/docs/ http://www.usb.org/developers/docs/
关于您的具体问题,有与各种标准 USB 变量关联的 GET 方法。这些存储在设备的固件中并在请求时提供。例如,GET_DESCRIPTOR、GET_STATUS 等是可以发送到设备的请求类型。
USB 有自己的一套协议,要完整实现这些协议将是一项艰巨的任务,因此大多数设备制造商都会从第三方购买 USB 控制器芯片。
如果您只是对一起破解某些东西感兴趣,那么我认为该规范足以让您发送一些数据包。
我能想到的唯一其他选择可能不适合您的项目;窃听真正的键盘,让键盘进行所有复杂的地址解析和设备识别等,然后让您的设备随时将数据推送到电线上。
这是我以前在高中时构建一个用于密码嗅探的键盘黑匣子时所管理过的事情,黑匣子存储的按键然后将它们返回到电线上,就像它是键盘一样。一旦它存储了一些密码,并且我检索了它,我必须将其插入键盘,然后拔下键盘,然后将其设置为输出按键(打开一个方便的 gedit 窗口:P),否则键盘会中断传输有自己的数据。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)