Switch 2, 소프트웨어만으로 첫 탈옥 성공
Jailbreaking the Switch 2
Switch 2 최신 펌웨어 23.0.1에서 동작하는 소프트웨어 전용 탈옥 ns2jb가 공개됐다. WebKit n-day와 SmileBASIC의 32비트 정수 오버플로를 조합해 코드 실행을 얻고, fs sysmodule의 경로 정규화 버퍼 오버플로로 임의 읽기·쓰기를 확보한 뒤 로더의 ExeFS 객체를 교체해 임의의 네이티브 코드를 실행한다. 이를 통해 홈브루 실행, 게임 모딩, 세이브 백업이 가능하며, 데모로 Mario Kart World에 캐릭터를 추가했다.
이 탈옥은 소프트웨어 전용 테더 방식으로, 임의의 네이티브 코드를 일반 sysmodule이나 내장 fs sysmodule로 실행할 수 있게 해준다.
HN 토론
218- hturan
정말 모든 면에서 놀랍네요.
만약 이게 사실이라면 복호화된 `fs` 읽기/쓰기가 가능하다는 건데, 몇 시간 안에 Switch 2 게임 덤프가 나타나기 시작해도 놀라지 않을 겁니다. 지금 우리가 살고 있는 리컴프/디컴프의 세계를 고려하면, 그건 콘솔 독점작이 임의의 하드웨어에서 플레이 가능해진다는 뜻이죠(닌텐도에게는 최악의 시나리오). 우리는 이미 Tears of the Kingdom이 iPhone에서 네이티브로 60fps로 돌아가는 걸 봤습니다.
KVM(또는 웹캠)을 통해 LLM에게 팔과 눈을 주는 것은 이런 종류의 하드웨어 작업에 매우 강력한 패러다임입니다. 작업을 병렬화하고 24/7 돌릴 수 있게 해주니까요. 외부 기기의 펌웨어/하드웨어 작업을 할 때 사람들이 이걸 더 많이 가지고 놀아보길 강력히 권합니다(덜 사악한 목적으로요!).
참고로 이건 닌텐도의 HackerOne(https://hackerone.com/nintendo)을 통해 쉽게 5만 달러 이상을 받을 수 있었을 겁니다.
- rootsudo
이해가 안 되네요, 사람들은 어떻게 codex를 이런 연구에 쓰는 거죠? 버그 바운티나 연구 같은 걸 하려고 하면 항상 잠기고 '블루' 티어 접근/데이라이트 뭐 그런 것만 주더라고요.
예를 들어 오래된 안드로이드 롬에서 몇몇 CVE를 조사하려고 했는데 완전히 거부하더군요. 마이크로소프트에서 마이크로소프트 버그 바운티에 제출하려고 할 때는 괜찮았는데 안드로이드는 안 되더라고요.
- coreyp_1
그가 Codex를 사용해서 이걸 했다는 게 믿기지 않네요!
이유: Codex가 제 코드에서 스택 오버플로를 찾으려고 할 때 저를 막았거든요, 권한 있는 보안 연구원이어야 한다면서요.
아마 제 코드에 있는 'Java'라는 단어에 반응한 것 같습니다. 하지만 저는 Java로 작업한 게 전혀 아니었어요... *C*로 작성된 개인 정규식 라이브러리이고, 저는 Java 방언을 작업하고 있었습니다(현재 12개 방언을 지원합니다... 재미로요. 판단하지 마세요.)
결국 Claude로 돌아가야 했습니다...
- schwarzrules
> 탈옥 자체는 약 2주간 상당한 노력이 들었습니다.
이건 이게 얼마나 인상적인지에 대한 미묘한 표현처럼 보이네요. LLM 이전에는 상당한 노력을 기울여도 이 결과를 얻는 데 훨씬 오래 걸렸을 것 같습니다.
- KeplerBoy
AI가 사용자(블로그를 몇 번 훑어보면 알 수 있는 숙련된 보안 전문가)에 비해 얼마나 중요한지에 대한 뻔한 논의는 제쳐두고, 현대 도구들(KVM, 블루투스 전등 스위치 깜빡임, USB 컨트롤러 기본 지원)이 이런 수준의 자동화를 가능하게 한다는 점이 정말 멋지다고 생각합니다.
- _imnothere
제 생각에는 닌텐도는 소니처럼 더 강한 반발을 받을 자격이 있습니다. 게임 키카드는 실제 소유권의 외관을 유지하면서도 사람들이 카트리지에서 기대하는 것을 제공하지 않습니다.
AI 해킹 트렌드에 더 많은 사람들이 뛰어들어 그들을 무너뜨리기를 정말 기대합니다.
- Melatonic
Switch 1처럼 첫 세대는 소프트웨어 탈옥이 가능하고 개조 펌웨어를 실행할 수 있지만, 이후 세대는 모드칩이 필요한 상황이 올지 궁금하네요.
- jyapayne
훌륭한 글입니다! 전등 스위치로 Switch 2를 스위칭하는 게 정말 웃기네요.
참고로 라즈베리 파이 피코(또는 유사한 것)를 키보드 에뮬레이터로 작성(또는 바이브 코딩)해서 코드를 입력하게 하면 SmileBASIC에 타이핑하는 '고통'을 완화할 수 있을 겁니다.