Достъпен 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