Computer/Crack2009. 5. 24. 22:14


드디어 마지막 step입니다. 마지막 단계인 만큼 알아야 할 것도 다른 step에 비해 조금 많습니다. 우선 c에 대해 조금 알아야 하는군요. 튜토리얼에서 필요한 코드가 주어지긴 하지만 이 코드를 이해 하려면 기본적인 c문법은 알고 있어야 합니다. c는 아래 링크에서 간단히 공부하고 오시기 바랍니다.

Win32 Api - C(문법) C(고급) C++(문법) C++(고급)

자, 그럼 마지막 단계를 풀어 보도록 하겠습니다. 이번에도 역시 Health값이 100으로 주어져 있고 'Hit me'버튼을 누를때마다 1씩 감소합니다. 우리가 해주어야 할 작업은 'Hit me'버튼을 클릭할때 시간에 따라 현재 시간의 초가 30초 이상이면 Health 값을 1000으로 , 미만이면 2000으로 바뀌게 하는 것입니다. 굉장히 어렵게 보이지만 그다지 어렵지 않으니 천천히 따라 오시기 바랍니다.

우선 위 링크에서 간단히 c문법을 공부하고 오셨을테니 튜토리얼에서 주어진 c코드를 잠시 살펴 보도록 하죠.

#include <time.h>

struct tm *timep;
time_t c;
c=time(0);

timep=localtime(&c);

if (timep->tm_sec>=30)
  *(int *)addresstochange=1000;
else
  *(int *)addresstochange=2000;


굉장히 짧은 코드입니다. 간단히 설명 드리자면 현재 시간을 구해서 30초 이상인지 비교후 30초 이상이면 addresstochange에 1000을, 미만이면 2000을 대입하는 코드입니다. 물론 addresstochange는 나중에 실제 주소로 바꿔야 겠지요.

그럼 시작해 보겠습니다. 우선 'Hit me'버튼을 클릭해 가며 Health의 주소를 찾은후 어떤 코드가 쓰기를 시도하는지 찾아보겠습니다.


00458eaa번지의 'ff 8b 18 03 00 00'코드 였군요. 'Show disassembler'버튼을 클릭해 'Memory Viewer'를 살펴 보죠.


조금 전 찾아 놓은 코드가 보이는 군요. 우리는 메뉴에서 'Tools - Script Engine'을 클릭합니다. 'Ctrl+Alt+A'를 눌러도 됩니다.



'Script engine'윈도우가 생성 되었습니다. 이 윈도우에 튜토리얼에서 주어진 코드를 입력해 줍니다. 물론 addresstochange는 Cheat Engine에 찾아놓은 Health의 주소로 바꿔 주어야 합니다. 주소값은 16진수 이므로 앞에 0x를 붙여야 겠죠? 제 컴퓨터 상에선 주소값이 009739B0으로 나왔기 때문에 0x009739B0으로 바꿔 주었습니다.


그럼 이제 메뉴에서 'Inject - inject into current process'를 클릭해 줍니다.


2번째 줄에 call명령이 포함된 'Auto assemble'윈도우가 생성 되었습니다. 이 명령어를 잘 기억해 두고 'Memory Viewer'윈도우로 돌아가 step 7에서 했던 것처럼 우리가 찾았던 1감소시키는 코드를 선택해 주고 'Tools - Auto Assemble'을 클릭해 'Auto assemble'윈도우가 생성되면 'Template-Code injection'을 클릭해서 아래 그림과 같은 template을 만들어 줍니다.


가독성을 위해 윈도우를 살짝 넓혀 보도록 하죠.


이제 이 template에서 1감소 시키는 originalcode를 삭제해 주겠습니다. 이 코드를 삭제 하지 않으면 Health값이 1000이 되어야 하는 상황에서 999가 되고 2000이 되어야 하는 상황에선 1999가 되어 버립니다. 그럼 3, 15, 16번째 줄을 삭제하고 newmem에는 우리가 만들었던 스크립트를 call하는 명령어를 입력해 주겠습니다. 기억 하시죠? 'call 011600CD'.


자 필요한 일을 모두 해 주었으므로 'Execute'버튼을 클릭해 코드를 'inject'하고 튜토리얼로 돌아가 'Hit me'버튼을 클릭해 보겠습니다.


Health가 2000으로 바뀌면서 'Next'버튼이 활성화 되었습니다. 성공이군요. 잠시 후에 다시 한번 'Hit me'버튼을 클릭해 보죠.


이번엔 1000으로 바뀌었습니다. 모든게 제대로 되었죠? 'Next'버튼을 클릭합니다.


모든 튜토리얼이 끝났습니다. 수고 하셨습니다.

 

'Computer > Crack' 카테고리의 다른 글

Cheat Engine - Searching Tip  (4) 2009.05.25
Cheat Engine - Step 8 : Multilevel pointers  (2) 2009.05.23
Cheat Engine - Step 7 : Code Injection  (4) 2009.05.22
Cheat Engine - Pointer(3D Pinball)  (0) 2009.05.22
Cheat Engine - Step 6 : Pointers  (3) 2009.05.21
Posted by J.sean