Διατίθεται το USB Raw Gadget, μια μονάδα Linux για την εξομοίωση συσκευών USB

Ο Andrey Konovalov από την Google αναπτύσσει μια νέα ενότητα Gadget USB Raw, επιτρέποντας μιμούνται συσκευές USB στο χώρο χρήστη. Εκκρεμεί αίτηση για να συμπεριλάβετε αυτήν την ενότητα στο κύριο μέρος του πυρήνα του Linux. USB Raw Gadget ήδη εφαρμοσμένος στη Google για τη διευκόλυνση του fuzz testing της στοίβας USB του πυρήνα χρησιμοποιώντας το κιτ εργαλείων syzkaller.

Η ενότητα προσθέτει μια νέα διεπαφή προγραμματισμού στο υποσύστημα πυρήνα USB Gadget και αναπτύσσεται ως εναλλακτική λύση στο GadgetFS. Η δημιουργία ενός νέου API οφείλεται στην ανάγκη απόκτησης χαμηλού επιπέδου και άμεσης πρόσβασης στο υποσύστημα USB Gadget από τον χώρο χρήστη, επιτρέποντάς του να επεξεργάζεται όλα τα πιθανά αιτήματα USB (το GadgetFS επεξεργάζεται ορισμένα αιτήματα μόνο του, χωρίς να τα μεταβιβάζει στον χρήστη χώρος). Η διαχείριση του gadget USB Raw γίνεται μέσω της συσκευής /dev/raw-gadget, παρόμοια με το /dev/gadget στο GadgetFS, αλλά η αλληλεπίδραση χρησιμοποιεί μια διεπαφή που βασίζεται σε ioctl() και όχι μια ψευδο-FS.

Εκτός από την άμεση επεξεργασία όλων των αιτημάτων USB μέσω μιας διαδικασίας χώρου χρήστη, η νέα διεπαφή διαθέτει επίσης τη δυνατότητα επιστροφής δεδομένων ως απόκριση σε αίτημα USB (το GadgetFS εκτελεί επικύρωση περιγραφής USB και φιλτράρει ορισμένες απαντήσεις, γεγονός που αποτρέπει τον εντοπισμό σφαλμάτων κατά τη διάρκεια USB δοκιμή ασάφειας στοίβας) . Το Raw Gadget σάς επιτρέπει επίσης να επιλέξετε μια συγκεκριμένη συσκευή UDC (USB Device Controller) και πρόγραμμα οδήγησης για προσάρτηση, ενώ το GadgetFS συνδέεται στην πρώτη διαθέσιμη συσκευή UDC. Προβλέψιμα ονόματα που έχουν εκχωρηθεί σε διαφορετικά UDC καταληκτικό σημείο για να διαχωρίσετε διαφορετικούς τύπους καναλιών ανταλλαγής δεδομένων σε μία συσκευή.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο