André Konovalov a Google-ból egy új modult fejleszt , USB-eszközök emulálása felhasználói térben. Jelenleg elbírálás alatt áll a modul Linux kernelbe való integrálására. Az USB Raw Gadget már a Google-nál a USB kernel stack fuzzing tesztelésének megkönnyítése érdekében készített eszközkészlettel .
A modul új programozási interfészt ad a kernel alrendszeréhez, és alternatívaként fejlődik a GadgetFS-hez képest. Az új API létrehozásának szükségessége az alacsony szintű és közvetlen hozzáférés megszerzésével indokolt a felhasználói tér USB Gadget alrendszeréhez, amely lehetővé teszi minden lehetséges USB-kérés feldolgozását (a GadgetFS egyes kéréseket önállóan kezel, nem átadva azokat a felhasználói térnek). Az USB Raw Gadget kezelése a /dev/raw-gadget eszközön keresztül történik, hasonlóan a /dev/gadget-hez a GadgetFS-ben, de az interakcióhoz ioctl()-alapú interfészt használnak, nem pedig pszeudo-fájlrendszert.
A felhasználói térben lévő folyamat közvetlen USB-kérések feldolgozásán kívül az új interfész lehetőséget ad bármilyen adat visszaadására az USB-kérésre (a GadgetFS ellenőrzi az USB-deszkriptorok érvényességét és szűri egyes válaszokat, ami megnehezíti a hibák észlelését az USB stack fuzzing tesztelése során). A Raw Gadget lehetővé teszi egy adott UDC (USB Device Controller) kiválasztását és egy illesztőprogramot az összekapcsoláshoz, míg a GadgetFS az első elérhető UDC-hez csatlakozik. Különböző UDC-k számára előre meghatározott neveket rendelnek az egyes adatátviteli csatornatípusok elkülönítésére egyetlen eszközön belül.
Forrás: opennet.ru
