2012. 1. 15. 19:26

Cheat Engine Tutorial 정복


Cheat Engine은 강력한 memory 조작 프로그램입니다.
Online Game Hacking에 아주 대표적인 tool 입니다.

http://www.cheatengine.org/
 에서 다운받으시면 됩니다.

기본적인 사용법을 익히기 위해서

Cheat Engine Tutorial 과 , Cheat Engine을 실행시키시면 됩니다.

※ tutorial 프로그램에 풀이법이 영어로 아주 상세하게 설명이 되어 있습니다.
    꼭 읽어 보시길 강추합니다.
    그래도 조금 모든 mission을 clear 하기에는 부족한 부분이 있어서, 다시 한글로 정리하기 위한 목적입니다.


1. Exact Value 수정

매우 쉽습니다.
Exact Value 로 원하는 값을 변화 시키면서 찾으면 됩니다.
찾은 다음 tutorial 이 원하는대로 값을 1000으로 수정하시면 됩니다.

comment : 매우 쉬운 방법이나, 보안에 신경쓰지 않은 많은 online 게임에서 사용할 수 있습니다.
                ( 케릭터 공격력 수정, HP 수정 등등.... )


2. Unknown initial value (PW=419482)

(1) Scan Type을 Unknown initial value로 Scan합니다.
(2) Hit me 누르고 , Decreased Value 를 검색합니다.
(3) (2) 를 반복하다보면, HP 를 나타내는 값일 것 같은 주소가 보입니다. 5000으로 수정하여 줍니다.


3. Floating points (PW=890124)
 
(1) Value Type을 float으로 검색하여 값을 찾고 수정
(2) Value Type을 double로 검색하여서 값을 찾고 수정 

comment :   memory에서는 int와 float과 double이 저장되는 방법이 완전히 다르기 때문에
                  search를 할때 다르게 검색되어야 합니다.
                  값이 잘 검색되지 않는다면, float이나 double로 검색해보는것도 좋을듯 합니다.


4. Code finder (PW=888899) 

(1) Exact Value 로 값의 주소를 선택
(2) Find out what writes to this address 를 선택 후 한번 더 Change value 클릭
(3) 새롭게 pop up 된 windows 창에 instruction이 생길 것이다.
(4) Replace 클릭 후 다 지운후에 OK
(5) Change value 클릭 하면 clear 

comment : online game에서 어떤 값을 기록해 놓는데, 이 주소값이 매번 변할 수 있기 때문에,이 부분을 고정


5. Pointers: (PW=098712)

목표 value를 저장하는 주소값이 계속 바뀔 경우에는 우리가 원하는 값으로 어떻게 고정할 수 있을까요?
pointer를 사용하여야 합니다. 우리가 원하는 값을 가리키는 주소값을 저장 해놓는 주소값 이란것을 이해하고
이 주소값을 찾는것이 최종 목표가 되겠습니다.

(1) Exact Value로 값의 주소를 검색합니다.
(2) 저같은 경우는 011C43F0이 목표 value를 저장합니다.
(3) 011C43F0 으로 Hex의 value를 다시 검색합니다.  ( 이 주소를 보관해놓는 주소값을 검색 )
(4) 1001FD720 주소값에서 011C43F0 을 저장하고 있음을 알 수 있습니다.
(5) tutorial 에서 change pointer를 해보면, 1001FD720에 저장된 값이 변경됨을 알수가 있습니다.
(6) 그래서 우리는, 1001FD720에 가리키는  주소값의 value가 우리가 원하는 값임을 알수가 있습니다.
(7) Add Address Manually -> Pointer  check 후에  1001FD720의 값을 설정해 줍니다.
(8) 그러면 P->011c4070 은 우리가 원하는 value를 가리킴을 확인할수가 있습니다.
(9) value를 5000으로 고정 후 Freezing ( 값을 고정 , no active ) 시켜주면 clear 


6.  Code Injection: (PW=013370)

(1) Exact Value로 값의 주소를 검색합니다.
(2) What writes to this address 로 어느 부분에서 값을 변경하는지 알아냅니다.
(3) show disasembler를 누르고  Tools -> Auto assemble -> Template -> Code injection을 찾아갑니다.
(4) 주소 지정부분에 값을 decrease 하는 주소값을 넣어줍니다.
(5) 이제 내용을 바꿀수가 있는데요, 간단하게 dec에서 inc 로 변경해서 두번 넣어주면 클릭할때마다 2씩 올릴수있게 됩니다.

comment : program의 흐름을 마음대로 바꿀수가 있습니다. assembly 언어를 조금 알아야 마음껏 수정이 가능합니다.
                한줄의 명령어를 -> JUMP to my code 로 바꿔주고 -> 수정한대로 실행후에 -> return to address 식으로 진행


7.  Multilevel pointers: (PW=525927)

주소값 -> 주소값 -> 주소값 -> 값을 가리키는 형식입니다.

(1) 푸는법은 5번 문제랑 거의 동일합니다.
(2) pointer를 지정할때 pointer 버튼을 누르면 pointer 의 pointer를 지정하게 할 수가 있습니다.


tutorial 을 모두 완료하였습니다.