USB Raw Gadget, et Linux-modul til at emulere USB-enheder, er tilgængeligt

Andrey Konovalov fra Google er ved at udvikle et nyt modul USB rå gadget, tillader emulere USB-enheder i brugerrummet. Afventer anmodning for inkludering af dette modul i Linux-hovedkernen. USB Raw Gadget allerede anvendt hos Google for at forenkle fuzz-test af USB-kernestakken ved hjælp af værktøjer syzkaller.

Modulet tilføjer en ny programmeringsgrænseflade til kerneundersystemet USB-gadget og udvikles som et alternativ til GadgetFS. Oprettelsen af ​​en ny API blev drevet af behovet for at opnå direkte adgang på lavt niveau til USB-gadget-undersystemet fra brugerpladsen, hvilket gør det muligt for det at behandle alle mulige USB-anmodninger (GadgetFS behandler nogle anmodninger uafhængigt uden at videregive det til brugerområdet) . USB Raw-gadget'en styres gennem /dev/raw-gadget-enheden, svarende til /dev/gadget i GadgetFS, men interaktionen bruger en ioctl()-baseret grænseflade snarere end en pseudo-FS.

Udover direkte behandling af alle USB-anmodninger af en proces i brugerrummet, har den nye grænseflade også mulighed for at returnere alle data som svar på en USB-anmodning (GadgetFS kontrollerer korrektheden af ​​USB-beskrivelser og filtrerer visse svar, hvilket forhindrer detektionen af fejl under fuzz-test af USB-stakken). Raw Gadget giver dig også mulighed for at vælge en specifik UDC (USB Device Controller) enhed og driver at tilslutte til, mens GadgetFS tilsluttes til den første tilgængelige UDC-enhed. Forudsigelige navne tildeles forskellige UDC'er endpoint at adskille forskellige typer dataudvekslingskanaler inden for én enhed.

Kilde: opennet.ru

Tilføj en kommentar