Computer/Crack2009. 5. 25. 20:32


Step 9까지 모두 푸셨다면 이제 웬만한 게임은 대부분 혼자서도 원하는 값을 찾아 고치실 수 있을 겁니다. 이번 강좌에선 간단한 tip 몇 가지를 소개해 드리겠습니다.

오늘 함께할 게임은 또 다른 고전 명작 게임 Prehistorik 1입니다.






이 게임의 간단한 줄거리는 먹을게 부족한 원시인이 가족을 위해 식량을 구하러 다닌다는 이야기 입니다. TITUS사의 1991년 작품입니다. XP에서도 게임이 실행은 되지만 원활한 진행을 위해 DOSBox를 사용 했습니다.
게임이 시작되면 아래 그림과 같이 원시인 한 명이 공중에서 뛰어 내리고 몽둥이로 공룡, 곰, 알, 뱀등을 때려 기절시킨 후 'FOOD' 게이지를 채워가야 합니다. 처음 'FOOD'게이지는 0, 'LIVES'는 03, 'TIME'은 99, ENERGY는 가득 차 있는 상태로 시작 됩니다.


그럼 우리는 TIME부터 정지시켜 놓도록 하겠습니다. TIME은 99부터 천천히 1씩 감소하는데 감소하는 속도가 그리 빠르지 않으므로 타이밍을 잘 맞춰 검색 하면 됩니다. Cheat Engine으로 이 게임을 오픈시키고 TIME수치를 찾아 보도록 하죠.


96초에서 한번, 94초에서 다시 검색을 했는데 아무런 결과도 갖지 못했습니다. Cheat Engine이 찾지 못했다는 말이지요. 왜 그럴까 다시 생각해 보니 이 게임은 1991년도 작품이라는게 생각 났습니다. 그 당시는 32비트가 아닌 16비트가 주류를 이루던 시대였지요. 요즘 게임과는 달리 이 게임은 2 Bytes를 사용할거 같습니다.

만약 어떤 수치는 정확히 알지만 데이터 타입은 모를때 그 수치를 담을 수 있는 가장 작은 데이터 타입을 선택해 주는것이 더 정확한 검색을 할 수 있도록 도와줍니다.

그럼 'Value type'을 2 Bytes로 바꾸고 다시 검색을 시도해 보겠습니다.


이번엔 제대로 찾았습니다. 그리고 'Value'를 90으로 freeze시켜 놓았습니다. 이 값이 100이상으로 수정되면 게임이 다운되어 버리더군요. 가끔 이런 경우가 발생하기도 하므로 오류가 나지 않는 범위에서 적절한 값으로 수정해 주도록 합니다. 그럼 다른 값을 찾기 전에 헷갈리지 않도록 이름을 붙여 주도록 하지요. 'No description'을 더블 클릭해 줍니다.


description을 바꿀 수 있는 윈도우가 나오는군요. TIME이라고 바꿔 주겠습니다.

그전에 여기서 잠깐 리스트 윈도우의 단축키를 알아 보고 가죠.

Enter : Change value
Ctrl + Enter : Change description
Alt + Enter : Change address
Space : Freeze
+ : Positive freeze
- : Negative freeze
Delete : Delete address
Ctrl + S : Switch the position of 2 selected addresses
Ctrl + E : Edit the selected address
Ctrl + Alt + A : Open the auto assembler



제대로 바뀌었으면 이번엔 LIVES를 찾아 바꿔 보도록 하겠습니다. 처음엔 03이므로 03으로 검색을 시작해 값을 찾은 후 리스트 박스에서 description을 LIVES라고 바꾸고 수치를 10으로 바꿔놓겠습니다.


우리의 원시인이 영원한 생명을 갖도록 freeze시켜 주겠습니다. 그러데 이번엔 그냥 freeze시키는게 아니라 값이 증가 하는것은 허용하는 freeze를 해보죠. 우선 'Frozen'체크 박스를 클릭해 freeze시키고 왼쪽에 있는 '='를 한번 클릭해 줍니다. '-'로 표시가 바뀌는데 이것은 감소만 허용하는 freeze입니다. 우리는 증가만을 허가할 것이므로 한번더 클릭해 '+'로 표시를 바꿉니다.


자, 그럼 이제 우리의 원시인은 생명이 늘어나긴 해도 줄어들진 않는 신과 같은 존재가 되었습니다. 이번엔 'ENERGY'를 줄어들지 않도록 해보죠. 우선 에너지가 가득차 있는 상태의 수치정보는 나와 있지 않으므로 'Unknown initial value'로 시작해서 ENERGY를 조금씩 잃어가며 'Decreased value'로 재 검색을 해보겠습니다.


굉장히 많은 검색 결과가 나왔지만 결국 2개만 남았습니다. 값이 768인 주소와 3인 주소입니다. 그럼 잠시 게임 화면으로 돌아가 보죠.


'ENERGY'게이지를 보니 막대가 3개 남았군요. 그럼 어느 주소가 우리가 찾는 주소일까요? 당연히 3이라는 값을 가진 057085CA번지겠죠? 리스트 박스로 옮겨 Description을 ENERGY로 바꿔주고 'Value'를 20으로 바꾼 후 freeze시키겠습니다.


이제 'FOOD'게이지 하나 남았군요. FOOD는 아무것도 먹지 않은 상태에선 0인 상태일것이라 추측할 수 있습니다. 0으로 초기 검색을 시작하고 공룡이나 과일 따위를 하나 먹을때 마다 'Increased value'로 재검색을 해주겠습니다.


3개의 결과가 남았습니다. 2560, 10, 720 셋중에 어느것일까요? 대충 생각해 봐도 10일것 같군요. 공룡을 한마리 더 잡아 먹은후 다시 수치를 확인해 보겠습니다.


2816, 11, 770으로 바뀌었습니다. 아무래도 11일거 같죠? 리스트 박스로 옮겨놓고 Description을 FOOD라 바꾸고 'Value'는 100으로 바꿔보겠습니다.


이제 다시 게임으로 돌아가 게임을 약간 진행해 보겠습니다.


FOOD는 가득차 있고 LIVES는 10, TIME은 89에서 90을 왔다 갔다 하고 ENERGY는 게이지를 넘어가 있군요. 슈퍼 원시인이 되었습니다. Cheat Engine으로 돌아가 언제든지 원하는 수치를 변경, 고정 시킬 수 있겠죠?



Level 7입니다. Level 7이 시작하자 마자 FOOD를 가득 채웠고 LIVES는 특별히 바꾸지 않았지만 22로 증가되어 있군요.


가끔 LIFE를 주기도 하는 할아버지는 이제 가볍게 무시할 수 있습니다.


Level 7까지 모두 가볍게 클리어 하고 그리운 가족의 품으로 돌아 왔습니다.

더 많은 tip과 좋은 내용들이 Cheat Engine help에 들어 있습니다. 조금더 공부 하고 싶으시다면 꼭 한번 읽어 보시기 바랍니다.

Posted by J.sean