1 điểm bởi GN⁺ 2024-02-24 | 1 bình luận | Chia sẻ qua WhatsApp

Mở khóa tính năng ẩn của ThinkPad: mô phỏng thiết bị USB

  • Đã phát hiện cách biến laptop ThinkPad X1 Carbon thế hệ 6 thành một thiết bị USB có thể lập trình.
  • Bằng cách kích hoạt bộ điều khiển xDCI, có thể mô phỏng các thiết bị USB tùy ý (bàn phím, ổ lưu trữ, v.v.).
  • Có thể dùng RawGadget và syzkaller để fuzz USB host hoặc chạy Facedancer.
  • Tất cả những việc này đều có thể thực hiện mà không cần phần cứng bên ngoài.

Giới thiệu

  • Raw Gadget là một mô-đun nhân Linux dùng để mô phỏng thiết bị USB với khả năng tùy biến rất cao.
  • Để mô phỏng thiết bị USB, cần có một thành phần phần cứng đặc biệt gọi là USB Device Controller (UDC).
  • Thông thường PC không có UDC, còn nó thường được tích hợp trong các máy tính bo mạch đơn như Raspberry Pi.

Khảo sát

  • Khi khảo sát mã nhân Linux liên quan đến bộ điều khiển xHCI, đã phát hiện thiết bị xHCI hỗ trợ chuyển đổi vai trò.
  • Qua tìm kiếm trực tuyến, đã tìm thấy các thảo luận về việc chuyển đổi vai trò của thiết bị xHCI.
  • Đã kiểm tra ACPI để xác nhận liệu xDCI có được kích hoạt trong ACPI hay không.

Kích hoạt xDCI

  • Không tìm thấy thiết lập liên quan đến xDCI trong phần cài đặt BIOS.
  • Sau khi kiểm tra trực tiếp image BIOS, đã phát hiện thiết lập liên quan đến xDCI bị ẩn.

Sử dụng xDCI

  • Đã kích hoạt xDCI thông qua thiết lập Advanced của BIOS.
  • Đã xác nhận thiết bị xDCI xuất hiện trong lspci.

Tóm tắt

  • Đã tìm ra cách kích hoạt tính năng bộ điều khiển thiết bị USB ẩn trên laptop ThinkPad X1 Carbon thế hệ 6.
  • Nhờ đó, laptop có thể mô phỏng thành nhiều loại thiết bị USB khác nhau.

Cảm nghĩ

  • Việc kích hoạt xDCI đã mở ra những khả năng sử dụng mới cho chiếc laptop.

Ý kiến của GN⁺

  1. Bài viết này mở ra một hướng mới cho việc hack phần cứng và tùy biến, bằng cách chỉ ra cách kích hoạt tính năng ẩn trên laptop ThinkPad để mô phỏng thiết bị USB.
  2. Những tác vụ trước đây cần phần cứng riêng nay có thể thực hiện chỉ với một chiếc laptop, nên điều này có thể rất hữu ích cho các nhà phát triển và nhà nghiên cứu.
  3. Bài viết đưa ra một thử thách thú vị cho những người có tò mò kỹ thuật, đồng thời giúp khám phá cách tận dụng tối đa tiềm năng của thiết bị sẵn có.

1 bình luận

 
GN⁺ 2024-02-24
Ý kiến trên Hacker News
  • Có ý kiến thắc mắc vì sao không thể dùng laptop làm bàn phím và màn hình cho máy tính khác. Khi bảo trì một cỗ máy không có màn hình, laptop vốn đã đóng vai trò bàn phím và màn hình, nên việc phải mua thêm thiết bị mới có cảm giác khá ngớ ngẩn.
  • Có bình luận nhắc lại trường hợp smart TV nhận cập nhật firmware từ các tệp trên USB stick. Thiết bị giả làm bộ nhớ USB sẽ gửi tệp firmware của nhà sản xuất trước, rồi ở lần thứ hai gửi firmware không chính thức.
  • Có thảo luận thú vị về nỗ lực tận dụng máy chủ NAS. Người bình luận đã nghiên cứu cách đưa bộ nhớ NAS cho PS5 và Xbox sử dụng, và phát hiện có thể mount chia sẻ NAS qua iSCSI hoặc NFS rồi dùng mô-đun g_mass_storage để đưa bộ nhớ đó ra cho USB host. Tuy nhiên, băng thông trở thành trở ngại chính vì mức cải thiện tốc độ mà hệ thống nhận được không lớn.
  • Có bình luận về nỗ lực dùng Raspberry Pi để giả lập HDI. Bình luận này mô tả quá trình tìm kiếm một phương án khác sau khi cách hiện có là gửi phím bấm vào tiến trình Windows gặp vấn đề khi gửi các phím bổ trợ.
  • Có bình luận cho rằng điều này mở ra hy vọng có thể triển khai kiểu thiết lập như Synergy hay Mouse Without Borders chỉ bằng cáp USB, không cần mạng. Điều này hữu ích cho những người phải vận hành nhiều máy tính cùng lúc.
  • Có bình luận muốn thử tạo kết nối 10Gbps giữa hai máy chỉ bằng cáp USB-C. Bình luận này chỉ ra rằng phần lớn bo mạch Ryzen vẫn chưa hỗ trợ Thunderbolt, và bộ điều khiển USB "dual-role" khá hiếm. Dù USB 3.2/4.0 cũng có thể làm được, mức độ hỗ trợ vẫn thiếu ổn định.
  • Có bình luận nói rằng khả năng dùng PC như một thiết bị USB mở ra nhiều khả năng thú vị. Tuy vậy, người này tiếc rằng tùy chọn xDCI cần thiết tuy có trong phần cứng nhưng chỉ có thể truy cập bằng cách hack firmware.
  • Có bình luận tự hỏi liệu Lenovo có đang dùng kỹ thuật này để debug một ThinkPad bằng một ThinkPad khác hay không. Bình luận có kèm liên kết tới công nghệ debug của Intel và một liên kết video YouTube liên quan.
  • Có bình luận thấy việc làm việc với Raspberry Pi khá phiền phức. Người này gợi ý có thể cấu hình USB OTG, rồi thiết lập mount và lệnh qua SSH. Nội dung cũng khuyến khích việc tự tìm hiểu thiết bị của mình, đọc kernel và tự giải quyết vấn đề.
  • Có bình luận cho biết đã bật công tắc xDCI trong BIOS nhưng nút thiết bị UDC vẫn không xuất hiện, nên cần đào sâu hơn nữa. Người này nói rằng mình được truyền cảm hứng từ bài đăng gốc và cần nghiên cứu thêm.