Достъпен е USB Raw Gadget, Linux модул за еймуляция на USB устройства

Андрей Коновалов от компания Google разработва нов модул USB Raw Gadget, позволяващ емулира USB устройства в потребителското пространство. В момента е в процес на разглеждане заявка за включването на този модул в основния състав на ядрото на Linux. USB Raw Gadget вече се прилага в компания Google, за да опрости fuzzing тестването на USB стека на ядрото с помощта на инструменти syzkaller.

Модулът добавя нов програмния интерфейс в подсистемата на ядрото USB Gadget и се развива като алтернатива на GadgetFS. Създаването на нов API е продиктувано от необходимостта да се получи нискоуровнев достъп и директен достъп до подсистемата USB Gadget от потребителското пространство, позволяващо обработката на всички възможни USB заявки (GadgetFS самостоятелно обработва някои заявки, без да ги предава на потребителското пространство). Управлението на USB Raw Gadget става чрез устройството /dev/raw-gadget аналогично на /dev/gadget в GadgetFS, но за взаимодействие се използва интерфейс на базата на ioctl(), а не псевдо-ФС.

Освен директната обработка на всички USB заявки от процеса в потребителското пространство, новият интерфейс също така се отличава със способността да връща произволни данни в отговор на USB заявка (GadgetFS извършва проверка на валидността на USB дескрипторите и филтрира определени отговори, което пречи на откритията на грешки при fuzzing тестването на USB стека). Raw Gadget също дава възможност за избор на конкретно устройство UDC (USB Device Controller) и драйвер за свързване, докато GadgetFS се свързва с първото налично устройство UDC. За различни UDC се назначават предсказуеми имена endpoint за разделяне на различни типове канали за обмен на данни в рамките на едно устройство.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster