Mobile/Android
Unity기반(mono) 게임 App 분석
pyozzi
2019. 12. 7. 00:38
Unity기반 App은 mono, il2 두 가지 방식 중 하나로 컴파일이 가능하다.
이번 글에서는 mono방식으로 컴파일된 App을 분석하는 방법에 대해 다루도록 하겠다.
mono방식으로 컴파일된 App에는 위 3개의 라이브러리 파일이 포함되어 있다.
libmono.so 심볼 정보 역시 제거된 상태이지만, il2방식보다 보다 쉽게 심볼정보를 얻어 낼 수 있다.
Assembly-CSharp.dll
il2방식에서는 Metadata파일을 덤프하는 과정이 있었는데, mono방식은 /assets/bin/Data/Managed 에 위치한Assembly-CSharp.dll 파일을 확인하면 된다.
il2에서는 Dump 과정을 거쳐야만 얻을 수 있던 dll파일들이 mono방식에서는 바로 확인이 가능하다.
위 파일 중 Assembly-CSharp.dll 파일을 dnSpy에 로드한다.
실제 App에서 사용되는 Method들을 확인할 수 있다.
또한, Method 구현 코드까지 확인이 가능하다.
위 결과처럼 mono방식은 il2방식보다 보안수준이 현저히 낮은 것을 확인할 수 있다.
실제 App을 후킹할 때는 Target Method를 선정하고, 해당 Method의 RVA정보를 이용하여 후킹을 진행한다.