궁수의 전설 MOD 분석

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

궁수의 전설 MOD 분석

M LIN 71 19139 4
img.png 
본 문서는 blackmod.net 사이트에서 공유하는 궁수의 전설 버그판 Archero v1.2.2 MOD 어플리케이션 분석글입니다. 


악성 광고를 삽입하여 광고 수익으로 운영하는 blackmod 사이트의 모드앱 분석을 진행해보겠습니다. 해당 사이트는 한국 및 여러 나라들의 유명한 각종 게임을 크랙하여 배포하는곳으로 모드앱을 퍼나르는 대다수의 사이트들이 해당 사이트의 자료를 이용합니다. 

 img.png


자 그럼 본론으로 들어가서 해당 사이트에서 Archero 모드앱을 다운받아봅시다.

내부 파일만 봐도 수상한 파일인 libblackmod.so 가 들어있습니다.

blackmod 기능 
- ONE HIT
- GOD MODE

실제 게임을 진행해보니 공격에 맞아도 체력이 달지 않는 무적에 몬스터들이 한방에 죽는것을 확인하였습니다.

핵이 적용되니 바로 분석을 진행해보겠습니다. 

 

게임 실행 후 정상적으로 핵을 사용할 수 있다면 굳이 시간들여 libblackmod.so 를 분석하지 않아도 됩니다. 

린엔진의 후킹 탐지 기능을 사용하여 변조 지점을 바로 확인해보겠습니다.

 

img.png  

메인 로비화면에서 Hook Detector에서 Start를 누르게 되면 위와 같이 변조 지점이 나타납니다.

Hook Detector는 libil2cpp.so의 후킹으로 인해 변경된 오프셋, 변경된 오프셋에 해당하는 함수 이름, 점프시키는 위치, 점프 시키는 위치 라이브러리 이름순으로 후킹 여부 확인이 가능합니다.

실제로 후킹하는 모듈은 GQIMQLMYFH 인것을 확인할 수 있었으며, libblackmod.so는 GQIMQLMYFH 라이브러리를 로드시켜주는것으로 추측할 수 있습니다. GQIMQLMYFH 파일을 확인하기 위해 해당 폴더로 갔으나 삭제 되있는것을 확인할 수 있었습니다. 이는 분석 방지를 위해서겠죠? 굳이 동적 분석해서 파일 삭제 함수 후킹하는 등의 번거로운 작업 없이 이럴때에는 메모리 덤프를 이용하면 손 쉽게 파일을 추출할 수 있습니다.  

린엔진의 메모리 덤프 기능을 이용하면 매우 편리합니다.

 

img.pngimg.png

 

메모리 덤프 기능을 이용하여 원본 네이티브 라이브러리를 추출한 뒤 IDA로 분석해보았습니다.

HookDetector에서 첫번째 항목의 Jump Address가 0x4503c6d 으로 나오는데 이는 base Address(0x450000) + offset(0x3c6d) 으로 구성됩니다. 

 

img.pngimg.png

 

offset인 0x3c6d 주소를 따라가면 위와 같이 후킹 함수가 나타나게 됩니다. off_17018 ~ off_17020 함수포인터도 분석해보면 실제 후킹했었던 함수들을 호출하는것을 확인할 수 있습니다. 즉 자신의 캐릭터일 경우에는 ChangeHP 함수를 호출 되지 않아서 무적이 되는것이죠.

 

img.png

 

이처럼 blackmod 최신버전 모드앱도 번거로운 동적분석 없이 손쉽게 변조 지점등을 분석할 수 있습니다.

71 Comments
8 아수라발발이 2019.10.05 14:42  
그저신기합니다 사실 저는 하나도 모르겠어요 ㅠㅠ 흑흑 ㅠㅠ
1 용용 2019.10.05 15:56  
흠... 이거 암호문 아니죠?? 분명 굉장하다는건 알겠는데... 왜 읽지를 못하니 ㅠㅠㅠ

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

1 슈슈 2019.10.05 20:12  
대단하네요.. 감사합니다
1 핸강 2019.10.05 21:34  
감사합니다
2 KiJo 2019.10.05 22:23  
신기합니다...
2 Mqos 2019.10.06 00:05  
무슨말인지 모르겠지만 대단하네요
1 我不给你 2019.10.06 04:06  
알아보진 못했지만 대단한것 같아요
5 파파엄마 2019.10.06 06:32  
진짜 좋습니다, 린엔진 활용한 강좌 계속 되면 좋겠네요~~
2 아프로디테 2019.10.06 07:12  
어렵네요 ㅠㅠ
2 해바라기향 2019.10.06 11:00  
ㅎ 이해하기가 조금 힘드네요. ㅋ ㅎㅎ
1 함요 2019.10.06 11:23  
공부하기 좋은거 같습니다.
1 팀사일런 2019.10.06 23:34  
감사합니다
2 icebone 2019.10.07 11:52  
댓글내용 확인
M LIN 2019.10.07 12:25  
il2cpp 심볼들이용해서복구하였습니다
2 icebone 2019.10.07 13:04  
아 넵넵 답변감사합니다 :)
M LIN 2019.10.07 13:32  
댓글내용 확인
2 icebone 2019.10.07 13:36  
추가로 후킹 탐지기능은 별도의 플러그인이 있어야 동작하는것인지요??
3 하이큐 2019.10.07 14:02  
따로 받아야 될걸요
1 hyc0301 2019.10.07 13:55  
좋은 공부가 되네요.
3 하이큐 2019.10.07 13:59  
감사합니닿ㅎ 유용하네요
3 nqminhquan 2019.10.21 15:07  
감사합니닿ㅎ 유용하네요 .좋은 공부가 되네요.
9 단향 2019.11.24 13:22  
이야... 대단하시네요.. 진단할때도 유용할거 같습니다.
2 95grit 2019.12.07 00:18  
감사합니다
2 빙굴 2019.12.12 08:09  
감사합니다 안그래도 궁금했던 게임인데
3 가람 2019.12.14 23:27  
분석방지를 위한다는게 다른 사람들이 blackmod 사이트가 어떤 알고리즘 쓰는지 못보게 하려는거라는 말씀이시죠??
M LIN 2019.12.15 00:34  
넵, 게임 개발자 또는 게임 보안 담당자가 변조한 함수를 어떻게 조작하였는지 분석 하지 못하도록 방해 하는것이죠.
린엔진의 장점은 보안담당자 없이도 쉽게 변조 지점 확인이 가능합니다.
10 라피스 2019.12.15 08:07  
좋은 정보이자 자료네요. 번창하길 바랍니다. 감사합니다.

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

2 na0511 2019.12.15 11:34  
이렇게 보안 방어를 체크할수있군요

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

3 가람 2019.12.17 17:36  
off_17018 ~ off_17020 함수포인터는 어떻게 복구하나요??
2 songod 2019.12.19 17:12  
감사합니다.
4 김흑화 2019.12.20 22:02  
Hook Detector에서 Start를 누르면 write 라이브러리 네임 적는게 나오는데 뭘적어야하나요?
2 코몽님추종자 2019.12.21 10:35  
존경합니다.
1 구구긍 2020.01.01 03:14  
와.. 감사합니다
2 해키 2020.01.03 17:03  
감사합니다!
S Dhhd 2020.01.04 12:51  
감사합니다
2 혀기꼬 2020.01.08 15:27  
감사합니다 어렵군요
1 케록 2020.01.08 16:46  
감사합니다. 어렵네요...ㅋㅋ
28 사딸라 2020.01.08 23:28  
공부 많이 해야겠네요
1 lrg0000 2020.01.18 22:00  
r감사합니다 도움되네요
1 미쳐버리겠네 2020.01.28 08:44  
신기하네요
4 알려주세요오 2020.02.05 09:42  
1. 첫번쨰 질문.. 메모리 덤프한것중에 /cache 경로만 네이티브 라이브러리로 뜨는 방법 어떠케 하나영..

2. off_() 이 함수는 어떻게 만들어서 change 함수를 안가는것인지
이 off 함수를 어떻게 만들었는지 모르겠네요 보니까 해당 hook의 인자값까지 넣는데
이 off 함수는 무엇인지 모르겠네요.
1 tuanbeo22061 2020.02.20 16:11  
thanks you my freind
3 ch4njun 2020.02.20 20:08  
갈길이 머네요 ....ㅠㅠㅠ 열심히하겠습니다 감사합니다!!
4 포포 2020.03.01 11:16  
오우야 신기하네요 ㅎㅎ
1 nmtui 2020.03.02 19:58  
빨리 린엔진 깔아서 써보고 싶네요 ㅠㅠ재밌을거 같은데
1 H4N2 2020.03.18 02:23  
blackmod platinmod 모두 분석 방지를 철저히도 해뒀더군요..
7 래바리 2020.04.03 18:45  
감사합니다.
1 sdfadf 2020.04.05 21:02  
신기하다;;
2 mandalake 2020.04.12 22:30  
감사합니다 연습해보겠습니다
1 stuw 2020.05.19 17:27  
신기하네요...
1 이나얼아니 2020.05.20 13:26  
감사합니다
1 진태 2020.06.02 05:37  
암만 읽어봐도 모르겠다 ....ㅠㅠ
11 망수리 2020.06.08 19:28  
머가먼지모르겠네요...내공이 부족해..ㅋㅋㅋ
2 tlfgjadyd 2020.08.04 14:57  
이렇게 분석하는거군요
1 라이반 2020.08.11 08:57  
신기하군요
1 some 2020.08.16 22:22  
공부자료 감사합니다
1 미니 2020.09.01 23:04  
감사합니다~
1 킁컹이 2020.10.26 19:18  
와우 감사합니다 혹시 cocos는 어떻게 리버스하는지 궁금합니다..
1 차르 2020.11.02 11:15  
우와 감사합니다. 정말 ㅠㅠㅠ
5 킹왕짱 2021.02.02 21:36  
내공 있는 글에 그저 감탄하게 되네요.
정말 많이 배우고싶은데 실력은 없는데
의욕만 앞서는 것 같아요 ㅠㅠ
1 후후훔 2021.03.01 15:51  
뭐가 뭔지...어렵군요. 신기합니다
1 CheckZero 2021.03.12 11:17  
대단하세요.
1 공부 2021.06.19 10:07  
감사합니다
2 린풔 2021.07.28 01:57  
와 신기하네요
1 kontol99 2022.01.17 16:23  
와 신기하네요
2 leeSSi 2022.04.06 10:16  
와 언제 저걸 쉽게 이해할수 있을까요
1 miel 2022.08.17 16:28  
어렵지만... 설명 잘 보았습니다..
1 달리자 2022.11.19 09:14  
감사합니다~
8 Dean 2023.02.02 17:21  
감사합니다.
2 용맹덕 2023.02.22 16:20  
잘 읽었습니다.
1 blank1 2023.09.14 16:06  
감사합니다 뭐가 뭔지 하나도 모르겠네요 ㄷㄷ