디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

[스압]포켓몬스터 선물서버 개발기 - 1

manatails갤로그로 이동합니다. 2016.02.06 19:59:03
조회 22829 추천 34 댓글 12
														

1편 https://gall.dcinside.com/board/view/?id=pokemon&no=3094527

2편 https://gall.dcinside.com/board/view/?id=pokemon&no=3094529

3편 https://gall.dcinside.com/board/view/?id=pokemon&no=3094530

4편 https://gall.dcinside.com/board/view/?id=pokemon&no=3094532



이번에는 포켓몬스터 XY/오루알사의 선물서버를 한번 재현해보고 싶었습니다.


의외로 해외 포럼 어디에서도 선물에 관련된 연구나 개발은 전혀 정보가 없던것도 신기했습니다.
GBATemp나 프로젝트 포켓몬에서도 그냥 암호화된 연결에서 더이상 정보를 캐내지 못하더군요.

그래서 제가 직접 해보기로 했습니다.


우선 리눅스 노트북을 이용해서 무선 AP를 만든 후 패킷캡쳐부터 시작했습니다.

viewimage.php?id=3db2db23e8dd36&no=29bcc427b38677a16fb3dab004c86b6fcffb4afa74a8d106219a53075e30e88a1ffcc6de1cf96025dea7b7c4c92dc6dde1b68159fddbf3c11c727218



가장 먼저 들어온건 3ds1-fushigi.pokemon-gl.com 서버였습니다.
ORAS는 3ds2, X/Y는 3ds1 서버를 이용합니다. 둘의 차이는 딱히 없고 그냥 이름만 다른듯 보입니다.



하지만 패킷 캡쳐 화면에서 보이다시피 TLS로 보호되어 있어 내용은 알 수 없습니다.

닌텐도 클래스 2 인증서로 서버 인증을 하고 있는것을 확인했습니다.

그래서 MITM 공격을 시도해보기로 했습니다.

우선 인증서가 닌텐도 자체서명 체인을 사용한 것으로 보아 아마도 게임파일 안에 루트인증서를 내장한 것으로 간주하고 열심히 게임파일 분해에 들어갔습니다.


viewimage.php?id=3db2db23e8dd36&no=29bcc427b38677a16fb3dab004c86b6fcffb4afa74a8d106219a53075e30e88a1ffc878d4c956e2bd9a4b9a39928c7b5c628e7bc859b9c41



파일을 죄다 압축해제하고 복호화시킨 다음 grep 를 사용하여 인증서나 여타 접속에 관계된 키워드를 검색해 보았으나

아무것도 검색되지 않았습니다. 이것때문에 거의 하루 삽질했네요

그리고 3DS의 펌웨어에 대해 알아보니 시스템 구성 요소들이 모듈화되어있다는 것을 알아냈습니다.

암호화 SSL 모듈을 공략해보기로 했습니다.


viewimage.php?id=3db2db23e8dd36&no=29bcc427b38677a16fb3dab004c86b6fcffb4afa74a8d106219a53075e30e88a1ffc878d4c956e2bd9a4b9a3cf24c6b574d85e8e871008f2


0004013000002F02 가 SSL 모듈이므로 업데이트 서버에서 해당 cia 파일을 추출했습니다.

하지만 업데이트 파일 자체는 3DS 공통키로 암호화가 되어 있으므로 3DS에서 직접 복호화를 해줘야 합니다.


viewimage.php?id=3db2db23e8dd36&no=29bcc427b38677a16fb3dab004c86b6fcffb4afa74a8d106219a53075e30e88a1ffc878d4c956e2bd9a4b9a3cc29c7e75c82ac92db5212c9


Decrypt9를 이용해서 3DS상에서 복호화를 하였습니다.

이제 ctrtool을 사용하여 cia 껍데기를 벗겨내고 내부의 데이터를 손대봅니다.

시스템 모듈 CIA 파일은 다시 NCCH라는 이미지 형식을 가지고 있고
NCCH는 다시 CXI와 CFA형식으로 나뉘는데 시스템 모듈은 실행파일을 포함하는 CXI입니다.


viewimage.php?id=3db2db23e8dd36&no=29bcc427b38677a16fb3dab004c86b6fcffb4afa74a8d106219a53075e30e88a1ffc878d4c956e2bd9a4b9a3cc7bc2ba59f48728fb359dc0



CXI 파일을 추출했습니다.

이제 CXI파일을 다시 분해해서 실행파일 영역과 헤더영역, 기타영역을 나눠줘야 합니다.


viewimage.php?id=3db2db23e8dd36&no=29bcc427b38677a16fb3dab004c86b6fcffb4afa74a8d106219a53075e30e88a1ffc878d4c956e2bd9a4b9a3cc7b93bafe8f1ffb395aeabb



실행파일 영역의 롬파일을 추출하고

그걸 다시 헤더영역과 실제 파일로 나눴습니다.

그리고 대망의 실행파일을 여니


viewimage.php?id=3db2db23e8dd36&no=29bcc427b38677a16fb3dab004c86b6fcffb4afa74a8d106219a53075e30e88a1ffc878d4c956e2bd9a4b9a3cb7bc0e045e19581ff519159



또 암호화가 되어있는 짜증나는 상황이 발생했습니다.

다행히 변조된 LZ77을 사용했다는 것을 찾을 수 있었고 복호화/암호화가 가능했습니다.


viewimage.php?id=3db2db23e8dd36&no=29bcc427b38677a16fb3dab004c86b6fcffb4afa74a8d106219a53075e30e88a1ffc878d4c956e2bd9a4b9a3992ac3e3e1b9d893991f78fe



복호화를 하니 드디어 3ds-fushigi 서버를 인증하던 루트 인증서 Nintendo Class 2 CA가 나왔습니다.

대충 생긴거보고 DER 형식이라고 여기고 해당 바이트들을 추출해 보았습니다.


viewimage.php?id=3db2db23e8dd36&no=29bcc427b38677a16fb3dab004c86b6fcffb4afa74a8d106219a53075e30e88a1ffc878d4c956e2bd9a4b9a39e2ec7e687a9c4ea45069bc4



다행히 인증서가 딱 튀어나왔습니다.

이제 저것과 똑같은 인증서를 만든 다음 저의 개인키로 직접 인증하고 다시 모듈로 집어 넣을겁니다.

그러면 게임에서 마치 진짜 3ds-fushigi 서버를 접속하는듯 한 행세를 할 수 있습니다.


viewimage.php?id=3db2db23e8dd36&no=29bcc427b38677a16fb3dab004c86b6fcffb4afa74a8d106219a53075e30e88a1ffc878d4c956e2bd9a4b9a39a79c8e7f148256310de51bd




리눅스에서 OpenSSL을 이용하여 2048 비트의 키를 생성합니다.
그리고 추출한 인증서와 똑같은 정보로 인증서를 생성하고 루트 인증서로 자기 서명을 합니다.
서명된 인증서는 다시 DER형식으로 변환합니다.


--------2편에서 계속-------


추천 비추천

34

고정닉 1

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 경제관념 부족해서 돈 막 쓸 것 같은 스타는? 운영자 24/05/13 - -
AD 나혼렙 어라이즈 그랜드 론칭! 운영자 24/05/09 - -
공지 DLC 남청의원반 백과사전 1판 [69] 무우우마갤로그로 이동합니다. 23.12.18 39984 142
공지 DLC 벽록의가면 백과사전 2판 [20] 무우우마갤로그로 이동합니다. 23.10.02 19719 11
공지 스칼렛/바이올렛 실전 배틀 백과사전! 1판 [39] 무우우마갤로그로 이동합니다. 22.12.02 54165 35
공지 테라 레이드배틀 완전 공략! 1판 [45] 무우우마갤로그로 이동합니다. 22.12.02 62895 42
공지 스칼렛 & 바이올렛 大 백과사전 2판 [59] 무우우마갤로그로 이동합니다. 22.12.02 63400 60
공지 스칼렛 & 바이올렛 大 백과사전 1판 [100] 무우우마갤로그로 이동합니다. 22.11.21 148721 113
공지 스칼렛바이올렛 자주묻는 질문 QnA. 1판 [89] 무우우마갤로그로 이동합니다. 22.11.16 50639 62
공지 포켓몬스터 갤러리 통합 공지 - 대 백과사전 모음 [121] 무우우마갤로그로 이동합니다. 22.11.02 39813 34
공지 포켓몬스터 갤러리 이용 안내 [7318/1] 운영자 13.10.01 239103 563
11456348 기생충특 _ 젼나리 투표함 포갤러(110.47) 06:18 0 0
11456346 성게 전자박쥐(3호)갤로그로 이동합니다. 06:17 1 0
11456321 샤워다햇긔 빙글빙글다람쥐갤로그로 이동합니다. 05:53 11 0
11456308 아침부터 칼바람 하고있어요 두르쿤갤로그로 이동합니다. 05:41 14 0
11456287 만약 너에게 슬픈일이 생긴다면 괜찮아라고 말해주고 잠만보(223.39) 05:18 19 0
11456284 자기 실패 Ai갤로그로 이동합니다. 05:16 11 0
11456278 켁븜 회연갤로그로 이동합니다. 05:12 14 0
11456268 인간적으로 6성 공방은 완육시켜서 와야하지 않냐 [3] Dd(119.67) 05:04 34 0
11456263 초거대 공중요새 칸타타레갤로그로 이동합니다. 05:01 18 0
11456246 마사지잘하는사람이랑 친구하고싶다 [2] 네이티오갤로그로 이동합니다. 04:44 21 0
11456244 아 핫후 먹어서 배아픔니다 두르쿤갤로그로 이동합니다. 04:42 14 0
11456241 아니무슨 새벽4ㅛㅣ40분인데 하늘이밝아와 펠리슈갤로그로 이동합니다. 04:41 13 0
11456233 찌리비크 써본사람 있음? [2] ㅇㅇ(121.88)갤로그로 이동합니다. 04:34 19 0
11456226 맥다맥 정신 나갈 거 같다 무쇠뽀로로갤로그로 이동합니다. 04:26 23 0
11456218 섹스보다 키스가야한거같음… 네이티오갤로그로 이동합니다. 04:14 35 0
11456212 야한거좀 볼게요 [2] 네이티오갤로그로 이동합니다. 04:07 33 0
11456211 잘자 포붕이들아 [2] 변덕레이저갤로그로 이동합니다. 04:05 26 0
11456204 창이냐 방패냐의 논쟁같이 아무짝에도 쓸모없는 군대/국정원 해체하고 모든 포갤러(61.102) 03:56 13 0
11456199 우으배아파서깼어 [5] 미샤리갤로그로 이동합니다. 03:52 29 0
11456188 저 포갤에 부탁이 있어요 [1] 청야갤로그로 이동합니다. 03:44 31 0
11456187 6V 메타몽 기부해줄사람... [1] 포갤러(221.159) 03:44 29 0
11456186 노래하는 글레이시아 변덕레이저갤로그로 이동합니다. 03:44 19 0
11456177 나울어서 눈물바다되는중 [5] 네이티오갤로그로 이동합니다. 03:36 34 0
11456174 하 시발 전국도감 다뒤져봣는데 네이티오갤로그로 이동합니다. 03:33 27 0
11456168 포켓몬 맞출때까지 못잘듯 네이티오갤로그로 이동합니다. 03:28 25 0
11456165 고동달 못 뽑아서 울었어 [2] 화이어갤로그로 이동합니다. 03:26 30 0
11456163 소드 처음하는데 그래픽 미쳤네 [4] 카르페.디엠갤로그로 이동합니다. 03:26 56 1
11456161 나 지금 막 두근두근라는중 네이티오갤로그로 이동합니다. 03:25 18 0
11456160 새벽에 깨는버릇 고쳐야하는데 변덕레이저갤로그로 이동합니다. 03:25 18 0
11456159 알아두면 언젠간 써먹는 꿀팁 모음 ㅇㅇ(118.235) 03:24 18 0
11456157 무슨포켓몬인지 생각해보자 [7] 네이티오갤로그로 이동합니다. 03:24 59 1
11456152 아니저장을햇는데 왜 예전꺼가다시올라감 네이티오갤로그로 이동합니다. 03:20 15 0
11456150 잘게요 [4] Ai갤로그로 이동합니다. 03:19 19 0
11456146 정답다시제출 [7] 네이티오갤로그로 이동합니다. 03:17 73 0
11456145 노릇노릇해져랏 변덕레이저갤로그로 이동합니다. 03:16 16 0
11456144 근데뭔포켓몽이지 네이티오갤로그로 이동합니다. 03:15 19 0
11456143 님들아 혹시 4세대에서 [2] 0oO갤로그로 이동합니다. 03:15 32 0
11456142 또 짤 안보이네 [2] 다꼬리갤로그로 이동합니다. 03:13 25 0
11456141 카지를찾아라정답 [1] 네이티오갤로그로 이동합니다. 03:12 34 0
11456140 아니 작아지기 대타출동 샹델라 뭔데 [2] 말랑쫀득갤로그로 이동합니다. 03:10 22 0
11456134 멀배좋아하는데 디코파고 좆목하는구나 [1] 네이티오갤로그로 이동합니다. 03:07 36 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2