1 คะแนน โดย GN⁺ 2024-02-24 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

ปลดล็อกความสามารถที่ซ่อนอยู่ของ 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⁺

  1. บทความนี้เปิดพื้นที่ใหม่ให้กับการแฮ็กฮาร์ดแวร์และการปรับแต่ง โดยอธิบายวิธีเปิดใช้ความสามารถที่ซ่อนอยู่ของโน้ตบุ๊ก ThinkPad เพื่อจำลองอุปกรณ์ USB
  2. งานที่เดิมต้องใช้อุปกรณ์ฮาร์ดแวร์แยกต่างหาก ตอนนี้สามารถทำได้ด้วยโน้ตบุ๊กเพียงเครื่องเดียว ซึ่งอาจเป็นประโยชน์อย่างมากต่อทั้งนักพัฒนาและนักวิจัย
  3. บทความนี้นำเสนอความท้าทายที่น่าสนใจสำหรับผู้ที่มีความอยากรู้อยากเห็นด้านเทคนิค และช่วยสำรวจวิธีดึงศักยภาพของอุปกรณ์ที่มีอยู่ออกมาใช้ให้เต็มที่

1 ความคิดเห็น

 
GN⁺ 2024-02-24
ความคิดเห็นบน Hacker News
  • มีความเห็นสงสัยว่าทำไมจึงไม่สามารถใช้โน้ตบุ๊กเป็นคีย์บอร์ดและจอภาพของคอมพิวเตอร์อีกเครื่องได้ เวลาต้องบำรุงรักษาเครื่องแบบ headless โน้ตบุ๊กก็ทำหน้าที่เป็นคีย์บอร์ดและจอภาพอยู่แล้ว จึงรู้สึกว่าการต้องซื้ออุปกรณ์ใหม่เป็นเรื่องไม่เข้าท่า
  • มีคอมเมนต์ที่นึกถึงกรณีสมาร์ตทีวีรับการอัปเดตเฟิร์มแวร์จากไฟล์ใน USB stick โดยอุปกรณ์ที่ปลอมตัวเป็นอุปกรณ์เก็บข้อมูล USB จะส่งไฟล์เฟิร์มแวร์ของผู้ผลิตก่อน แล้วจึงส่งเฟิร์มแวร์ไม่เป็นทางการในรอบที่สอง
  • มีการพูดคุยที่น่าสนใจเกี่ยวกับความพยายามใช้เซิร์ฟเวอร์ NAS โดยได้ศึกษาวิธีเปิดเผยที่เก็บข้อมูล NAS ให้กับ PS5 และ Xbox และพบว่าสามารถเมานต์แชร์ของ NAS ผ่าน iSCSI หรือ NFS แล้วใช้โมดูล g_mass_storage เพื่อเปิดเผยสตอเรจให้กับ USB host ได้ อย่างไรก็ตาม แบนด์วิดท์กลายเป็นอุปสรรคหลักเพราะไม่ได้ช่วยเพิ่มความเร็วให้ระบบมากนัก
  • มีคอมเมนต์เกี่ยวกับความพยายามใช้ Raspberry Pi เพื่อจำลอง HDI โดยอธิบายว่าการส่งคีย์อินพุตไปยังโปรเซสของ Windows ด้วยวิธีเดิมมีปัญหาเมื่อส่งปุ่ม modifier จึงต้องมองหาวิธีอื่น
  • มีคอมเมนต์ที่ทำให้รู้สึกมีความหวังว่า สามารถทำชุดแบบ Synergy หรือ Mouse Without Borders ได้โดยใช้เพียงสาย USB โดยไม่ต้องมีเครือข่าย ซึ่งมีประโยชน์สำหรับคนที่ต้องใช้งานคอมพิวเตอร์หลายเครื่องพร้อมกัน
  • มีคอมเมนต์เกี่ยวกับความพยายามสร้างการเชื่อมต่อ 10Gbps ระหว่างสองเครื่องด้วยสาย USB-C เพียงเส้นเดียว โดยชี้ว่าบอร์ด Ryzen ส่วนใหญ่ยังไม่รองรับ Thunderbolt และคอนโทรลเลอร์ USB แบบ "dual-role" ก็พบได้ยาก พร้อมกล่าวว่าทำได้ใน USB 3.2/4.0 เช่นกัน แต่การรองรับยังไม่นิ่ง
  • มีคอมเมนต์ว่าความสามารถในการใช้พีซีเป็นอุปกรณ์ USB เปิดทางให้เกิดความเป็นไปได้ที่น่าสนุกมากมาย แต่ก็น่าเสียดายที่ตัวเลือก xDCI ที่จำเป็นนั้นมีอยู่ในฮาร์ดแวร์แต่เข้าถึงได้ผ่านการแฮ็กเฟิร์มแวร์เท่านั้น
  • มีคอมเมนต์สงสัยว่า Lenovo ใช้เทคโนโลยีนี้เพื่อดีบัก ThinkPad เครื่องหนึ่งด้วย ThinkPad อีกเครื่องหรือไม่ โดยมีลิงก์ไปยังเทคโนโลยีดีบักของ Intel และลิงก์วิดีโอ YouTube ที่เกี่ยวข้องรวมอยู่ด้วย
  • มีคอมเมนต์ว่าการจัดการกับ Raspberry Pi ดูยุ่งยาก พร้อมเสนอว่าสามารถตั้งค่า USB OTG และใช้ SSH เพื่อตั้งค่าการเมานต์และคำสั่งต่าง ๆ ได้ อีกทั้งยังเป็นการให้กำลังใจให้พยายามทำความเข้าใจอุปกรณ์ของตนเอง อ่านเคอร์เนล และแก้ปัญหาด้วยตัวเอง
  • มีคอมเมนต์ว่าตนเปิดใช้งานสวิตช์ xDCI ใน BIOS แล้ว แต่โหนดอุปกรณ์ UDC ไม่ปรากฏขึ้นมา จึงต้องขุดลึกลงไปอีก และกล่าวว่าตนได้รับแรงบันดาลใจจากโพสต์ต้นฉบับให้ไปค้นคว้าเพิ่มเติม