USB Raw Gadget, un modul pentru Kernel care permite emularea dispozitivelor USB

Gadget USB Raw

Deja în unele ocazii aici, în blog, am vorbit despre munca depusă de Andrey Konovalov (un dezvoltator Google) în Linux, din munca sa în detectarea în timp util a defecțiunilor la driverele USB ale nucleului Linux și, de asemenea, la dispozitivele Wifi.

Acum lucrează în prezent dezvoltarea unui nou modul pentru Linux Kernel pe care l-a numit „Gadget Raw USB” care se descrie ca un utilitar care permite emularea dispozitivelor USB în spațiul utilizatorului.

Pe lângă asta menționează că o aplicație este luată în considerare pentru includerea acestui modul în nucleul principal Linux. Google Raw Gadget este deja utilizat de Google pentru a simplifica testarea fuzzy a stivei de kernel USB cu setul de instrumente syzkaller.

Inițial, foloseam GadgetFS (împreună cu modulul Dummy HCD / UDC) pentru a emula dispozitive USB pentru fuzzing, dar apoi a fost trecut la o interfață scrisă personalizată.

Stimularea pentru implementarea unei interfețe diferite a fost de a oferi acces direct și oarecum brut la stratul Gadget USB pentru spațiul utilizatorului, unde fiecare cerere USB este transmisă spațiului utilizatorului pentru un răspuns.

Despre USB Raw Gadget

Modulul se ocupă de adăugarea unei noi interfețe programare la subsistemul kernel numit „USB Gadget” și care este dezvoltat ca o alternativă la GadgetFS.

Crearea unui nou API se datorează nevoii de acces direct și de nivel scăzut către subsistemul Gadget USB din spațiul utilizatorului, permițând procesarea tuturor cererilor USB posibile (GadgetFS procesează unele solicitări de unul singur, fără a le transfera în spațiul utilizatorului).

USB Raw Gadget este controlat prin intermediul dispozitivului / dev / raw-gadget prin analogie cu / dev / gadget în GadgetFS, dar o interfață bazată pe ioctl (), în loc de pseudo-FS, este utilizată pentru interacțiune.

În plus față de procesarea directă a tuturor cererilor USB de către un proces în spațiul utilizatorului, noua interfață are și capacitatea de a returna orice date ca răspuns la o cerere USB (GadgetFS verifică corectitudinea descriptorilor USB și filtrează anumite răspunsuri, ceea ce interferează cu detectarea erorilor în timpul testului de eliminare a stivei USB).

USB Raw Gadget vă permite, de asemenea, să selectați un anumit dispozitiv UDC (Driver de dispozitiv USB) și un driver pentru conectare, în timp ce GadgetFS se conectează la primul dispozitiv UDC disponibil.

Pentru diferite UDC-uri, numele punctelor finale previzibile sunt mapate la diferite tipuri de canale de comunicații separate într-un singur dispozitiv.

În cele din urmă, dacă doriți să aflați mai multe despre aceasta, puteți verifica detaliile, precum și jurnalul modificărilor făcute în USB Raw Gadget În următorul link.

Cum se instalează modulul Raw Gadget USB în Linux?

Pentru cei care sunt interesați să poată testa acest modul pe sistemul lor, pot face acest lucru urmând instrucțiunile detaliate aici.

Pentru DCD HCD / UDC (un modul care configurează dispozitive USB virtuale și controlere gazdă care sunt conectate între ele în nucleu). Trebuie să deschidem un terminal și în el vom introduce următoarea comandă:

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

Cu aceasta vom obține folderul cu modulele pe care le vom compila executând următoarea comandă în terminal:

cd dummy_hcd

make

Și continuăm să le instalăm cu:

./insmod.sh

În cazul în care dorim să actualizăm modulul, îl facem cu:

./update.sh

Acum pentru cei care doresc să instaleze modulul kernel. Într-un terminal vom obține fișierele necesare pentru aceasta executând următoarea comandă:

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

Cu aceasta vom obține folderul cu modulele pe care le vom compila executând următoarea comandă în terminal:

cd dummy_hcd

make

Și continuăm să le instalăm cu:

./insmod.sh

În cazul în care dorim să actualizăm modulul, îl facem cu:

./update.sh

Puteți verifica lucrarea în următorul link. 


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: AB Internet Networks 2008 SL
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.