USB Raw Gadget, modul za jedro, ki omogoča posnemanje naprav USB

Neobdelani pripomoček USB

Že ob nekaterih priložnostih tukaj v blogu smo govorili o delu Andreja Konovalova (Googlov razvijalec) v Linuxu, od svojega dela pri pravočasnem odkrivanju napak v gonilnikih USB jedra Linux in tudi v napravah Wifi.

Zdaj trenutno dela na razvoj novega modula za jedro Linuxa, ki ga je poimenoval "Neobdelani pripomoček USB" ki je opisan kot pripomoček, ki omogoča posnemanje naprav USB v uporabniškem prostoru.

Poleg tega omenja, da se obravnava aplikacija za vključitev tega modula v glavno jedro Linuxa. Google Raw Gadget že uporablja Google za poenostavitev nejasnega testiranja sklada jeder USB z orodjem syzkaller.

Sprva sem uporabljal GadgetFS (skupaj z modulom Dummy HCD / UDC) za posnemanje naprav USB za mešanje, nato pa je bil preklopljen na pisni vmesnik po meri.

Spodbuda za uvedbo drugačnega vmesnika je bila zagotoviti neposreden in nekoliko surov dostop do plasti pripomočka USB za uporabniški prostor, kjer se vsaka zahteva USB posreduje v uporabniški prostor za odgovor.

O USB surovem pripomočku

Modul skrbi za dodajanje novega vmesnika programiranje v podsistem jedra imenovan "USB Gadget" in ki se razvija kot alternativa GadgetFS.

Ustvarjanje novega API-ja je posledica potrebe po neposrednem in nizko dostopnem dostopu na podsistem Gadget USB iz uporabniškega prostora, ki omogoča obdelavo vseh možnih zahtev USB (GadgetFS nekatere zahteve obdela sam, ne da bi jih prenesel v uporabniški prostor).

Pripomoček USB Raw Gadget nadzoruje naprava / dev / raw-gadget po analogiji z / dev / gadget v GadgetFS, vendar se za interakcijo namesto psevdo-FS uporablja vmesnik, ki temelji na ioctl ().

Poleg neposredne obdelave vseh zahtev USB prek postopka v uporabniškem prostoru ima novi vmesnik tudi možnost vrnitve vseh podatkov kot odziv na zahtevo USB (GadgetFS preveri pravilnost deskriptorjev USB in filtrira določene odzive, kar moti zaznavanje napak med preskusom čiščenja sklada USB).

USB Raw Gadget omogoča tudi izbiro določene naprave UDC (Gonilnik naprave USB) in gonilnik za povezavo, medtem ko se GadgetFS poveže s prvo razpoložljivo napravo UDC.

Pri različnih UDC-jih se predvidljiva imena končnih točk preslikajo na različne vrste ločenih komunikacijskih kanalov znotraj ene naprave.

Nazadnje, če želite izvedeti več o tem, lahko preverite podrobnosti in dnevnik sprememb, narejenih v USB Raw Gadget V naslednji povezavi.

Kako namestiti modul USB Raw Gadget v Linux?

Za tiste, ki jih zanima preizkus tega modula v svojem sistemu, lahko to storijo tako, da upoštevajo navodila, podrobno opisana tukaj.

Za lažne HCD / UDC (modul, ki konfigurira navidezne naprave USB in krmilnike gostiteljev, ki so med seboj povezani v jedru). Odprti moramo terminal in vanj vtipkati naslednji ukaz:

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

S tem bomo dobili mapo z moduli, ki jih bomo sestavili z izvajanjem naslednjega ukaza v terminalu:

cd dummy_hcd

make

In nadaljujemo z njihovo namestitvijo z:

./insmod.sh

V primeru, da želimo posodobiti modul, to storimo z:

./update.sh

Zdaj za tiste, ki želijo namestiti jedrski modul. V terminalu bomo za to dobili potrebne datoteke z izvajanjem naslednjega ukaza:

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

S tem bomo dobili mapo z moduli, ki jih bomo sestavili z izvajanjem naslednjega ukaza v terminalu:

cd dummy_hcd

make

In nadaljujemo z njihovo namestitvijo z:

./insmod.sh

V primeru, da želimo posodobiti modul, to storimo z:

./update.sh

Delo lahko preverite v naslednjo povezavo. 


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Odgovoren za podatke: AB Internet Networks 2008 SL
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.