USB Raw Gadget, un mòdul per al nucli que permet emular dispositius USB

Gadget USB Raw

Ja en algunes ocasions aquí al blog hem parlat sobre els treballs realitzats per part de Andrey Konovalov (Un desenvolupador de Google) en Linux, des del seu treball en la detecció oportuna de fallades en els controladors USB de el nucli de Linux i també en dispositius Wifi.

Ara en aquests moments ell es troba treballant en el desenvolupament d'un nou mòdul per al nucli de Linux el qual ha nomenat com "USB Raw gadget" el qual descriu com una utilitat que permet emular dispositius USB a l'espai de l'usuari.

A més de que esmenta que s'està considerant una aplicació per a la inclusió d'aquest mòdul en el nucli de Linux. Per la seva banda Google Raw gadget ja està sent utilitzat per Google per simplificar les proves difuses de la pila de el nucli USB amb el conjunt d'eines syzkaller.

Inicialment estava fent servir GadgetFS (juntament amb el mòdul Dummy HCD / UDC) per a realitzar l'emulació de dispositius USB per fuzzing, però després es va canviar a una nterfaz escrita personalitzada.

L'incentiu per implementar una interfície diferent era proporcionar un accés directe i una mica en brut a la capa gadget USB per a l'espai d'usuari, on cada sol·licitud USB es passa a l'espai d'usuari per obtenir una resposta.

Sobre USB Raw gadget

El mòdul s'encarrega d'agregar una nova interfície de programació a el subsistema de el nucli anomenada "USB gadget" i que s'està desenvolupant com una alternativa a GadgetFS.

La creació d'una nova API es deu a la necessitat d'obtenir accés directe i de baix nivell a l'subsistema gadget USB des de l'espai de l'usuari, el que permet processar totes les sol·licituds USB possibles (GadgetFS processa algunes sol·licituds per si sol, sense transferir-lo a l'espai de l'usuari).

USB Raw gadget es controla a través del dispositiu / dev / raw-gadget per analogia amb / dev / gadget en GadgetFS, però s'utilitza una interfície basada en ioctl (), en lloc d'un pseudo-FS, per a la interacció.

A més de l'processament directe de totes les sol·licituds d'USB per un procés en l'espai de l'usuari, la nova interfície també té la capacitat de retornar qualsevol dada en resposta a una sol·licitud d'USB (GadgetFS verifica l'exactitud dels descriptors d'USB i filtra certes respostes, el que interfereix amb la detecció d'errors durant la prova d'esborrat de la pila USB).

USB Raw gadget també permet seleccionar un dispositiu UDC específic (Controlador USB) i un controlador per connectar, mentre que GadgetFS es connecta a el primer dispositiu UDC disponible.

Per diferents UDC, els noms de punts finals predictibles s'assignen a diferents tipus de canals de comunicació separats dins d'un sol dispositiu.

Finalment, si vols conèixer més a l'respecte, pots consultar els detalls, així com el registre dels canvis realitzats en USB Raw gadget en el següent enllaç.

Com instal·lar el mòdul USB Raw gadget en Linux?

Per als que estiguin interessats en poder provar aquest mòdul en el sistema, podran fer-ho seguint les instruccions que es detallen aquí.

Per Dummy HCD / UDC (Un mòdul que configura dispositius USB virtuals i controladors de sistema principal que estan connectats entre si dins de el nucli). Hem obrir una terminal i en ella anem a teclejar la següent comanda:

svn checkout https://github.com/xairy/raw-gadget/trunk/dummy_hcd

Amb això obtindrem la carpeta amb els mòduls els quals anem a compilar executant a la terminal la següent comanda:

cd dummy_hcd

make

I procedim a instal·lar-los amb:

./insmod.sh

En cas de voler actualitzar el mòdul ho fem amb:

./update.sh

Ara per als que vulguin instal·lar el mòdul de el nucli. En una terminal anem a obtenir els arxius necessaris per a això executant la següent comanda:

svn checkout https://github.com/xairy/raw-gadget/trunk/raw_gadget

Amb això obtindrem la carpeta amb els mòduls els quals anem a compilar executant a la terminal la següent comanda:

cd dummy_hcd

make

I procedim a instal·lar-los amb:

./insmod.sh

En cas de voler actualitzar el mòdul ho fem amb:

./update.sh

Pots consultar el treball en el següent enllaç. 


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: AB Internet Networks 2008 SL
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.