포켓몬스터 XY/ORAS 선물서버 재현 시도 (1부)
Source
Evernote/Inbox/스압포켓몬스터 선물서버 개발기 (1부)-HIT갤러리.md
Summary
본문은 닌텐도 3DS 포켓몬스터 XY/ORAS의 선물서버를 재현하기 위한 기술적 분석 과정(1부)을 기록한 글입니다. 작성자는 TLS로 보호된 통신을 분석하기 위해 MITM 공격을 시도했으며, 이를 위해 3DS 시스템의 SSL 모듈(CIA 파일)을 추출하고 복호화하여 내장된 ‘Nintendo Class 2 CA’ 루트 인증서를 획득했습니다. 이후 가짜 루트 인증서를 생성하여 시스템 모듈을 패치하려 했으나 인증 오류로 인해 반벽돌 상태가 되었고, 편법을 통해 우회한 후 DNS 스푸핑을 이용해 가짜 서버를 구축했습니다. 그러나 포켓몬 서버(fushigi)는 코드 유효성만 확인하고 실제 데이터는 전달하지 않으며, 실제 데이터 통신은 별도의 NPFL 서버(npfl.app.nintendowifi.net)에서 클라이언트 인증을 요구하며 이루어짐을 발견했습니다. 이에 따라 3DS 내부의 ClCertA에서 클라이언트 인증서와 개인키를 추출하는 과정으로 이어집니다.
Key Points
- 포켓몬스터 XY/ORAS 선물서버 통신은 TLS(Nintendo Class 2 CA)로 암호화되어 있어 직접 분석이 어려움.
- 3DS 시스템 SSL 모듈(CIA)을 추출·복호화하여 내장된 루트 인증서를 획득하고, 이를 대체하는 가짜 인증서 생성 시도.
- 시스템 모듈 패치 시 인증 오류로 반벽돌 발생, 우회 후 DNS 조작을 통해 가짜 서버 구축.
- 포켓몬 서버(fushigi)는 선물코드 유효성만 확인하고 실제 포켓몬 데이터는 전달하지 않음.
- 실제 데이터 통신은 NPFL 서버(npfl.app.nintendowifi.net)에서 이루어지며, 3DS 클라이언트 인증서(ClCertA)가 필요함.
- 3DS 내부 AES 칩을 이용해 ClCertA를 복호화하여 클라이언트 인증서 및 개인키 추출 시도.