1P by neo 7달전 | favorite | 댓글 1개

ThinkPad의 숨겨진 기능 잠금 해제: USB 장치 에뮬레이션

  • ThinkPad X1 Carbon 6세대 노트북을 프로그래밍 가능한 USB 장치로 변환하는 방법을 발견함.
  • xDCI 컨트롤러를 활성화하여 임의의 USB 장치(키보드, 저장 드라이브 등)를 에뮬레이트할 수 있게 됨.
  • RawGadget과 syzkaller를 활용하여 USB 호스트를 퍼징하거나 Facedancer를 실행할 수 있음.
  • 이 모든 작업을 외부 하드웨어 없이 수행할 수 있음.

소개

  • Raw Gadget은 매우 사용자 정의 가능한 USB 장치를 에뮬레이트하기 위한 리눅스 커널 모듈임.
  • USB 장치를 에뮬레이트하기 위해서는 USB Device Controller(UDC)라는 특별한 하드웨어 구성 요소가 필요함.
  • 일반적으로 PC에는 UDC가 없으며, Raspberry Pi와 같은 싱글 보드 컴퓨터에 내장되어 있음.

조사

  • xHCI 컨트롤러와 관련된 리눅스 커널 코드를 조사하여 xHCI 장치가 역할 전환을 지원하는 것을 발견함.
  • 온라인 검색을 통해 xHCI 장치의 역할 전환에 대한 논의를 찾아냄.
  • ACPI를 확인하여 xDCI가 ACPI에서 활성화되어 있는지 확인함.

xDCI 활성화

  • BIOS 설정에서 xDCI 관련 설정을 찾지 못함.
  • BIOS 이미지를 직접 확인하여 xDCI 관련 설정이 숨겨져 있음을 발견함.

xDCI 사용

  • BIOS의 Advanced 설정을 통해 xDCI를 활성화함.
  • xDCI 장치가 lspci에 나타나는 것을 확인함.

요약

  • ThinkPad X1 Carbon 6세대 노트북에 숨겨진 USB 장치 컨트롤러 기능을 활성화하는 방법을 발견함.
  • 이를 통해 노트북을 다양한 USB 장치로 에뮬레이트할 수 있게 됨.

후기

  • xDCI 활성화를 통해 노트북의 새로운 사용 가능성을 탐색함.

GN⁺의 의견

  1. 이 기사는 ThinkPad 노트북의 숨겨진 기능을 활성화하여 USB 장치를 에뮬레이트하는 방법을 제공함으로써, 하드웨어 해킹과 사용자 정의 가능성의 새로운 영역을 열어줌.
  2. 기존에는 별도의 하드웨어가 필요했던 작업을 노트북 하나로 수행할 수 있게 되어, 개발자와 연구자들에게 큰 도움이 될 수 있음.
  3. 이 글은 기술적 호기심을 가진 사람들에게 흥미로운 도전 과제를 제시하며, 기존 기기의 잠재력을 최대한 활용하는 방법을 탐색하는 데 도움을 줌.
Hacker News 의견
  • 노트북을 다른 컴퓨터의 키보드와 모니터로 사용할 수 없는 이유에 대해 궁금해하는 의견이 있음. 머리 없는 기계에 유지보수를 할 때 이미 노트북이 키보드와 모니터 역할을 하고 있는데 새로 구입하는 것이 어리석게 느껴짐.
  • 스마트 TV가 USB 스틱에 있는 파일로 펌웨어 업데이트를 받는 사례를 회상하는 댓글이 있음. USB 저장 장치를 가장한 장치가 제조사 펌웨어 파일을 처음에 보내고, 두 번째로 비공식 펌웨어를 보내는 방식임.
  • NAS 서버를 활용하려는 시도에 대한 흥미로운 논의가 있음. NAS 저장소를 PS5와 Xbox에 노출시키는 방법을 연구했으며, iSCSI나 NFS를 통해 NAS 공유를 마운트하고 g_mass_storage 모듈을 사용해 USB 호스트에 저장소를 노출하는 방법이 가능함을 발견함. 그러나 대역폭이 시스템에 제공하는 속도 향상이 크지 않아 주요 장애물이 됨.
  • 라즈베리 파이를 사용하여 HDI를 에뮬레이션하려는 시도에 대한 댓글이 있음. 윈도우 프로세스에 키 입력을 보내는 기존 방법이 수정 키를 보낼 때 문제가 발생하여, 다른 방법을 모색하는 과정을 설명함.
  • 네트워크 없이 Synergy나 Mouse Without Borders와 같은 설정을 USB 케이블만으로 구현할 수 있다는 사실에 대해 희망을 갖게 되는 댓글이 있음. 이는 동시에 여러 컴퓨터를 운영해야 하는 사람들에게 유용함.
  • USB-C 케이블만으로 두 기계 간에 10Gbps 연결을 시도하려는 댓글이 있음. 대부분의 라이젠 보드가 여전히 썬더볼트를 지원하지 않으며, "이중 역할" USB 컨트롤러가 드물다는 점을 지적함. USB 3.2/4.0에서도 가능하지만 지원이 불안정함을 언급함.
  • PC를 USB 장치로 사용할 수 있는 능력이 재미있는 가능성을 열어준다는 댓글이 있음. 하지만 필요한 xDCI 옵션이 하드웨어에는 존재하지만 펌웨어 해킹을 통해서만 접근할 수 있음을 안타까워함.
  • 레노버가 한 ThinkPad를 다른 ThinkPad로 디버깅하는 데 이 기술을 사용하고 있는지 궁금해하는 댓글이 있음. 인텔의 디버그 기술에 대한 링크와 관련 유튜브 비디오 링크가 포함됨.
  • 라즈베리 파이를 다루는 것이 번거롭다고 느끼는 댓글이 있음. USB OTG를 구성하고, SSH를 통해 마운트와 명령을 설정할 수 있음을 제안함. 자신의 장치를 이해하고 커널을 읽으며 문제를 스스로 해결하려는 노력을 격려하는 내용임.
  • xDCI 스위치를 BIOS에서 활성화했지만 UDC 장치 노드가 나타나지 않아 더 깊이 파고들어야 한다는 댓글이 있음. 원 게시글에서 영감을 받아 추가 조사가 필요함을 언급함.