궁수의 전설 MOD 분석
본 문서는 blackmod.net 사이트에서 공유하는 궁수의 전설 버그판 Archero v1.2.2 MOD 어플리케이션 분석글입니다.
악성 광고를 삽입하여 광고 수익으로 운영하는 blackmod 사이트의 모드앱 분석을 진행해보겠습니다. 해당 사이트는 한국 및 여러 나라들의 유명한 각종 게임을 크랙하여 배포하는곳으로 모드앱을 퍼나르는 대다수의 사이트들이 해당 사이트의 자료를 이용합니다.
자 그럼 본론으로 들어가서 해당 사이트에서 Archero 모드앱을 다운받아봅시다.
내부 파일만 봐도 수상한 파일인 libblackmod.so 가 들어있습니다.
blackmod 기능
- ONE HIT
- GOD MODE
실제 게임을 진행해보니 공격에 맞아도 체력이 달지 않는 무적에 몬스터들이 한방에 죽는것을 확인하였습니다.
핵이 적용되니 바로 분석을 진행해보겠습니다.
게임 실행 후 정상적으로 핵을 사용할 수 있다면 굳이 시간들여 libblackmod.so 를 분석하지 않아도 됩니다.
린엔진의 후킹 탐지 기능을 사용하여 변조 지점을 바로 확인해보겠습니다.
메인 로비화면에서 Hook Detector에서 Start를 누르게 되면 위와 같이 변조 지점이 나타납니다.
Hook Detector는 libil2cpp.so의 후킹으로 인해 변경된 오프셋, 변경된 오프셋에 해당하는 함수 이름, 점프시키는 위치, 점프 시키는 위치 라이브러리 이름순으로 후킹 여부 확인이 가능합니다.
실제로 후킹하는 모듈은 GQIMQLMYFH 인것을 확인할 수 있었으며, libblackmod.so는 GQIMQLMYFH 라이브러리를 로드시켜주는것으로 추측할 수 있습니다. GQIMQLMYFH 파일을 확인하기 위해 해당 폴더로 갔으나 삭제 되있는것을 확인할 수 있었습니다. 이는 분석 방지를 위해서겠죠? 굳이 동적 분석해서 파일 삭제 함수 후킹하는 등의 번거로운 작업 없이 이럴때에는 메모리 덤프를 이용하면 손 쉽게 파일을 추출할 수 있습니다.
린엔진의 메모리 덤프 기능을 이용하면 매우 편리합니다.
메모리 덤프 기능을 이용하여 원본 네이티브 라이브러리를 추출한 뒤 IDA로 분석해보았습니다.
HookDetector에서 첫번째 항목의 Jump Address가 0x4503c6d 으로 나오는데 이는 base Address(0x450000) + offset(0x3c6d) 으로 구성됩니다.
offset인 0x3c6d 주소를 따라가면 위와 같이 후킹 함수가 나타나게 됩니다. off_17018 ~ off_17020 함수포인터도 분석해보면 실제 후킹했었던 함수들을 호출하는것을 확인할 수 있습니다. 즉 자신의 캐릭터일 경우에는 ChangeHP 함수를 호출 되지 않아서 무적이 되는것이죠.
이처럼 blackmod 최신버전 모드앱도 번거로운 동적분석 없이 손쉽게 변조 지점등을 분석할 수 있습니다.