디시인사이드 갤러리

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

갤러리 본문 영역

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

manatails갤로그로 이동합니다. 2016.02.06 19:59:03
조회 22837 추천 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/27 - -
공지 DLC 남청의원반 백과사전 1판 [69] 무우우마갤로그로 이동합니다. 23.12.18 41629 142
공지 DLC 벽록의가면 백과사전 2판 [20] 무우우마갤로그로 이동합니다. 23.10.02 20447 11
공지 스칼렛/바이올렛 실전 배틀 백과사전! 1판 [39] 무우우마갤로그로 이동합니다. 22.12.02 54805 35
공지 테라 레이드배틀 완전 공략! 1판 [45] 무우우마갤로그로 이동합니다. 22.12.02 63625 42
공지 스칼렛 & 바이올렛 大 백과사전 2판 [59] 무우우마갤로그로 이동합니다. 22.12.02 64139 61
공지 스칼렛 & 바이올렛 大 백과사전 1판 [100] 무우우마갤로그로 이동합니다. 22.11.21 149704 113
공지 스칼렛바이올렛 자주묻는 질문 QnA. 1판 [89] 무우우마갤로그로 이동합니다. 22.11.16 51198 62
공지 포켓몬스터 갤러리 통합 공지 - 대 백과사전 모음 [121] 무우우마갤로그로 이동합니다. 22.11.02 40446 34
공지 포켓몬스터 갤러리 이용 안내 [7408/1] 운영자 13.10.01 239640 563
11486176 싱글 렌탈팟내놔 검소한흑우갤로그로 이동합니다. 19:48 1 0
11486175 오늘저녁은미국산척아이롤 waagh!!(175.120) 19:48 1 0
11486174 온세상이포켓몬이야 회연갤로그로 이동합니다. 19:48 2 0
11486173 짤설명좀 Shiron갤로그로 이동합니다. 19:48 1 0
11486172 포갤러구타술 [1] 미샤리갤로그로 이동합니다. 19:47 4 0
11486171 짤 간지나면 저녁 치킨 먹음 [2] 헬가갤로그로 이동합니다. 19:47 5 0
11486170 다리쭉뻣고 [5] 스이렌갤로그로 이동합니다. 19:46 13 0
11486169 🌑 원 나잇 인 증요ㅋ ㅇㅇ(116.32) 19:46 0 0
11486168 님들 이 포켓몬 강한듯 [2] 코라니미갤로그로 이동합니다. 19:45 18 0
11486167 한컴이개같은거진짜왜쓰는거지 [3] 0dad0갤로그로 이동합니다. 19:44 12 0
11486166 짤녀 와몸매면 저녘 굶음 [5] 부갤러(220.65) 19:41 25 0
11486165 저 지금 엄청난 죄악을 저지르는 중 [4] ㅂㅂㄹㅋ갤로그로 이동합니다. 19:40 34 0
11486164 벌써 갤창랭킹나올시간이네 [3] 0dad0갤로그로 이동합니다. 19:39 28 0
11486163 일격기는 내 오리진임 [1] 뉴비니미갤로그로 이동합니다. 19:39 25 0
11486162 스토리 밀때 도핑약 이거 먹이면 돼? 포갤러(182.212) 19:39 12 0
11486161 간식 전포 죽이면 어캐되나 [5] 유참치갤로그로 이동합니다. 19:39 24 0
11486160 히히 거의다 모아따 함해봅시다갤로그로 이동합니다. 19:39 8 0
11486159 친밀도작용 샌드위치 사먹는것도 적용댐?? [1] 딸기쇼트케이크맛쿠키갤로그로 이동합니다. 19:38 10 0
11486158 포갤러들왜기엽지 [1] ㅇㅇ갤로그로 이동합니다. 19:37 14 0
11486157 5월 받짤 정산 [3] glaceon갤로그로 이동합니다. 19:37 27 0
11486155 지하철 앞에 여자 캔맥 안고 쳐자는데 [4] 네이티오갤로그로 이동합니다. 19:34 39 0
11486154 핫삼 칭호를 뭐줄까 [4] 딸기쇼트케이크맛쿠키갤로그로 이동합니다. 19:32 23 0
11486153 스트레스 받을때나 일이 안 풀릴때마다 자살하고싶노 죽고싶노 하고 중얼거림 [1] 메쿠이로갤로그로 이동합니다. 19:31 17 0
11486152 안농안농!! [13] 빙글빙글다람쥐갤로그로 이동합니다. 19:29 43 0
11486151 흑인에게 입술 강간당하기 직전인 수련이 ㅇㅇ(223.39) 19:29 45 2
11486150 짤 꼴린만큼 맛있는거 추천좀 ㅇㅇ [1] ㅇㅇ(1.231) 19:29 32 0
11486149 벌레랑 비행 찌르는 풀타입 역상성기 나오면 좋겠다 ㅇㅇ(58.78) 19:28 13 0
11486148 오늘 하늘 진짜 이뻐요 [20] 마리갤로그로 이동합니다. 19:27 56 0
11486147 포켓치 [6] 깨장갤로그로 이동합니다. 19:27 27 0
11486146 리선족노래 중독성 개쩌네 아스트랄갤로그로 이동합니다. 19:26 21 0
11486145 딩루 헤비봄버로 페테라 흑마렉스 원킬 나오나 [3] 딸기쇼트케이크맛쿠키갤로그로 이동합니다. 19:25 33 1
11486144 5월받짤정산 Shiron갤로그로 이동합니다. 19:25 19 0
11486143 일찍 퇴갤해야겠군 [7] D.V.S갤로그로 이동합니다. 19:23 40 0
11486142 님드라 그거아시나요? [4] 카지갤로그로 이동합니다. 19:23 21 0
11486141 5월받짤정산 [16] 민티갤로그로 이동합니다. 19:21 53 0
11486140 대추야자가 탕후루보다 당도가 높대요 [12] 마리갤로그로 이동합니다. 19:21 61 0
11486139 화난 뜨아거! [3] ㅇㅇ(1.231) 19:20 32 0
11486138 우리 이쁜 브케인 보고 가셈 [3] 티라노다리두개라잘섬갤로그로 이동합니다. 19:18 22 0
11486137 5월짤정산 [4] 라타갤로그로 이동합니다. 19:18 55 3
11486136 포켓몬 트레이너 프라나 그려옴 [27] RicardO갤로그로 이동합니다. 19:18 171 8
11486135 상대 파티 [3] 딸기쇼트케이크맛쿠키갤로그로 이동합니다. 19:17 19 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2