USB Raw Gadget,一个用于模拟 USB 设备的 Linux 模块,现已推出

谷歌的安德烈·科诺瓦洛夫(Andrey Konovalov)正在开发一个新模块 USB Raw小工具, 允许 在用户空间模拟 USB 设备。 等待中 заявка 将此模块包含在主 Linux 内核中。 USB Raw 小工具已经 申请 Google 使用工具简化 USB 内核堆栈的模糊测试 塞兹卡勒.

该模块为内核子系统添加了新的编程接口 USB小工具 正在开发作为 GadgetFS 的替代品。 新 API 的创建是由于需要从用户空间获得对 USB Gadget 子系统的低级直接访问,从而允许其处理所有可能的 USB 请求(GadgetFS 独立处理一些请求,而不将其传递到用户空间) 。 USB Raw Gadget 通过 /dev/raw-gadget 设备进行控制,类似于 GadgetFS 中的 /dev/gadget,但交互使用基于 ioctl() 的接口而不是伪 FS。

除了用户空间中的进程直接处理所有 USB 请求外,新接口还具有返回任何数据以响应 USB 请求的功能(GadgetFS 检查 USB 描述符的有效性并过滤掉某些响应,从而防止错误)以免在 USB 堆栈模糊测试期间被检测到)。 Raw Gadget 还使您能够选择要连接的特定 UDC(USB 设备控制器)设备和驱动程序,而 GadgetFS 则连接到第一个可用的 UDC 设备。 可预测的名称分配给不同的 UDC 端点 分离一台设备内不同类型的数据交换通道。

来源: opennet.ru

添加评论