KairoSoft - KingDom Story 왕국건설스토리 모드분석

홈 > 안드로이드 > 안드로이드
안드로이드

KairoSoft - KingDom Story 왕국건설스토리 모드분석

많은분들이 방사능의나라 일본겜 왕국건설스토리 세이브연동가능하게 만들어달라는 요청이있어 한번 열어보았습니다

일단 외국인이 만든 모드를 알아보니 다이아캐쉬 무제한 사용 버전이 존재하더군요


하지만 버전이 업데이트 될때마다 기존의 세이브데이터연동이 되지않아 날아간다는 이야기를 들어보니 아마 해외버전은 작업자들마다 서명이 다르니 생기는 문제가 아닐까 싶습니다

일단 외국인 노동자가 어느부분을 수정했나 비교분석을 위해 코드를 까봐야겠죠


먼저 코드를 비교하기위해 구글 플레이스토어에서 순정 '왕국건설스토리' APK를 뽑아내, 외국인노동자의 손길이 닿은 mod apk  

이렇게 두개의 APK를 준비합니다


코드를 비교해보니



외노자가 총 다섯군데를 손본것이 확인되네요

각각

 

수정된 위치1 - 오프셋 5C625C  

F0 4D 2D E9 18 B0 8D E2 - 원본

FF 04 E0 E3 1E FF 2F E1 - 수정된 코드 


MVN R0, #0xFF000000

BX LR

어떤 수치를 R0레지스터에 넣고 리턴시킨걸보니 오프셋 5C625C 이부분이 게임캐쉬(다이아몬드)관련 코드가 아닐까싶네요


 

수정된 위치2 -오프셋 D815AC


F0 4B 2D E9 18 B0 8D E2  - 원본

00 00 A0 E3 1E FF 2F E1  - 모드 (0으로 리턴=false)

뭔진 모르지만 D815AC 여기는 그냥 False처리 혹은 0으로 리턴시키네요


 

수정된 위치3 - 오프셋 D81790


F0 4B 2D E9 18 B0 8D E2 - 원본

00 00 A0 E3 1E FF 2F E1  - 모드 (0으로 리턴=false)

여기도 뭔진 모르지만 D815AC 여기는 그냥 False처리 혹은 0으로 리턴시키는것을 확인 


 

수정된위치4 - 오프셋 81C50


F0 4B 2D E9 18 B0 8D E2 - 원본코드

00 00 A0 E3 1E FF 2F E1 - 수정된코드

여기도 뭔진 모르지만 D815AC 여기는 그냥 False처리 혹은 0으로 리턴시키는것을 확인 


 

수정된위치5 - 오프셋 D8B774 


70 4C 2D E9  - 순정코드

1E FF 2F E1  -수정된코드 - 뭔진 모르지만 이부분을 실행 안하고 BX LR로 바로 리턴시켜버림



이제 저 오프셋이 가르키는곳이 어떤 메소드들인지 덤프를 통해 IDA로 해당 오프셋위치의 메소드명을 확인해보니

5C625C - CoinManager클래스의 GetCoin() 메소드 - 예상했던대로 어마어마한 수치를 입력하고 리턴한게 게임캐쉬인것을 확인

D815AC - KairoPlugin클래스의 LicenseCheckForSugo() - 라이센스체크Sugo 관련 메소드였네요 False로 리턴시켰으니 체크를 무력화시킨듯 

D81790 - KairoPlugin클래스의 LicenseCheckForAu() - 라이센스체크Au 관련 메소드였네요 False로 리턴시켰으니 체크를 무력화시킨듯 

D81C50 - KairoPlugin클래스의 LicenseCheck() - 라이센스체크 관련 메소드였네요 False로 리턴시켰으니 체크를 무력화시킨듯 

D8B774 - LicenseChecker클래스의 DoCheck()메소드 - 라이센스첵 관련 클래스에서 체크실행메소드인듯한데 바로 리턴시켰으니 실행이 되지않을듯하네요


이렇게 1개의 캐쉬조작코드와 4개의 라이센스 체크 무력화 코드로 이루어진 모드였습니다

smali쪽에서는 어떤장난을 쳤는지 확인해보니

androidmanifest.xml에서 

 

hookpms가 들어있는것을 확인

서명값 체크까지... 크.. 지독한 새끼들이네


일단 이정도 파악을 마치고 순정 APK에 위의 작업을 적용해 사인작업까지 하니 실행이 안되네요 ..ㄷㄷ (뭔가 아직 놓친게 더있단말인가!)

몇시간 더 삽질을 하다가 도저히 못찾겠다 에잇!

앞으로 순정설치까지 한걸음인데..사람 돌아버리게만드는 카이로소프트 +_+

하지만 현재까지 분석된코드들로 루팅기기나 LD플레이어에서 정상적으로 실행되는것을 확인.

루팅환경에서는 업데이트로인한 버전변경에도 세이브파일이 연동되게는 일단은 성공..  절반짜리 성공이라 아쉽긴하지만..


작업된 루팅용 왕국스토리는 상단 링크 몽키치트닷컴에 있습니다

13 Comments
6 하늘사자 11.05 23:52  
고생하셨습니다~.. 코몽선생님 실력도 대단하시네요~

Congratulation! You win the 5 축하드립니다! 당첨되셨어요~!

S 코드몽키 11.06 00:22  
하루하루 늘 새로운것을 배워가는거같습니다^^;
5 아수라발발이 11.06 01:22  
오잉 코몽님 이런분석자료를~~
3 Haclthesoul 11.06 10:49  
몽키님 블로그도 있었네요 ㅎㅎ 고생하셨습니다
S 코드몽키 11.06 13:43  
부끄럽네요
3 dldldl 11.06 11:41  
코몽님 > < GOOD
1 쥬스 11.06 12:59  
모드가 무슨의미인가요..?
S 코드몽키 11.06 13:20  
우리나라말로 버그판 이라고 널리 알려져있죠
3 Haclthesoul 11.06 13:54  
MOD가 Modification의 약어로 쓰는걸거에요
먼가 수정된 프로그램이라는 뜻
1 우오빠 11.11 15:20  
대단하십니다!!!!!
1 치킨한마리 11.12 14:37  
당신의 노력에 큰 박수를 보내요!
1 sinchoin 11.14 21:10  
정말로 대단하시네요!!

Congratulation! You win the 2 축하드립니다! 당첨되셨어요~!

2 제비올 11.14 22:31  
고생하셨어용!