ปลดล็อกความสามารถที่ซ่อนอยู่ของ ThinkPad: การจำลองอุปกรณ์ USB
- ค้นพบวิธีเปลี่ยนโน้ตบุ๊ก ThinkPad X1 Carbon รุ่นที่ 6 ให้กลายเป็นอุปกรณ์ USB ที่ตั้งโปรแกรมได้
- เปิดใช้งานคอนโทรลเลอร์ xDCI เพื่อให้สามารถจำลองอุปกรณ์ USB ใดก็ได้ เช่น คีย์บอร์ดหรือไดรฟ์เก็บข้อมูล
- สามารถใช้ RawGadget และ syzkaller เพื่อทำ fuzzing กับ USB host หรือรัน Facedancer ได้
- ทั้งหมดนี้ทำได้โดยไม่ต้องใช้อุปกรณ์ฮาร์ดแวร์ภายนอก
บทนำ
- Raw Gadget เป็นโมดูลเคอร์เนลลินุกซ์สำหรับจำลองอุปกรณ์ USB ที่ปรับแต่งได้อย่างยืดหยุ่นมาก
- การจะจำลองอุปกรณ์ USB ได้ จำเป็นต้องมีองค์ประกอบฮาร์ดแวร์พิเศษที่เรียกว่า USB Device Controller (UDC)
- โดยทั่วไปแล้ว PC จะไม่มี UDC ในตัว และมักพบในคอมพิวเตอร์บอร์ดเดี่ยวอย่าง Raspberry Pi
การตรวจสอบ
- ตรวจสอบโค้ดเคอร์เนลลินุกซ์ที่เกี่ยวข้องกับคอนโทรลเลอร์ xHCI และพบว่าอุปกรณ์ xHCI รองรับการสลับบทบาท
- ค้นหาข้อมูลออนไลน์และพบการพูดคุยเกี่ยวกับการสลับบทบาทของอุปกรณ์ xHCI
- ตรวจสอบ ACPI เพื่อยืนยันว่า xDCI ถูกเปิดใช้งานใน ACPI หรือไม่
การเปิดใช้งาน xDCI
- ไม่พบตัวเลือกที่เกี่ยวข้องกับ xDCI ในการตั้งค่า BIOS
- ตรวจสอบอิมเมจ BIOS โดยตรงและพบว่าการตั้งค่าที่เกี่ยวข้องกับ xDCI ถูกซ่อนไว้
การใช้งาน xDCI
- เปิดใช้งาน xDCI ผ่านการตั้งค่า
Advanced ใน BIOS
- ยืนยันว่าอุปกรณ์ xDCI ปรากฏใน
lspci
สรุป
- ค้นพบวิธีเปิดใช้งานความสามารถของคอนโทรลเลอร์อุปกรณ์ USB ที่ซ่อนอยู่ในโน้ตบุ๊ก ThinkPad X1 Carbon รุ่นที่ 6
- ทำให้สามารถใช้โน้ตบุ๊กจำลองเป็นอุปกรณ์ USB ได้หลากหลายประเภท
ความเห็นส่งท้าย
- การเปิดใช้งาน xDCI ช่วยให้ได้สำรวจความเป็นไปได้ใหม่ ๆ ในการใช้งานโน้ตบุ๊ก
ความเห็นของ GN⁺
- บทความนี้เปิดพื้นที่ใหม่ให้กับการแฮ็กฮาร์ดแวร์และการปรับแต่ง โดยอธิบายวิธีเปิดใช้ความสามารถที่ซ่อนอยู่ของโน้ตบุ๊ก ThinkPad เพื่อจำลองอุปกรณ์ USB
- งานที่เดิมต้องใช้อุปกรณ์ฮาร์ดแวร์แยกต่างหาก ตอนนี้สามารถทำได้ด้วยโน้ตบุ๊กเพียงเครื่องเดียว ซึ่งอาจเป็นประโยชน์อย่างมากต่อทั้งนักพัฒนาและนักวิจัย
- บทความนี้นำเสนอความท้าทายที่น่าสนใจสำหรับผู้ที่มีความอยากรู้อยากเห็นด้านเทคนิค และช่วยสำรวจวิธีดึงศักยภาพของอุปกรณ์ที่มีอยู่ออกมาใช้ให้เต็มที่
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
g_mass_storageเพื่อเปิดเผยสตอเรจให้กับ USB host ได้ อย่างไรก็ตาม แบนด์วิดท์กลายเป็นอุปสรรคหลักเพราะไม่ได้ช่วยเพิ่มความเร็วให้ระบบมากนัก