[Cheat Engine] Tutorial: Step 5
Step 5에서는 값이 실행할 때마다 달라지는 주소를 직접 수정하는 대신, 그 주소에 값을 쓰는 코드 자체를 차단하는 방식으로 문제를 해결하게 된다. 주소가 매번 달라지기 때문에 단순히 값을 검색해서 바꾸는 방식으로는 해결할 수 없다. 따라서 이 단계에서는 코드가 어떤 주소에 값을 쓰는 순간을 포착하고, 그 코드를 NOP 처리하는 과정이 핵심이다. ...
Step 5에서는 값이 실행할 때마다 달라지는 주소를 직접 수정하는 대신, 그 주소에 값을 쓰는 코드 자체를 차단하는 방식으로 문제를 해결하게 된다. 주소가 매번 달라지기 때문에 단순히 값을 검색해서 바꾸는 방식으로는 해결할 수 없다. 따라서 이 단계에서는 코드가 어떤 주소에 값을 쓰는 순간을 포착하고, 그 코드를 NOP 처리하는 과정이 핵심이다. ...
Step 4에서는 자료형(Float / Double) 에 따라 값을 스캔하는 방법을 직접 경험하게 된다. 체력(Health)은 Float, 탄약(Ammo)은 Double 형태로 저장되어 있기 때문에 이전 단계들처럼 단순히 4 Bytes로만 검색하면 제대로 된 주소가 나오지 않는다. 자료형을 올바르게 지정하는 것이 이 단계의 핵심이다. 1. 체력 ...
Step 3에서는 초기 값을 모르는 상태에서 값이 어떻게 변하는지를 기반으로 실제 주소를 찾아내는 과정을 경험하게 된다. 이전 단계와는 달리 Health 값이 0~500 사이의 임의의 값으로 설정되어 있기 때문에, 정확한 값을 입력해서 스캔할 수 없다는 점이 이 단계의 핵심이라고 볼 수 있다. 따라서 이번 단계에서 가장 중요한 개념은 Unknown ...
Step 2는 Cheat Engine의 가장 기본적인 기능인 (Exact Value Scan)을 활용하여 게임 내부 값을 직접 수정해보는 단계다. 초보자라도 따라가기 쉬운 구조이지만, 실제로는 메모리 구조를 이해하는 데 중요한 기반이 된다. 이번 단계에서는 Health 값(초기 100)을 찾아 1000으로 변경하면 다음 단계로 넘어갈 수 있다. ...
Rev-basic-2 Writeup Rev-basic-2 문제는 입력된 문자열을 배열 형태로 저장된 값들과 비교하는 구조를 가지고 있다. Rev-basic-1에서 한 글자씩 비교하는 방식이었다면, 이번 문제는 배열 인덱싱과 반복 구조를 조금 더 복잡하게 다루고 있어서 한 단계 심화된 형태라고 볼 수 있다. 문제 파일 File ...
Rev-basic-1 Writeup Rev-basic-1 문제는 문자열을 한 글자씩 순차적으로 검사하는 구조로 되어 있다. 프로그램은 입력된 문자열을 특정 규칙에 따라 하나씩 비교하며, 모든 비교가 조건을 만족할 때만 Correct를 출력한다. 조금 더 세밀하게 코드를 따라가야 하기 때문에, Rev-basic-0보다 한 단계 더 분석적인 사고가 필요...
Rev-basic-0 Writeup Rev-basic-0 문제는 입력된 문자열이 특정 조건과 일치하는지를 검사하는 형태로 구성되어 있다. 겉으로 보기엔 간단한 프로그램이지만, 내부의 흐름을 따라가다 보면 문자열 비교가 어떤 방식으로 이루어지는지 자연스럽게 파악할 수 있다. 문제 파일 File Download: Rev-...