USB Raw Gadget, a kernel modulja, amely lehetővé teszi az USB eszközök emulálását

USB Raw Gadget

Néhány alkalommal már itt a blogban beszéltünk Andrey Konovalov munkájáról (Google-fejlesztő) Linux alatt, a Linux Kernel USB-illesztőprogramok és a Wifi-eszközök hibáinak időben történő észleléséből származó munkájából.

Most éppen azon dolgozik egy új modul kifejlesztése a Linux kernel számára, amelyet megnevezett "USB Raw Gadget" amely olyan segédprogramot ír le, amely lehetővé teszi az USB-eszközök emulálását a felhasználói térben.

Amellett, hogy megemlíti, hogy egy alkalmazást fontolgatnak ennek a modulnak a fő Linux kernelbe történő felvételére. A Google Raw Gadget-et már használja a Google, hogy leegyszerűsítse az USB kernel verem fuzzy tesztelését a syzkaller eszköztárral.

Kezdetben a GadgetFS-t használtam (a Dummy HCD / UDC modullal együtt) az USB-eszközök emulálásához a fuzzinghez, de aztán átállítottam egy egyedi írott felületre.

Egy másik interfész megvalósításának ösztönzése az volt, hogy parancsikont és kissé nyers hozzáférést biztosítson az USB Gadget réteghez a felhasználói tér számára, ahol minden egyes USB-kérést továbbítanak a felhasználói helyre válaszként.

Az USB Raw Gadgetről

A modul gondoskodik egy új felület hozzáadásáról programozás a kernel alrendszerhez "USB Gadget" néven, és amelyet a GadgetFS alternatívájaként fejlesztenek.

Az új API létrehozása a közvetlen és alacsony szintű hozzáférés szükségességének köszönhető a Gadget USB alrendszerbe a felhasználói térből, lehetővé téve az összes lehetséges USB-kérés feldolgozását (a GadgetFS néhány kérést önállóan dolgoz fel, anélkül, hogy a felhasználói térbe továbbítaná).

Az USB Raw Gadget vezérlése a / dev / raw-gadget eszközön keresztül történik a / dev / gadget analógiájával a GadgetFS-ben, de az interakcióhoz pszeudo-FS helyett ioctl () alapú felületet használnak.

Amellett, hogy az összes USB-kérelmet közvetlenül feldolgozza egy folyamat a felhasználói térben, az új felület képes bármilyen adatot visszaküldeni egy USB-kérelemre adott válaszként (a GadgetFS ellenőrzi az USB-leírók helyességét és kiszűr bizonyos válaszokat, ami zavarja a hiba észlelése az USB-verem törlési tesztje során).

Az USB Raw Gadget lehetővé teszi egy adott UDC eszköz kiválasztását is (USB eszközillesztő) és egy illesztőprogram a csatlakozáshoz, míg a GadgetFS az első elérhető UDC eszközhöz csatlakozik.

Különböző UDC-k esetén a kiszámítható végpontok nevei különféle típusú külön kommunikációs csatornákhoz vannak leképezve egyetlen eszközön belül.

Végül, ha többet szeretne tudni róla, ellenőrizheti a részleteket, valamint az USB Raw Gadget-ben végrehajtott módosítások naplóját A következő linken.

Hogyan kell telepíteni a Raw Gadget USB modult a Linux-ba?

Azok számára, akik szeretnék kipróbálni ezt a modult a rendszerükön, megtehetik az itt részletezett utasítások követésével.

Dummy HCD / UDC esetén (egy modul, amely konfigurálja a kernelen egymással összekapcsolt virtuális USB-eszközöket és gazdagép-vezérlőket). Meg kell nyitnunk egy terminált, és beírjuk a következő parancsot:

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

Ezzel megkapjuk a mappát a modulokkal, amelyeket lefordítunk, a következő parancs végrehajtásával a terminálban:

cd dummy_hcd

make

És tovább telepítjük őket:

./insmod.sh

Ha frissíteni akarjuk a modult, akkor ezt tesszük:

./update.sh

Most azok számára, akik telepíteni akarják a kernelmodult. Egy terminálban a következő parancs végrehajtásával megszerezzük az ehhez szükséges fájlokat:

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

Ezzel megkapjuk a mappát a modulokkal, amelyeket lefordítunk, a következő parancs végrehajtásával a terminálban:

cd dummy_hcd

make

És tovább telepítjük őket:

./insmod.sh

Ha frissíteni akarjuk a modult, akkor ezt tesszük:

./update.sh

Be tudja ellenőrizni a munkát a következő link. 


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: AB Internet Networks 2008 SL
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.