USB Raw Gadget, een Linux-module voor het emuleren van USB-apparaten, is beschikbaar

Andrey Konovalov van Google ontwikkelt een nieuwe module USB Raw-gadget, toelaten emuleer USB-apparaten in de gebruikersruimte. Is in afwachting van verzoek voor opname van deze module in de belangrijkste Linux-kernel. USB Raw-gadget al toegepast bij Google om het fuzz-testen van de USB-kernelstack met behulp van tools te vereenvoudigen syzkaller.

De module voegt een nieuwe programmeerinterface toe aan het kernelsubsysteem USB-gadget en wordt ontwikkeld als alternatief voor GadgetFS. De creatie van een nieuwe API werd gedreven door de noodzaak om directe toegang op laag niveau te verkrijgen tot het USB Gadget-subsysteem vanuit de gebruikersruimte, waardoor het alle mogelijke USB-verzoeken kon verwerken (GadgetFS verwerkt sommige verzoeken onafhankelijk, zonder deze door te geven aan de gebruikersruimte) . De USB Raw Gadget wordt bestuurd via het /dev/raw-gadget-apparaat, vergelijkbaar met /dev/gadget in GadgetFS, maar de interactie gebruikt een op ioctl() gebaseerde interface in plaats van een pseudo-FS.

Naast de directe verwerking van alle USB-verzoeken door een proces in de gebruikersruimte, biedt de nieuwe interface ook de mogelijkheid om gegevens terug te sturen als reactie op een USB-verzoek (GadgetFS controleert de juistheid van USB-descriptors en filtert bepaalde antwoorden, waardoor detectie wordt voorkomen van fouten tijdens fuzz-testen van de USB-stack). Raw Gadget geeft je ook de mogelijkheid om een ​​specifiek UDC-apparaat (USB Device Controller) en stuurprogramma te selecteren om aan te koppelen, terwijl GadgetFS verbinding maakt met het eerste beschikbare UDC-apparaat. Aan verschillende UDC's worden voorspelbare namen toegewezen eindpunt om verschillende soorten gegevensuitwisselingskanalen binnen één apparaat te scheiden.

Bron: opennet.ru

Voeg een reactie