Claude Code reverse-engineered the Xbox 360 kernel and wrote a native driver so Series X|S controllers work on it
Claude Code가 Xbox 360 커널을 역공학해 Series X|S 컨트롤러용 드라이버를 만들었습니다
Xbox 360 커널 17559에서 Microsoft 무선 어댑터를 직접 구동하는 플러그인으로 Series X|S 컨트롤러를 최대 4대까지 연결합니다. 제작자는 Claude Code로 커널과 입력 경로를 분석하고 Linux xone 드라이버를 이식했다고 설명합니다.
- 주제
에디터 노트
이 프로젝트의 성과는 AI가 혼자 커널을 분석했다는 데 있기보다 분석 결과를 실제 콘솔에서 검증하는 작업 흐름에 있습니다. 제작자는 Ghidra와 MCP, 크로스 컴파일러, 디버그 접근을 마련했고 동글 연결과 재부팅은 직접 맡았다고 밝혔습니다. USB 콜백과 DPC 제약을 반영한 빌드 검사까지 포함해 결과물을 배포한 점은 저장소의 기술 설명과 맞닿아 있습니다. 다만 저장소와 Reddit 게시물은 제작자가 제시한 구현 설명이며 독립적인 검증 결과는 포함하지 않습니다. 댓글의 회의론도 코드 작성자가 내용을 이해하지 못할 수 있다는 의견이지 이 드라이버의 오류를 보여주는 증거는 아닙니다. 여기서 확인할 수 있는 범위는 특정 커널 버전과 어댑터에 맞춘 구현과 제작자의 테스트 절차입니다.
AI 요약
Xbox 360에서는 Microsoft Xbox Wireless Adapter for Windows를 연결해도 Series X|S 컨트롤러를 사용할 수 없었습니다. 어댑터는 MediaTek MT76 칩을 탑재했지만 펌웨어 업로드와 무선 설정, 페어링, 인증, 컨트롤러 프로토콜 처리를 호스트가 맡아야 하기 때문입니다. 이 프로젝트는 Xbox 360 커널 안에서 어댑터를 구동하는 플러그인 xa.xex를 제공합니다.
작동 방식
플러그인은 부팅 시 launch.ini 플러그인으로 로드됩니다. 어댑터를 USB 장치로 찾아 펌웨어를 올리고 무선 통신을 설정한 뒤, 컨트롤러와 802.11 연결 및 GIP 보안 핸드셰이크를 수행합니다. 인증에는 ECDH P-256을 사용하고, 이후 GIP 프로토콜로 입력과 진동을 처리합니다. 컨트롤러는 Xbox 360에서 일반 XInput 장치로 표시되므로 대시보드와 게임에서 쓸 수 있습니다.
Series X|S 컨트롤러는 최대 4대까지 연결되며 버튼, 트리거, 스틱, Guide 버튼, 진동을 지원합니다. 원래 Xbox 360 무선 수신기는 그대로 작동하고 플레이어 슬롯 4개를 함께 씁니다. 페어링한 컨트롤러는 다시 켜면 자동 연결됩니다. 기존 Xbox 360 컨트롤러와 함께 쓰는 구성도 가능합니다.
설치 조건과 제한
커널 17559에서 서명되지 않은 코드를 실행하고 launch.ini 플러그인을 불러올 수 있어야 합니다. Microsoft 무선 어댑터가 필요하며, 펌웨어는 Microsoft의 Windows 드라이버 패키지에서 별도로 내려받습니다. 플러그인은 시작할 때 커널과 XAM 코드가 맞는지 검사하고, 불일치하면 동작하지 않습니다. 구형 v1 RSA 보안 핸드셰이크를 쓰는 컨트롤러와 헤드셋, 채팅 패드는 지원하지 않습니다.
구현과 빌드
무선 어댑터와 GIP 처리 코드는 Linux xone 드라이버를 이식한 포터블 C 코드입니다. Xbox 360 쪽은 커널 USB 드라이버 인터페이스와 XInput 경로를 연결합니다. 빌드 검사는 이미지의 매핑 문제와 DPC에서 실행할 수 없는 부동소수점 명령어를 확인합니다. 프로젝트 설명에 따르면 DPC에는 부동소수점 상태가 없기 때문입니다. 코드는 GPL-3.0으로 공개됐으며 xone에서 가져온 코드는 별도의 GPL-2.0-or-later 고지를 유지합니다.
Reddit 반응
- @Hot-Ad2974 — 어댑터의 펌웨어 업로드와 무선 설정, 페어링, ECDH 인증, GIP 처리를 360이 직접 맡도록 했습니다. Claude Code로 Ghidra에서 USB 스택과 XAM 입력 경로를 분석했고, xone 코드를 이식해 커널 플러그인과 XInput 훅을 작성했습니다. 콘솔 메모리의 로그를 디버그 모니터로 읽으며 빌드와 테스트를 반복했습니다. 동글 연결과 페어링, 재부팅은 제가 직접 했습니다.
- @ZarBandit — AI가 쓴 코드라면 작성자도 무슨 코드인지 모른다고 단정할 수는 없다는 게 지금 세상의 모습입니다.
- @Correct-Somewhere-80 — 작업 흐름 설명만 봐도 잘한 일이 드러납니다.
- @XDLED_SoundBar — 동글이 필요 없다는 뜻인가요? 그렇다면 Windows PC에서 동글 없이 컨트롤러를 쓰는 드라이버도 만들 수 있나요?
- @Hot-Ad2974 — 동글은 필요합니다. Microsoft Xbox Wireless Adapter를 써야 합니다. 여기서는 360이 어댑터를 직접 구동하고 동글 하나로 컨트롤러 네 대를 연결합니다.
- @Impossible-Magician — 어떤 모델을 썼고 안전 제한에 몇 번 걸렸나요?
- @Hot-Ad2974 — Opus 5.5의 middle effort를 썼습니다. 커널을 직접 덤프해 Ghidra와 MCP에 준비하고, Xbox를 네트워크에 연결하고, Xbox 바이너리를 빌드할 도구 체인을 마련했더니 작업에 큰 문제가 없었습니다.
- @AutomaticAd6551 — 왜 MIT 대신 카피레프트 라이선스를 선택했나요?
원문: GitHub / 번역·요약: Trawling