개요 치트 엔진을 이용한 정적 메모리 값을 변조하는 방법 개요 치트 엔진을 이용한 동적 메모리 값을 변조하는 방법 개요 게임 관련 애플리케이션을 대상으로 코드 분석 및 변조 시 가장 많이 활용되는 도구를 뽑으라고 한다면 치트 엔진(Cheat Engine)이 naro-security.tistory.com 이전 "치트 엔진을 이용한 정적 메모리 값을 변조하는 방법" 포스팅에 이어서 이번 포스팅에서는 "어썰트 큐브" 게임을 대상으로 내부 동작의 로직을 변조하고 코드를 삽입하는 방법에 대해서 다뤄보도록 하겠다. 실습 준비 [ 치트 엔진 다운로드 ] Cheat Engine Cheat Engine Trouble installing/running Cheat Engine? Check out the known githu..
개요 치트 엔진(Cheat Engine)은 주로 게임 내에서 값을 조작하거나 게임 내부 동작 로직을 수정하는 데 사용되는 프로그램으로 주 타겟은 PC 게임이다. 물론 모바일 디바이스에도 연결해 사용할 수 있지만, 모바일 쪽은 "Game Guardian"이 꽉 잡고 있어 치트 엔진은 잘 쓰이지 않는다. 그렇다고 치트 엔진이 Game Guardian 보다 성능이 떨어지느냐? 그건 절대 아니다. 오히려 더 정밀한 기능은 치트 엔진이 한 수 위지만, 편의성 및 접근성의 이유 등으로 모바일 분야 쪽에서는 많이 쓰이지 않는다. 이번 포스팅은 치트 엔진을 모바일 디바이스에 연결하는 방법에 대해서 기술하고자 한다. 다운로드 치트 엔진을 모바일 디바이스에 연결해 사용하기 위해서는 Frida 서버와 같이 디바이스에서 실행..
개요 치트 엔진을 이용한 동적 메모리 값을 변조하는 방법 개요 게임 관련 애플리케이션을 대상으로 코드 분석 및 변조 시 가장 많이 활용되는 도구를 뽑으라고 한다면 치트 엔진(Cheat Engine)이 아닐까 싶다. 치트 엔진은 보통 게임의 메모리 주소를 조작 naro-security.tistory.com 이전 "치트 엔진을 이용한 동적 메모리 값을 변조하는 방법" 포스팅에서는 "어썰트 큐브" 게임을 대상으로 동적 메모리 값을 변조하는 방법을 살펴봤다. 동적 메모리의 경우 프로그램이 실행되는 동안 데이터를 저장하고 처리하기 위해 게임 엔진에 의해 할당되는 메모리로 프로그램이 재실행 될 때 마다 주소가 변경된다. 반면, 정적 메모리는 동적 메모리와 반대로 고정적인 주소를 가지며, 이를 통해 프로그램 내부의 ..
개요 게임 관련 애플리케이션을 대상으로 코드 분석 및 변조 시 가장 많이 활용되는 도구를 뽑으라고 한다면 치트 엔진(Cheat Engine)이 아닐까 싶다. 치트 엔진은 보통 게임의 메모리 주소를 조작하여 게임 데이터를 변경하거나, 게임 내부의 변수나 값을 조작하는 등의 간단한 행위부터 동작 중인 앱을 디버깅하여 맵 포인터 분석, 스크립트 인젝터 등 다양한 행위를 가능케 해주는 애플리케이션이다. 또한, 치트 엔진은 x86 프로세서 아키텍쳐 기반의 운영 체제인 Windows 뿐만 아니라 ARM 프로세서 기반의 안드로이드 애플리케이션 분석 시에도 활용이 가능하다. 해당 포스팅부터 "Assault Cube"라는 FPS 게임을 대상으로 치트 엔진의 사용 방법을 익히고 이후 안드로이드 게임 앱 분석 방법까지 시리..
개요 Unity 기반의 엔진으로 제작된 안드로이드 게임 앱 분석 시 일반적으로 Assembly-CSharp.dll 파일을 통해 앱에서 사용되는 클래스와 함수 정보를 파악하게 된다. Assembly-CSharp.dll 파일에는 Unity의 게임 오브젝트들을 제어하고 게임의 동작과 기능을 구현하는데 이용되는 C# 스크립트가 포함되어 있으며, 컴파일 방식(Mono 및 IL2CPP)에 따라서 세부 코드를 파악하고 변조까지도 가능해진다. 때문에, 개발사들은 해당 파일을 통해 크래커들이 게임에서 사용되는 주요 클래스와 함수 코드를 분석하지 못하게 은닉 기법을 사용하여 숨긴다. 대표적인 은닉 기법으로는 PE구조와 CLR 메타데이터의 헤더를 손상시키거나 파일을 암호화하는 방법이 있으며, 이 경우 헤더 시그니처 복구 또..