모바일 게임 분석에 앞서 주로 사용되는 엔진을 확인해보겠습니다.

 

모바일 게임에서는 주로 2가지의 엔진을 사용하고 있습니다.

 

유니티(Unity)와 언리얼(Unreal) 엔진이 주로 사용됩니다.

 

1) 유니티 

unity.com/kr

 

유니티 - Unity

Unity is the ultimate game development platform. Use Unity to build high-quality 3D and 2D games, deploy them across mobile, desktop, VR/AR, consoles or the Web, and connect with loyal and enthusiastic players and customers.

unity.com

장점

1) 무료 사용이 가능(무료 버전에서는 로고가 출력됨)

2) 3D, 2D 개발이 가능함

3) 자료를 찾기가 쉬움

 

 

2) 언리얼(Unreal)

www.unrealengine.com/ko/

 

언리얼 엔진 | 가장 강력한 리얼타임 3D 창작 플랫폼

언리얼 엔진은 게임, 시뮬레이션, 시각화의 디자인 및 개발에 사용되는 통합 크리에이터용 툴세트입니다.

www.unrealengine.com

장점

1) 엔진 소스코드 제공

2) 블루프린트 기능을 통해 코딩없이 제작이 가능함

 

두가지 중, 앞으로 Unity 게임 분석을 진행하고자 합니다.

 

출처 : brunch.co.kr/@iimjae123/1

'Mobile Game' 카테고리의 다른 글

Unity Mono 게임 분석  (0) 2020.10.11
Unity Mono vs il2cpp  (0) 2020.10.11

ActiveX를 작성해야할 일이 생겨서, Windows 10에 Viusal 6.0을 설치하는데 너무도 많은 삽질에 블로그에 기록합니다..

 

Visual Studio 6.0 iso 파일 다운로드 혹은 CD를 통해 파일 로드 후, 로컬 PC 내 임의 폴더로 설치 파일을 모두 복사합니다.

설치 파일 중, SETUPWIZ.INI 내 VmPath 의 내용을 삭제합니다.

(VmPath를 기존값대로 설정하면, 예전 XP 시절의 javx를 읽어서 에러가 난다고 하네요)

그 후, setup.exe파일의 설정을 변경해줍니다

호환 모드를 Windows XP SP3으로 변경해주고, 관리자 권한으로 실행에 체크합니다

설정 및 실행하여 라이센스 키 입력 및 다음을 누르다 보면, 아래와 같은 화면을 만나실 수 있습니다.

Visual FoxPro, InterDev, SourceSafe는 필요가 없으니 체크 해제 하고, Data Access를 클릭한 후 오른쪽 화면의 Change Option...을 클릭합니다.

ADO, RDS and OLE ~~~를 체크해제 하고 OK를 클릭합니다. 

저 설정이 체크되어 있으면 Windows 10에서 설치 시 에러가 발생합니다.

다시 Enterprise Tools를 체크하고 Change Option..를 클릭 후, 하단의 Visual Studio Analyzer를 체크해제 합니다.

 

OK 및 Continue 하여 설치하고 도중에 나오는 팝업은 그냥 다음 혹은 OK만 눌러주세요

설치가 완료되면 다음과 같은 화면을 확인 할 수 있습니다

Windows 재부팅합니다

재부팅하고 나면, 다음과 같은 팝업이 출력되는데 Install MSDN 체크 해제 해주시고 넥스트 및 중간에 나오는 Register도 체크해제 해주세요

그 후에, SP6 설치를 해줘야 합니다.

다운로드 페이지는 링크와 같습니다.

 

SP 6 설치 후후 Visual studio 6.0 C++을 실행해서 ActiveX 프로젝트 생성하자마자 테스트 겸 컴파일을 했는데... 아래와 같은 에러가 출력되더군요 ㅠ

midl\oleaut32.dll : error MIDL2020 : error generating type library : SaveAllChanges Failed : .\Debug\1234.tlb

여기서 한참 고생했는데요....

visual studio 6.0 C++를 관리자 권한으로 실행한 뒤에 컴파일 하면 정상적으로 컴파일이 됩니다..(ㅂㄷㅂㄷ..)

 

APP의 소스코드가 담긴 DEX파일을 숨기는 것은 매우 중요합니다

 

DEX 파일만 획득할 수 있다면, 원본 소스코드에 가깝게 복호화가 가능하므로 많은 개발자들 혹은 악성코드 제작자들은 DEX파일을 숨기기 위해 다양한 방법을 사용합니다

 

DEX파일 숨기기 위해, 많은 앱들이 Multi Dex를 이용합니다

MultiDex에 대한 내용은 아래 포스팅을 참고하고, MultiDex로 작성된 앱에 대한 동적디버깅 방법을 다뤄보고자 합니다

https://taesun1114.tistory.com/entry/Dynamic-Code-Loading-in-Android-featDexClassloader

다만, 해당 방법은 원본 DEX를 획득했다는 가정하에 두개의 DEX파일을 이용한 동적 디버깅 방법입니다

 

JEB를 통해 APK파일 로드 및 단말기에서 다음과 같은 명령으로 디버깅보드로 앱을 실행합니다

DEX파일 내 코드에서 DEX를 로드하는 DexClassLoader함수 직전에 BP설정(Ctrl+B) 및 원본 DEX에서 디버깅하고자 하는 코드에 같은 방법으로 BP를 설정합니다

 

JEB 메뉴 중 [파일] - [아티팩트 추가]를 통해 획득한 원본 DEX파일 추가 및 디버깅 하고자 하는 코드에 BP를 설정합니다

 

[디버거] - [시작]을 통해 단말기에서 앱을 실행하면 첫번째 DEX의 BP(DexClassLoader)에서 대기합니다.

Ctrl + F6을 통해 DexClassLoader함수를 실행하면 아래와 같이 원본 DEX의 BP를 설정한 부분에서 대기하는 것을 볼 수 있습니다

 

출처 : www.pnfsoftware.com/blog/debugging-dynamically-loaded-dex-files-with-jeb/

'Mobile' 카테고리의 다른 글

INSTALL_FAILED_INVALID_APK (with. zipalign)  (0) 2020.12.03
Frida cheat sheet  (0) 2020.10.11
Dynamic Code Loading in Android (feat.DexClassloader)  (3) 2020.05.08
odex to dex  (0) 2020.05.08
ro.debuggable 변경을 통한 동적 디버깅  (2) 2019.09.23

+ Recent posts