IT 블로그 !!

Cheat Engine Tutorial Step6 본문

Reversing/Cheat Engine

Cheat Engine Tutorial Step6

IT_Try 2018. 9. 11. 08:36

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


문제를 풀어보기 전에 우선 포인터의 개념에 대해서 알아보겠습니다. 프로그래밍에는 Class(객채), Structure(구조체)라는 것이 있다

어떤 게임에는 캐릭터 A가 있다고 합시다. A의 속성은 id, str, dex, att, hp등 여러가지가 있을 것입니다.



 

이러한 속성들은 캐릭터 1명한테만 있는 것이 아니라 C, D등 다른 캐릭터들에게도 있습니다.

게임상에서 캐릭터를 만들 때 마다 변수 선언하기도 힘들고, 구별하기도 힘들며 패치를 할 때 새로운 기능을 추가 할 때 에는 일일이 모든 캐릭터에 다 넣어줄 수는 없지요


이럴 때 필요한 게 Class(객체)입니다. 이 객체를 캐릭터 A, B, C가 가지고 있을텐데 이 각각의 캐릭터의 정보(객체)를 가리키고 있고 그 값을 가지고 있는데 이것을 가리키고 있는 것을 포인터라고 말합니다


개념을 파악했으니 문제를 풀어보도록 하자. 튜토리얼 창을 보게 되면 Change ValueChange Pointer 가 있습니다.

 Change Value는 말 그대로 메모리 주소의 값을 바꾼다는 뜻이고 Change PointerValue를 가리고키고 있는 포인터가 다른 주소에 값을 넣는다는 뜻입니다.


찾은 포인터가 고정이 되어있지 않을 수 있습니다. 그러나 이번 문제에서는 포인터가 하나만 나오고 포인터가 고정되어 있으므로 한번만 찾으면 됩니다. 이번 문제는 값을 5000으로 고정하는 것입니다


우리가 찾은 이 값은 맘대로 바꿀 수 있습니다. 하지만 Change Pointer를 누르게 되면 값이 바뀌어도 적용되지 않습니다.

왜냐하면 포인터가 다른곳을 가리키고 있기 때문입니다.



이런식으로 바뀌지 않습니다. 지금 이 상황을 그림으로 설명하면 이렇게 됩니다.


우리가 979였던 값을 5000으로 바꾸어도 Change Pointer를 하면 바꾼 값은 적용되지 않습니다

이미 포인터가 가리키고 있는 주소가 다르기 때문입니다.

그러므로 우리는 Step6 Value를 찾기보다는 그 주소의 상위에 있는 포인터의 주소를 찾아야 합니다.

우선 Change Pointer를 눌렀기 때문에 값이 저장되어 있는 주소를 다시 한번 찾도록 합니다.



Step6 Value의 주소가 002820E8이다. 포인터는 주소를 가지고 찾을 수 있습니다.

‘Value :’ 에 적는 칸 왼쪽을 보면 Hex가 있습니다. 주소가 Hex값으로 되어있기 때문에 Hex를 누르고 Step6 Value의 값을 복사해서 주소를 입력합니다.



값이 하나밖에 없기 때문에 이것이 Value를 가리키는 포인터가 됩니다.



포인터의 값을 살펴보면 Step6 Value의 주소값이 들어가있습니다. Step6 Pointer의 주소가 초록색인 이유는 값이 고정되어있기 때문입니다.

 

 list 오른쪽 위에 있는 Add Address Manually를 누르고

Description은 이름이니까 마음대로 하면 되고

  ㅁ -> ???  칸에 Step6 Pointer의 주소를 넣어주면 됩니다

  그리고 OK를 누르면 list에 추가됩니다.



포인터가 고정이 되있는지 확인하기 위해서 튜토리얼 창을 꺼봅니다.

껐다 키게 되면 Step6 Value의 값이 0이 됩니다. Step6 Pointer가 가리키고 있는 주소 001D2078로 Step6 Value의 주소를 바꿔주게 되면


포인터가 가리키는 주소에 100이라는 값이 있다는 걸 알 수 있습니다. 또 튜토리얼 창의 Change Value창을 눌르면 같이 값이 변하는 것을 알 수 있습니다. 문제에서 포인터가 가리키고 있는 값을 5000으로 고정시키라고 하였으니 



이렇게 해주시고 맨 오른쪽 Active도 클릭해주시면 Change Pointer를 해도 주소가 변경 되지 않습니다.

이렇게 하면 다음단계로 넘어갈 수 있습니다.






 












'Reversing > Cheat Engine' 카테고리의 다른 글

Cheat Engine Tutorial-Step8  (0) 2018.09.17
Cheat Engine Tutorial-Step7  (0) 2018.09.12
Cheat Engine Tutorial-Step5  (0) 2018.09.07
Cheat Engine Tutorial-Step4  (0) 2018.09.05
Cheat Engine Tutorial-Step3  (0) 2018.09.03