Reversing/Cheat Engine

Cheat Engine Tutorial-Step8

IT_Try 2018. 9. 17. 07:51

이번에는 Cheat Engine Tutorial-Step8을 풀어보겠습니다.


이번에는 Tutorial6처럼 포인터에 대한 문제입니다.

Tutorial 6 에서는 포인터가 한번만 이루어졌지만 이번에는

한번만 이루어지는 것이 아닌 여러 개의 다중포인터에 대해서 다루겠습니다.

 

다중포인터의 개념은 아주 간단합니다. 어떠한 메모리가 데이터를 가리키는 횟수가 여러 번인 것이지요. 100이라는 숫자는 다른 포인터를 참조하고 있고 이 포인터도 유동적으로 그런 데이터 변환이 가능하다.

 

Tutorial 6에서는 1단계 포인터였다면 이번에는 4단계 포인터입니다.

4번 참조하였다는 의미이지요.

다음스텝으로 가는 조건은 값을 5000으로 고정되게 하는 것입니다.

 

한번 풀어보겠습니다

 

 

우선 포인터를 찾아보겠습니다.


Value의 주소를 찾았으니 이 주소를 통해 포인터를 따라갑시다.



주소를 입력했더니 값이 뜨지 않습니다. 왜 뜨지 않을까요?

그건 다 이유가 있습니다.

 

일단은 밑의 리스트의 value를 클릭하고

Find out what writes to this addressF6을 누릅니다.



F6을 클릭후 창을 띄우고

Change Value를 누르게 되면 값이 찍히게 됩니다.

보시면 은 mov [esi+18], eax을 볼 수 있는데요

 

eax의 값을 [esi+18]로 이동시킨다는 뜻입니다.

여기에 값이 검색되지 않는 이유가 있습니다.

바로 083D903을 참조하는 주소가 없기 때문입니다.

pointer의 주소는 value의 주소를 참조하고 있지 않고

이 주소 대신에 esi+18을 참조하고 있는 것입니다.

esi를 확인해 보겠습니다.



현재 esi의 값은 다음과 같습니다.

현재 esi의 값인 0183D90318을 더하게 되면

value의 주소인 0183D930이 나옵니다.

 

즉 포인터는 esi값에 세팅되어있는것입니다.

esi주소를 찾아야 포인터가 나오게되는것이죠.



데이터를 찾게되면 값이 하나밖에 없습니다.

이 값이 바로 Step8의 첫 번째 포인터인것입니다.

(Step8 P1 이라고 이름붙이겠습니다.)

 

이제는 Step8 P1을 참조하고 있는 포인터를 찾아보겠습니다.

이번에는 F6이 아닌 Find out what accesses to this address F5를 누르겠습니다.

이것을 하는 이유는 P2P1을 엑세스(접근)하기 때문입니다.



esi에 더해진게 없기 때문에

esi가 그대로 옮겨진 것을 알 수 있습니다.



똑같다는걸 알 수 있지요.

이 주소를 이용해서 찾아보면



이렇게 값이 뜨게됩니다.

이 과정을 반복해주시면 됩니다.



이번에는 P2에서 esi+14 한 것을 esi에 넣어주고 있습니다.

P2P3가 참조하고 있는 곳에서 +14를 해줘서 P2로 가게 될겁니다.



리스트 밑에 있는 것은

esi+14한 것을 esi로 옮기고 있기 때문에

위에 있는 cmp dword ptr [esi+14],00

을 클릭하고 거기의 esi를 검색하셔야합니다.



검색하니 또 다른 Pointer가 나왔습니다.

이것은 P3라고 이름붙이겠습니다.

F5을 눌러보겠습니다.



보게되면 이번엔 ESI주소에 + 0C를 해서 P3주소로 갑니다.

또 따라갑시다.

 

이전에 이걸 조금 쉽게 설명하면 다음과 같습니다.



이렇게 말이죠

이제 따라가보겠습니다.



이전과는 초록색의 주소가 나왔습니다!

초록색 주소는 고정되어있다는 뜻입니다.

 

이 프로세스를 껐다 키게되면 여기에 있는 List들은 초기화됩니다.

 

저번처럼 Add Address Manually를 사용하면 다중으로 Pointer가 추가됩니다.



Add Offset을 눌러서 칸을 늘리고

맨 밑의 빈칸에는 가장 마지막 포인터인 P4의 주소를 넣어주시고

아까 연산하였던 숫자들을 넣어줍니다

그리고 OK를 누르면



이런식으로 변수가 추가됩니다.

이 변수를 5000으로 고정시켜주면 NEXT버튼이 활성화 될 겁니다.

 


이상태에서 Change Pointer를 눌러주면 NEXT 버튼이 활성화 됩니다.



이렇게 말이죠

.. 정말 오래걸렸습니다.

가장 오래 걸린 Cheat Engine 풀이 인것 같습니다.


다음시간에는 Cheat Engine-Tutorial 마지막인 Step9을 풀어보겠습니다.