Dostępny USB Raw Gadget, moduł Linux do emulacji urządzeń USB.

Andrzej Konowałow z firmy Google rozwija nowy moduł USB Raw Gadget, umożliwiające emulować urządzenia USB w przestrzeni użytkownika. Jest w trakcie przeglądu wniosek o dodanie tego modułu do głównego składu jądra Linux. USB Raw Gadget już jest stosowane w firmie Google w celu uproszczenia testów fuzzingowych stosu USB jądra za pomocą narzędzia syzkaller.

Moduł dodaje nowy interfejs programowania do podsystemu jądra USB Gadget i rozwija się jako alternatywa dla GadgetFS. Utworzenie nowego API jest podyktowane koniecznością uzyskania niskopoziomowego i bezpośredniego dostępu do podsystemu USB Gadget z przestrzeni użytkownika, co pozwala na obsługiwanie wszystkich możliwych żądań USB (GadgetFS obsługuje niektóre żądania samodzielnie, nie przekazując ich do przestrzeni użytkownika). Zarządzanie USB Raw Gadget odbywa się przez urządzenie /dev/raw-gadget na podobieństwo /dev/gadget w GadgetFS, ale do interakcji wykorzystywany jest interfejs oparty na ioctl(), a nie pseudo-FS.

Oprócz bezpośredniego przetwarzania wszystkich żądań USB przez proces w przestrzeni użytkownika, nowy interfejs wyróżnia się również możliwością zwracania dowolnych danych w odpowiedzi na żądanie USB (GadgetFS przeprowadza weryfikację poprawności opisów USB i filtruje określone odpowiedzi, co utrudnia identyfikację błędów podczas testów fuzzingowych stosu USB). Raw Gadget daje również możliwość wyboru konkretnego urządzenia UDC (USB Device Controller) i sterownika do podłączenia, podczas gdy GadgetFS łączy się z pierwszym dostępnym urządzeniem UDC. Różnym UDC przypisywane są przewidywalne nazwy endpoint w celu rozdzielenia różnych typów kanałów wymiany danych w ramach jednego urządzenia.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster