USB Raw Gadget, modul za jezgru koji omogućuje oponašanje USB uređaja

USB sirovi 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ćuje oponašanje USB uređaja u korisničkom prostoru.

osim toga spominje da se razmatra aplikacija za uključivanje ovog modula u glavnu jezgru Linuxa. Google Raw Gadget već koristi Google za pojednostavljivanje nejasnih testova snopa USB kernela pomoću syzkaller alata.

U početku sam koristio GadgetFS (zajedno s Dummy HCD / UDC modulom) za oponašanje USB uređaja za fuzzing, ali onda je prebačeno na prilagođeno napisano sučelje.

Poticaj za implementaciju drugačijeg sučelja bio je pružiti izravan i pomalo neobrađen pristup sloju USB gadgeta za korisnički prostor, gdje se svaki USB zahtjev prosljeđuje u korisnički prostor radi odgovora.

O USB sirovom uređaju

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

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

USB Raw Gadgetom upravlja se putem / dev / raw-gadget uređaja analogno s / dev / gadget u GadgetFS, ali za interakciju se koristi sučelje temeljeno na ioctl (), umjesto pseudo-FS.

Uz izravnu obradu 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 otkrivanje pogrešaka tijekom testa brisanja USB steka).

USB Raw Gadget također vam omogućuje odabir određenog UDC uređaja (Upravljački program USB uređaja) i pokretački program za povezivanje, dok se GadgetFS povezuje s prvim dostupnim UDC uređajem.

Za različite UDC-ove, predvidivi nazivi krajnjih točaka preslikavaju se na različite tipove zasebnih komunikacijskih kanala unutar jednog uređaja.

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

Kako instalirati Raw Gadget USB modul u Linux?

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

Za glupi HCD / UDC (modul koji konfigurira virtualne USB uređaje i kontrolere domaćina 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 koje ć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 jezgre. 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 koje ć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 svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  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 obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.