본문 바로가기
Hack/Mobile

[Hacking Game App] Unity mono 엔진으로 개발된 게임 앱

by Becoming a Hacker 2020. 9. 22.
반응형

개요

Unity 기반 APP은 mono, il2 두 가지 방식으로 컴파일이 가능하며, il2로 컴파일된 앱의 경우 이전 포스트에서 간단하게 분석 했었습니다.

 

이번에도 mono로 개발된 게임 앱을 어떤 방식으로 분석해야할지 궁금해져 시작하게 되었습니다.

 

분석에 사용한 폭탄 게임은 직접 제작하여 사용하였으며, 처음 개발한 게임 앱이다보니 많이 허접하지만 해당 포스트를 따라하실 분들이 있을 수 있어 공유하도록 하겠습니다.

 

필요 도구 및 앱


분석

먼저 bomb.apk 파일을 압축해제한 뒤 assets\bin\Data\Managed\Assembly-CSharp.dll 파일을 백업해둡니다.

 

이후 dnSpy를 이용하여 원본 Assembly-CSharp.dll 파일을 열면, 다음과 같이 해당 앱에 적용된 C# 코드를 확인할수 있습니다. (복사본의 경우 스크립트 변조 시 몇몇 클래스를 제대로 인식하지 못해 원본을 사용합니다.)

 

실제 개발에 사용된 코드와 비교해 보면 변수 명을 제외한 코드가 모두 일치하는 것을 확인할 수 있습니다.

 

dnSpy에서 특정 C# 스크립트 변조는 마우스 오른쪽 버튼의 Edit Method (C#)을 통하여 쉽게 할 수 있었습니다.

 

저는 폭탄이 터지는 로직을 변경하여 실제 폭탄을 클릭하더라도 터지지 않도록 변경하였습니다.

코드가 길지도 않고 직관적으로 되어있어 누구나 쉽게 할 수 있을거라 생각하여 폭탄 로직 변경 부분은 따로 설명드리지 않겠지만, 흥미가 생기시는 분들은 도전해보는 것을 추천드립니다.


Referecne

https://m.blog.naver.com/PostView.nhn?blogId=linears_&logNo=221393855353&proxyReferer=https:%2F%2Fwww.google.com%2F

https://github.com/0xd4d/dnSpy/releases

 

댓글