มี USB Raw Gadget ซึ่งเป็นโมดูล Linux สำหรับการจำลองอุปกรณ์ USB

Andrey Konovalov จาก Google กำลังพัฒนาโมดูลใหม่ แกดเจ็ตดิบ USB, อนุญาต จำลองอุปกรณ์ USB ในพื้นที่ผู้ใช้ อยู่ระหว่างการพิจารณา แอปพลิเคชัน เพื่อรวมโมดูลนี้ไว้ในเคอร์เนล Linux หลัก USB Raw Gadget เรียบร้อยแล้ว นำไปใช้ ที่ Google เพื่อทำให้การทดสอบฟัซซี่ของสแต็กเคอร์เนล USB ง่ายขึ้นโดยใช้เครื่องมือ ซิซคาลเลอร์.

โมดูลเพิ่มอินเทอร์เฟซการเขียนโปรแกรมใหม่ให้กับระบบย่อยเคอร์เนล อุปกรณ์ USB และกำลังได้รับการพัฒนาเป็นทางเลือกแทน GadgetFS การสร้าง API ใหม่ได้รับแรงผลักดันจากความจำเป็นในการได้รับการเข้าถึงระดับต่ำและการเข้าถึงโดยตรงไปยังระบบย่อย USB Gadget จากพื้นที่ผู้ใช้ ทำให้สามารถประมวลผลคำขอ USB ที่เป็นไปได้ทั้งหมด (GadgetFS ประมวลผลคำขอบางรายการอย่างอิสระ โดยไม่ส่งผ่านไปยังพื้นที่ผู้ใช้) . USB Raw Gadget ถูกควบคุมผ่านอุปกรณ์ /dev/raw-gadget ซึ่งคล้ายกับ /dev/gadget ใน GadgetFS แต่การโต้ตอบใช้อินเทอร์เฟซที่ใช้ ioctl() แทนที่จะเป็น pseudo-FS

นอกเหนือจากการประมวลผลคำขอ USB ทั้งหมดโดยตรงโดยกระบวนการในพื้นที่ผู้ใช้แล้ว อินเทอร์เฟซใหม่ยังมีความสามารถในการส่งคืนข้อมูลใด ๆ เพื่อตอบสนองต่อคำขอ USB (GadgetFS ตรวจสอบความถูกต้องของตัวอธิบาย USB และกรองการตอบสนองบางอย่าง ซึ่งป้องกันข้อผิดพลาด จากการถูกตรวจพบระหว่างการทดสอบฟัซซี่ของสแต็ก USB) Raw Gadget ยังช่วยให้คุณสามารถเลือกอุปกรณ์ UDC (USB Device Controller) และไดรเวอร์ที่ต้องการเชื่อมต่อได้ ในขณะที่ GadgetFS จะเชื่อมต่อกับอุปกรณ์ UDC ตัวแรกที่มีอยู่ ชื่อที่คาดเดาได้ถูกกำหนดให้กับ UDC ที่แตกต่างกัน ปลายทาง เพื่อแยกช่องทางการแลกเปลี่ยนข้อมูลประเภทต่างๆ ภายในเครื่องเดียว

ที่มา: opennet.ru

เพิ่มความคิดเห็น