이번에 포켓몬스파에서 파도타기를 배운 피카츄를 배포한다는 광고를 보았습니다.
예전에 뚫어놓았던 npfl 서버의 선물목록을 확인하니 미리 테스트 중이였는지 이미 올라와 있었습니다.
뭐 일단 예전에 제가 포켓몬스터 선물 배포서버에 대해 올린 이후로 별다른 소프트웨어 업데이트도 없었기에 예전과 같은 방식으로 배포를 진행하겠지 생각하며 선물 파일을 다운로드 받아 사설 선물서버에 올렸습니다.
그런데 이상하게도 소포가 없다는 말만 덩그러니 남긴 채 선물을 받는것이 불가능해 지더군요
이것은 제가 처음 작업을 시작할 때에는 전혀 못 보던 현상이였습니다.
그래서 좀 더 알아보기로 했죠.
사실 한참동안 서버와의 프로토콜을 분석한다고 시간을 허비했습니다.
전에 제가 언급했던 서버 말고 npul 등과 같은 많은 서버들이 3ds와 교신하기 때문에 혹시나 그쪽에서 별도의 인증 과정을 거치지는 않나 싶었습니다.
그리고 한가지 파일을 비교하면서 찾아낸 것이
그때 당시에 받은 선물 파일과 지금 다시받은 선물 파일이 다르다는 것이였습니다.
조금 놀랐죠, 단순히 정적일것 같았던 파일이 그때와는 다른 형식을 취하고 있었습니다.
예전과 같이 AES-CTR로 복호화를 해 보았습니다.
앞의 헤더값이 틀려지고 뒤에 암호화된 부분이 완전히 달라집니다.
몇 개의 파일을 돌려가며 분석해보니 맨 앞의 비트값에 따라 게임이 인식하여 선물이 비활성화 되는 듯 합니다.
ORAS는 해당 값이 C5이여야 선물을 받을 수 있습니다.
하지만 BOSS형식 파일 내부의 포켓몬 선물 데이터 자체도 닌텐도가 서명을 하기때문에 임의로 내용을 변경하면 게임 자체에서 오류를 내고
어느 단계에서 선물의 활성화 비활성화를 결정할지 생각해 보았습니다.
문득 npdl 서버에서 선물 파일을 다운로드 받을 때 보내는 요청문이 떠올랐습니다.
npdl 서버로 요청을 보낼 때는 변형된 http 프로토콜을 사용하는 데 유저에이전트에 상당한 양의 정보를 포함시킵니다.
그래서 여기서 아마 재인증을 시도할 것이라 생각하고 그 값을 실제 3ds에서 나온 값과 동일하게 맞춰서 파일을 다운로드 하는 클라이언트를 만들어 보았습니다.
삽질 끝에 이제 선물 받기를 시작합니다.
파도타기를 배운 피카츄를 받는 영상입니다.
여튼 중요한 피카츄의 스탯은 이렇습니다.
pkx 파일은 선물 배포일에 맞추어서 블로그에 따로 업로드 할 예정입니다.
매너티는 최고 존엄입니다.
음... 네가 그렇다면 그런거겠지
멍츙이라 먼고린진 잘모르겠지먼 일단 개추
닥추
감사
니가 그렇다면 그런게 맞아
아니였->아니었 (아니었 아니에요 아니어도 아니어서는 예외) [리듬 맞춤법 봇♬]
뭔가 존나 대단하긴 한 것 같은데 지식이 없어 뭔 소린지 하나도 못 알아먹겠다.
넌 진짜 볼때마다 놀랍다 - dc App
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ - dc App
미친놈이네이거
문과라 뭔소린진 모르겠는데 일단 닥개추 누른다 - dc App
이과망했으면
나도 컴공에 가고싶었는데
능력자는 개추
오만삼천원을 털어온 포갤러이다. - dc App
뭔가 개 쩌는데 이해를 못해서 그냥 개추만 누르고감
-- - dc App
초개념 갔네
니가 그렇다면 그런거겠지?
이였->이었 (받침 있으면 이었 없으면 였 이로 끝나면 받침 없으므로 였 아니었은 예외 인명엔 였(예 : 길동이였다) 성까지 쓰면 이었다(예 : 홍길동이었다)) [리듬 맞춤법 봇♬]
진짜 재능 오진다. 너같은 놈들땜에 이나라가 사는거냐
시바 ㅋㅋㅋㅌㅋㅋ닌텐도능욕이네 ㄹㅇㅋㅋ
와진짜 저번에봤던거도 그렇고 세계에서 손꼽히는 미친새끼아냐이거
어떻게 예상한 변조들이 전부맞고 조작하는방법까지 전부다맞지?
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ - dc App
이게 취미생활이라는게 웃음 포인트
범죄행위가 왜 초개념
시트론은 개추야!!
닌텐도는 안잡아가고 머하냐
얘 등판할때마다 닌텐도 능욕 - DCW