IT노예의 코드일기
[코드몽키]외국인 해커가 작업한 왕국건설 스토리를 분석해보았다 본문
많은분들이 방사능의나라 일본겜 왕국건설스토리 세이브연동가능하게 만들어달라는 요청이있어 한번 열어보았습니다
일단 외국인이 만든 모드를 알아보니 다이아캐쉬 무제한 사용 버전이 존재하더군요
하지만 버전이 업데이트 될때마다 기존의 세이브데이터연동이 되지않아 날아간다는 이야기를 들어보니 아마 해외버전은 작업자들마다 서명이 다르니 생기는 문제가 아닐까 싶습니다
일단 외국인 노동자가 어느부분을 수정했나 비교분석을 위해 코드를 까봐야겠죠
먼저 코드를 비교하기위해 구글 플레이스토어에서 순정 ‘왕국건설스토리’ 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플레이어에서 정상적으로 실행되는것을 확인.
루팅환경에서는 업데이트로인한 버전변경에도 세이브파일이 연동되게는 일단은 성공!
절반짜리 성공이라 아쉽긴하지만..
'IT' 카테고리의 다른 글
[속보]일본 후쿠시마가 방사능했다- 원전 사고전보다 2000배(동물들 죽어나가기 시작) (0) | 2020.02.26 |
---|---|
띠용~내가 사기꾼이라니? (0) | 2020.02.26 |
코드몽키 쇼타임☆ 코드몽키를 소개합니다 (0) | 2020.02.26 |
배트남VS한국 (0) | 2020.02.26 |
패킷통신 구라치기# (0) | 2020.02.26 |