USB Raw Gadget، یک ماژول لینوکس برای شبیه سازی دستگاه های USB، در دسترس است

Andrey Konovalov از گوگل در حال توسعه یک ماژول جدید است ابزار خام USB, اجازه می دهد شبیه سازی دستگاه های USB در فضای کاربر در انتظار است کاربرد برای گنجاندن این ماژول در بخش اصلی هسته لینوکس. گجت خام USB در حال حاضر کاربردی در Google برای تسهیل تست فازی پشته USB هسته با استفاده از جعبه ابزار syzkaller.

ماژول یک رابط برنامه نویسی جدید به زیرسیستم هسته اضافه می کند گجت USB و به عنوان جایگزینی برای GadgetFS در حال توسعه است. ایجاد یک API جدید به دلیل نیاز به دسترسی سطح پایین و مستقیم به زیرسیستم گجت USB از فضای کاربر است که به آن امکان می دهد تمام درخواست های USB ممکن را پردازش کند (GadgetFS برخی از درخواست ها را به تنهایی پردازش می کند، بدون اینکه آن را به کاربر منتقل کند. فضا). اسبابک خام USB از طریق دستگاه /dev/raw-gadget مدیریت می‌شود، شبیه به /dev/gadget در GadgetFS، اما این تعامل از یک رابط مبتنی بر ioctl() به جای شبه FS استفاده می‌کند.

علاوه بر پردازش مستقیم تمام درخواست‌های USB توسط یک فرآیند فضای کاربر، رابط جدید همچنین دارای قابلیت بازگرداندن هر گونه داده در پاسخ به درخواست USB است (GadgetFS اعتبار سنجی توصیفگر USB را انجام می‌دهد و پاسخ‌های خاصی را فیلتر می‌کند، که از تشخیص خطاها در حین USB جلوگیری می‌کند. تست فازی شدن پشته) . Raw Gadget همچنین به شما امکان می دهد یک دستگاه UDC (کنترل کننده دستگاه USB) و درایور خاص را برای اتصال انتخاب کنید، در حالی که GadgetFS به اولین دستگاه UDC موجود متصل می شود. نام های قابل پیش بینی اختصاص داده شده به UDC های مختلف نقطه پایانی برای جدا کردن انواع مختلف کانال های تبادل داده در یک دستگاه.

منبع: opennet.ru

اضافه کردن نظر