USB Raw Gadget, modul za jezgru koji omogućava emulaciju USB uređaja

USB Raw uređaj

Već u nekim prilikama ovdje na blogu razgovarali smo o radu Andreja Konovalova (Googleov programer) u Linuxu, iz svog rada na pravovremenom otkrivanju kvarova na USB upravljačkim programima Linux kernela, kao i na Wifi uređajima.

Sada trenutno radi na tome razvoj novog modula za Linux kernel koji je nazvao "USB sirovi uređaj" koji se opisuje kao uslužni program koji omogućava emulaciju USB uređaja u korisničkom prostoru.

pored toga spominje da se razmatra aplikacija za uključivanje ovog modula u glavni Linux kernel. Google Raw Gadget već koristi Google za pojednostavljivanje nejasnih testova snopa USB kernela pomoću syzkaller alata.

U početku sam koristio GadgetFS (zajedno sa Dummy HCD / UDC modulom) za emulaciju USB uređaja za fuzziranje, ali onda je prebačen na prilagođeni pisani interfejs.

Poticaj za implementaciju drugačijeg sučelja bio je pružanje izravnog i pomalo sirovog pristupa sloju USB gadgeta za korisnički prostor, gdje se svaki USB zahtjev prosljeđuje u korisnički prostor radi odgovora.

O USB Raw uređaju

Modul se brine za dodavanje novog sučelja programiranje na podsustav jezgra pod nazivom "USB Gadget" i koji se razvija kao alternativa GadgetFS-u.

Stvaranje novog API-a nastalo je zbog potrebe za direktnim pristupom i pristupom na niskom nivou na Gadget USB podsistem iz korisničkog prostora, omogućavajući obradu svih mogućih USB zahtjeva (GadgetFS obrađuje neke zahtjeve samostalno, bez prenošenja u korisnički prostor).

USB Raw Gadgetom se upravlja putem / dev / raw-gadget uređaja po analogiji s / dev / gadget u GadgetFS, ali za interakciju se koristi interfejs zasnovan na ioctl (), umjesto pseudo-FS.

Pored direktne obrade svih USB zahtjeva procesom u korisničkom prostoru, novo sučelje također ima mogućnost vraćanja svih podataka kao odgovor na USB zahtjev (GadgetFS provjerava ispravnost USB deskriptora i filtrira određene odgovore, što ometa rad otkrivanje grešaka tokom testa čišćenja USB steka).

USB Raw Gadget takođe vam omogućava da odaberete određeni UDC uređaj (Upravljački program USB uređaja) i upravljački program za povezivanje, dok se GadgetFS povezuje s prvim dostupnim UDC uređajem.

Za različite UDC-e, predvidiva imena krajnjih točaka preslikavaju se na različite tipove zasebnih komunikacijskih kanala u okviru jednog uređaja.

Konačno, ako želite znati više o tome, možete provjeriti detalje, kao i dnevnik promjena napravljenih u USB Raw Gadgetu Na sledećem linku.

Kako instalirati Raw Gadget USB modul u Linux?

Oni koji su zainteresirani za mogućnost testiranja ovog modula na svom sistemu, mogu to učiniti slijedeći ovdje opisane upute.

Za glupi HCD / UDC (modul koji konfigurira virtualne USB uređaje i kontrolere hosta koji su međusobno povezani unutar jezgre). Moramo otvoriti terminal i u njega ćemo upisati sljedeću naredbu:

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

Ovim ćemo dobiti mapu s modulima koju ćemo kompajlirati izvršavanjem sljedeće naredbe u terminalu:

cd dummy_hcd

make

I nastavljamo ih instalirati sa:

./insmod.sh

U slučaju da želimo ažurirati modul, radimo to sa:

./update.sh

Sada za one koji žele instalirati modul jezgra. U terminalu ćemo dobiti potrebne datoteke za to izvršavanjem sljedeće naredbe:

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

Ovim ćemo dobiti mapu s modulima koju ćemo kompajlirati izvršavanjem sljedeće naredbe u terminalu:

cd dummy_hcd

make

I nastavljamo ih instalirati sa:

./insmod.sh

U slučaju da želimo ažurirati modul, radimo to sa:

./update.sh

Možete provjeriti rad sljedeći link. 


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Odgovoran za podatke: AB Internet Networks 2008 SL
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.