גאדג'ט USB גולמי, מודול לליבה המאפשר הדמיית התקני USB

גאדג'ט USB גולמי

כבר בכמה הזדמנויות כאן בבלוג דיברנו על העבודה שעשה אנדריי קונובלוב (מפתח גוגל) בלינוקס, מעבודתו באיתור בזמן של כשלים במנהלי ה- USB Kernel USB וגם במכשירי Wifi.

עכשיו הוא עובד כרגע על פיתוח מודול חדש לליבת הלינוקס שהוא כינה "גאדג'ט USB גולמי" המתאר כלי עזר המאפשר חיקוי התקני USB במרחב המשתמש.

חוץ מזה מזכיר כי יישום נשקל להכללת מודול זה בליבת הלינוקס הראשית. גאדג'ט גולמי של גוגל כבר נמצא בשימוש על ידי גוגל כדי לפשט את הבדיקה המטושטשת של ערימת ליבת ה- USB בעזרת ערכת הכלים syzkaller.

בתחילה השתמשתי ב- GadgetFS (יחד עם Dummy HCD / UDC) כדי לחקות התקני USB לצורך טשטוש, אך לאחר מכן הוא הועבר לממשק כתוב מותאם אישית.

התמריץ ליישום ממשק אחר היה לספק גישה ישירה וקצת גולמית לשכבת הגאדג'ט USB למרחב המשתמשים, כאשר כל בקשת USB מועברת למרחב המשתמשים לתגובה.

אודות גאדג'ט USB גולמי

המודול דואג להוספת ממשק חדש תכנות לתת מערכת הליבה נקרא "גאדג'ט USB" ואשר פותח כחלופה ל- GadgetFS.

יצירת ממשק API חדש נובעת מהצורך בגישה ישירה ונמוכה למערכת המשנה USB של גאדג'ט ממרחב המשתמש, ומאפשרת לעבד את כל בקשות ה- USB האפשריות (GadgetFS מעבד כמה בקשות בפני עצמה, מבלי להעביר אותן למרחב המשתמש).

גאדג'ט USB גולמי נשלט באמצעות מכשיר / dev / raw-gadget באנלוגיה עם / dev / gadget ב- GadgetFS, אך ממשק מבוסס ioctl () במקום פסאודו-FS משמש לאינטראקציה.

בנוסף לעיבוד ישיר של כל בקשות ה- USB על ידי תהליך במרחב המשתמש, לממשק החדש יש גם אפשרות להחזיר כל נתונים בתגובה לבקשת USB (GadgetFS בודק את נכונותם של מתארי USB ומסנן תגובות מסוימות, מה שמפריע זיהוי שגיאות במהלך בדיקת ניקוי מחסנית ה- USB).

גאדג'ט USB גולמי מאפשר לך גם לבחור התקן UDC ספציפי (מנהל התקן USB) ומנהל התקן להתחברות, בעוד GadgetFS מתחבר למכשיר ה- UDC הזמין הראשון.

עבור UDCs שונים, שמות של נקודות קצה צפויות ממופים לסוגים שונים של ערוצי תקשורת נפרדים בתוך מכשיר יחיד.

לבסוף, אם אתה רוצה לדעת יותר על זה, אתה יכול לבדוק את הפרטים, כמו גם את יומן השינויים שבוצעו בגאדג'ט USB גולמי. בקישור הבא.

כיצד להתקין את מודול ה- USB של גאדג'ט גולמי בלינוקס?

למי שמעוניין להיות מסוגל לבדוק מודול זה במערכת שלהם, הוא יכול לעשות זאת על ידי ביצוע ההוראות המפורטות כאן.

ל- Dummy HCD / UDC (מודול שמגדיר התקני USB וירטואליים ובקרי מארח המחוברים זה לזה בתוך הליבה). עלינו לפתוח מסוף ובו אנו מקלידים את הפקודה הבאה:

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

עם זאת אנו הולכים להשיג את התיקיה עם המודולים אותם אנו הולכים על ידי ביצוע הפקודה הבאה במסוף:

cd dummy_hcd

make

ואנחנו ממשיכים להתקין אותם עם:

./insmod.sh

אם אנו רוצים לעדכן את המודול, אנו עושים זאת באמצעות:

./update.sh

עכשיו למי שרוצה להתקין את מודול הליבה. במסוף אנו הולכים להשיג את הקבצים הדרושים לכך על ידי ביצוע הפקודה הבאה:

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

עם זאת אנו הולכים להשיג את התיקיה עם המודולים אותם אנו הולכים על ידי ביצוע הפקודה הבאה במסוף:

cd dummy_hcd

make

ואנחנו ממשיכים להתקין אותם עם:

./insmod.sh

אם אנו רוצים לעדכן את המודול, אנו עושים זאת באמצעות:

./update.sh

אתה יכול לבדוק את העבודה הקישור הבא. 


השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי על הנתונים: AB Internet Networks 2008 SL
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.