Ang USB Raw Gadget, isang Linux module para sa pagtulad sa mga USB device, ay available

Si Andrey Konovalov mula sa Google ay bumubuo ng isang bagong module USB Raw Gadget, nagpapahintulot tularan ang mga USB device sa espasyo ng user. Nakabinbin hiling para sa pagsasama ng module na ito sa pangunahing Linux kernel. USB Raw Gadget na inilapat sa Google upang pasimplehin ang fuzz testing ng USB kernel stack gamit ang mga tool syzkaller.

Ang module ay nagdaragdag ng bagong programming interface sa kernel subsystem USB Gadget at binuo bilang alternatibo sa GadgetFS. Ang paglikha ng bagong API ay hinimok ng pangangailangang makakuha ng mababang antas at direktang pag-access sa USB Gadget subsystem mula sa espasyo ng user, na nagbibigay-daan dito na iproseso ang lahat ng posibleng kahilingan sa USB (independiyenteng pinoproseso ng GadgetFS ang ilang kahilingan, nang hindi ipinapasa ito sa espasyo ng gumagamit) . Ang USB Raw Gadget ay kinokontrol sa pamamagitan ng /dev/raw-gadget device, katulad ng /dev/gadget sa GadgetFS, ngunit ang pakikipag-ugnayan ay gumagamit ng interface na nakabatay sa ioctl() sa halip na isang pseudo-FS.

Bilang karagdagan sa direktang pagproseso ng lahat ng mga kahilingan sa USB sa pamamagitan ng isang proseso sa espasyo ng user, nagtatampok din ang bagong interface ng kakayahang ibalik ang anumang data bilang tugon sa isang kahilingan sa USB (Sinusuri ng GadgetFS ang kawastuhan ng mga USB descriptor at sinasala ang ilang partikular na tugon, na pumipigil sa pagtuklas ng mga error sa panahon ng fuzz testing ng USB stack) . Ang Raw Gadget ay nagbibigay din sa iyo ng kakayahang pumili ng isang partikular na UDC (USB Device Controller) na device at driver na ikakabit, habang ang GadgetFS ay nakakabit sa unang magagamit na UDC device. Ang mga nahuhulaang pangalan ay itinalaga sa iba't ibang UDC endpoint upang paghiwalayin ang iba't ibang uri ng mga channel ng palitan ng data sa loob ng isang device.

Pinagmulan: opennet.ru

Magdagdag ng komento