치트엔진에서 제공하는 튜토리얼은 각 단계를 거치면서 자연스럽게 프로그램의 기능을 익힐 수 있도록 설계되어있습니다.
많은 도움이 되므로 꼭 풀어보시길 추천합니다.
step1~step5는 간단하므로 한꺼번에 풀이를 올려보았습니다.
1. Tutorial
치트 엔진 자습서에 오신 것을 환영합니다. (v3.3)
이 자습서는 게임에서 쓸 수 있는 치트의 기본에 대해 설명하고 치트 엔진에 더 익숙해지게 만들어 줄 것입니다.
먼저, 아직 치트엔진을 실행하지 않았다면, 치트 엔진을 실행하십시오.
그런 다음 "열기" 아이콘을 클릭하십시오.(상단 왼쪽 컴퓨터 정면에 있음)
프로세스 윈도우가 열리면, 다시 자습서를 찾으십시오. 이름을 바꾸지 않았다면, 프로세스 이름은 'tutorial.exe' 일 겁니다.
그것을 선택하고, 확인을 클릭하십시오. 이제는 다른 모든 버튼들은 무시하십시오. 그것들이 좋아 보인다면 나중에 실험하십시오.
모든 것이 제대로 진행되었다면, 이제 프로세스 창이 지금 사라질 것이고, CE 상단에 프로세스 이름이 보일 것입니다.
이제 다음 단계를 계속하려면 다음을 클릭하십시오. (또는 원하는 단계로 진행하기 위해서는 암호를 입력하십시오)
Step 1 은 작업 할 프로세스를 치트엔진 프로그램에서 여는 방법에 대해 소개하고 있다.
모니터 아이콘을 클릭하여 프로세스 선택 창을 열어준다.
프로세스 목록중 이름이 tutorial-xx 인 프로세스를 선택하여 open 버튼으로 열어준다.
2. Step 2
2단계: 정확한 값 스캔 (PW=090453)
이제 치트 엔진으로 튜토리얼을 열었으니 다음 단계로 넘어가겠습니다.
이 창 하단에 Health: xxx라는 텍스트가 표시됩니다.
'Hit me'를 클릭할 때마다 체력이 감소합니다.
다음 단계로 넘어가려면 이 값을 찾아서 1000으로 변경해야 합니다.
값을 찾는 방법은 여러 가지가 있지만 가장 쉬운 방법인 '정확한 값'에 대해 설명하겠습니다:
먼저 값 유형이 최소 2바이트 또는 4바이트로 설정되어 있는지 확인합니다. 1바이트도 작동하지만 주소를 찾은 후 변경하려는 경우 쉽게 해결할 수 있는 문제가 발생할 수 있습니다. 주소 뒤의 바이트가 0이면 8바이트가 작동할 수도 있지만, 저는 그렇게 생각하지 않습니다.
싱글, 더블 및 기타 스캔은 값을 다른 방식으로 저장하기 때문에 작동하지 않습니다.
값 유형이 올바르게 설정되면 스캔 유형이 'Exact Value'으로 설정되어 있는지 확인하세요.
그런 다음 값 상자에 현재 건강 상태를 입력합니다. 그리고 'First scan '을 클릭합니다.
잠시 후(PC 속도가 매우 느린 경우) 스캔이 완료되고 왼쪽 목록에 결과가 표시됩니다.
1개 이상의 주소를 찾았는데 어떤 주소인지 확실하지 않은 경우 'Hit me'를 클릭하고 새 상태 값을 값 상자에 입력한 다음 'Next scan'을 클릭합니다.
주소를 찾았다고 확신할 때까지 이 과정을 반복하세요. (목록에 주소가 하나만 있는 경우......)
이제 왼쪽 목록에서 주소를 더블클릭 합니다. 그러면 하단의 목록에 주소가 팝업 되어 현재 값이 표시됩니다.
값을 두 번 클릭(또는 선택한 후 Enter 키를 누름)하고 값을 1000으로 변경합니다.
모든 것이 정상적으로 진행되면 다음 버튼이 활성화되고 다음 단계로 넘어갈 준비가 된 것입니다.
참고:
스캔하는 동안 뭔가 잘못되었다면 'New scan'을 클릭하고 스캔을 다시 반복하세요.
또한 값을 가지고 놀면서 'hit me'를 클릭해 보세요.
다음 스텝으로 나아가기 위해서는 Health의 값을 1000으로 조작하여야 한다.
기본 health 의 값이 100이므로 100이 저장된 변수를 찾은 다음, Hit me버튼으로 값을 감소시켜 감소하는 변수를 추적한다.
값에 100을 입력하고 first scan을 실행한다.
그런다음 Hit me 버튼을 눌러 Health 값을 감소시킨다.
왼쪽의 결과 창에 감소한 값을 가진 변수를 추적하여 표시해준다.
빨간색 글자가 값이 변했음을 알려준다.
00131D48이 바로 우리가 찾는 변수의 주소이다.
더블클릭하여 주소목록에 추가한다.
주소목록에 추가한 Value를 클릭하여 값을 1000으로 바꾸어준다.
Ok 버튼을 누르면 값이 수정된다.
이제 Next 버튼이 활성화 된 것을 확인 할 수있다.
3. Step 3
3단계: 초기값을 알 수 없음(PW=419482)
이제 정확한 값을 사용하여 값을 찾는 방법을 알아냈으니 다음 단계로 넘어가겠습니다.
하지만 먼저 해야 할 일이 있습니다. 새 스캔을 하고 있으므로 새 스캔을 시작하려면 먼저 새 스캔을 클릭해야 합니다. (이 단계가 간단하다고 생각할 수도 있지만, 얼마나 많은 사람들이 이 단계에서 막히는지 알면 놀랄 것입니다.) 이 단계는 다시 설명하지 않겠으니 이 점을 염두에 두시기 바랍니다.
이제 새 스캔을 시작했으니 계속 진행하겠습니다.
이전 테스트에서는 초기 값을 알고 있었기 때문에 정확한 값 검색을 수행할 수 있었지만, 지금은 시작 값을 알 수 없는 상태 표시줄이 있습니다.
값이 0에서 500 사이라는 것만 알 수 있습니다. 그리고 '나를 때려'를 클릭할 때마다 체력을 잃게 됩니다. 매번 잃는 양은 상태 표시줄 위에 표시됩니다.
이 값을 찾는 방법에는 여러 가지가 있습니다. (예를 들어... 스캔을 통해 값을 감소시키는 방법) 하지만 가장 쉬운 방법만 설명하겠습니다. “초기 값 알 수 없음”, 감소된 값.
현재 값을 모르기 때문에 정확한 값은 아무 소용이 없으므로 '알 수 없는 초기 값'을 스캔 유형으로 선택하고, 다시 값 유형은 4바이트로 선택합니다. (대부분의 Windows 앱은 4바이트를 사용합니다.) 첫 번째 스캔을 클릭하고 완료될 때까지 기다립니다.
완료되면 '히트'를 클릭합니다. 체력이 일부 손실됩니다. (손실된 양이 몇 초 동안 표시되다가 사라지지만, 그럴 필요는 없습니다).
이제 치트 엔진으로 이동하여 '감소된 값'을 선택하고 '다음 스캔'을 클릭합니다.
스캔이 완료되면 '히트미'를 다시 클릭하고 몇 개만 찾을 때까지 위 과정을 반복합니다.
값이 0에서 500 사이라는 것을 알고 있으므로 가장 필요한 주소일 가능성이 높은 것을 골라 목록에 추가합니다.
이제 다음 단계로 진행하기 위해 체력을 5000으로 변경합니다.
체력을 5000으로 변경해야하는데, 원래 설정된 값을 알 수 없다.
이런 경우에는 scan type 의 unknown initial value 옵션을 사용하여 기존의 알 수 없는 값에서 그 값의 감소나 증가를 추적하여 원하는 것을 찾는다.
먼저 unknown initial value를 옵션으로 스캔을 실행한다.
그런다음 hit me를 눌러 값을 감소시키고,
Decreased value로 scan type을 바꾸어 next scan을 실행한다.
실행하면 검색 결과가 여럿이 나오는데, 원하는 값을 찾을때까지 값 감소 -> next scan을 반복한다.
5번쯤 반복하면 다음과같이 결과값의 개수가 5개로 줄어든다.
값의 범위는 0~ 500 이므로 가장 첫번째 항목이 우리가 찾는 값이다.
더블클릭하여 주소목록에 추가한뒤 값을 5000으로 변경해준다.
Next 버튼이 활성화 되었다.
4. Step 4
4단계: 부동 소수점(PW=890124)
이전 튜토리얼 에서는 바이트를 사용하여 스캔했지만 일부 게임은 소위 '부동 소수점' 표기법으로 정보를 저장합니다.
(아마도 단순한 메모리 스캐너가 쉽게 찾지 못하도록 하기 위해서일 것입니다).
부동 소수점은 소수점 뒤에 몇 자리 숫자가 있는 값입니다. (예: 5.12 또는 11321.1)
아래에는 체력과 탄약이 표시됩니다. 둘 다 부동 소수점 표기법으로 저장되지만 체력은 부동 소수점으로, 탄약은 더블로 저장됩니다.
나를 때리면 체력이 감소하고 사격을 클릭하면 탄약이 0.5만큼 감소합니다.
계속하려면 두 값을 모두 5000 이상으로 설정해야 합니다.
여기에서는 정확한 값 스캔이 잘 작동하지만 다른 유형으로도 실험해 볼 수 있습니다.
이번엔 자료형이 float와 double인 변수를 찾아 값을 5000으로 변경해야한다.
Scan type을 All로 바꿔준다음 first scan을 실행한다.
아주많은 결과가 나온 것을 확인할 수있다.
step 3 처럼 값을 감소해 나가며 결과값을 압축한다.
더블클릭하여 주소목록에 추가 해 줍니다.
Next 버튼이 활성화 된 것을 확인 할 수 있습니다.
5. Step 5
5단계: 코드 찾기(PW=888899)
때때로 값의 위치가 변경될 때, 게임을 다시 시작할 때 또는 플레이하는 동안에도 저장되는 경우가 있습니다. 이 경우에도 두 가지를 사용하여 여전히 작동하는 테이블을 만들 수 있습니다.
이 단계에서는 코드 찾기 기능을 사용하는 방법을 설명하겠습니다.
여기 아래의 값은 튜토리얼을 시작할 때마다 다른 위치에 있으므로 주소 목록의 일반 항목은 작동하지 않습니다.
먼저 주소를 찾아보세요. (여기까지 왔으니 주소를 찾는 방법을 알고 있을 것입니다.)
주소를 찾았다면 치트 엔진에서 주소를 마우스 오른쪽 버튼으로 클릭하고 “이 주소에 기록된 내용 찾기”를 선택합니다. 빈 목록이 있는 창이 나타납니다.
그런 다음 이 튜토리얼의 값 변경 버튼을 클릭하고 치트 엔진으로 돌아갑니다. 모든 것이 제대로 되었다면 이제 어셈블러 코드가 있는 주소가 있을 것입니다.
이를 클릭하고 바꾸기 옵션을 선택하여 아무 작업도 수행하지 않는 코드로 바꿉니다. 그러면 고급 옵션 창의 코드 목록에 코드 주소가 추가됩니다. (테이블을 저장하면 저장됩니다.)
중지를 클릭하면 게임이 다시 정상적으로 실행되고 닫기를 클릭하여 창을 닫습니다.
이제 값 변경을 클릭하고 모든 것이 올바르게 진행되면 다음 버튼이 활성화됩니다.
참고: 충분히 빠른 속도로 주소를 고정하는 경우 다음이 표시되지 않을 수도 있습니다.
이번단계를 통과하기 위해서는 Change value 버튼을 눌러도 값이 변경되지 않도록 어셈블리 코드를 수정해야한다.
기본값이 100이므로 우선 100을 스캔한다.
다음으로 change value 버튼을 눌러 값을 변경시킨 다음, scan 결과창에도 같은 값으로 바뀌는 항목이 있는지 확인 한다.
찾았으면 더블클릭하여 주소목록에 추가한다.
해당 주소에 쓰기 위해 접근하는 목록을 알기 위하여 오른쪽 버튼 – find out what writes to this address를 클릭한다.
다음과 같은 팝업이 뜬다면 yes를클릭한다.
아래와 같은 창이 뜨는것을 확인 할 수 있다.
이제 step5의 change value 버튼을 눌러 이 변수에 접근하는 목록을 추적한다.
change value 버튼을 누르면 'the following opcodes write to 00117A80' 창에 항목이 하나 뜨는데, 이것이 바로 change value 코드이다. 이 코드를 이제 아무것도 하지 않도록 수정해 줘야한다.
Show disassembler를 클릭한다.
클릭하게되면 어셈블리 코드가 나오는데, 우리가 바꿀 부분에 대고 오른쪽 버튼 – replace with code that does nothing 을클릭하여 아무 기능도 하지 않도록 바꾸어준다.
ok버튼
확인하면 아무것도 수행하지 않는다는 의미인 ‘nop’ 으로 바뀐 것을 알 수 있다
이제 tutorial 의 change value 버튼을 눌러보자. 값이 바뀌지 않는다면 성공이다.