logo

[리뷰] 치트엔진

2010.08.27 07:29

노바박사 조회 수:21486

 

안본격 경험치와 골드가 기적처럼 쏟아지 리뷰

 

리뷰라고 하기엔 어폐가 있긴 한데 오늘은 메모리 에디팅 유틸리티인 치트 엔진의 사용법에 대해 설명하는 글을 풀어볼까 합니다.

 

 

태초에 무자비한 게임의 난이도에 고개를 숙인 게이머들에게 한줄기 빛이 내려왔나니 이름하야 게임 위자드라. 이를 접한 게이머들 한결같이 무릎을 탁 치며 세글자를 내뱉나니 "우왕국!"

 

 

예, 메모리 에디터는 도스시절부터 터줏대감으로 자리잡고 게이머들에게 사랑을 독차지 했었던 유틸리티 입니다. 다만 윈도우 환경으로 넘어오면서 게임 위자드는 명맥이 끊겨 버렸고 이후 게임핵이나 치트 오메틱 같은 유사 유틸리티가 살아남아 겨우 명맥을 유지하고 있었습니다.

 

 

개인적으로 게임위자드가 사라지며 가장 아쉬웠던 부분은 차후 유행하게된 메모리 에디터의 대부분이 메모리 테이블 출력을 지원하지 않아 대단히 제한적인 기능만을 수행하게 되면서 대단위 에디팅은 꿈도 꾸지 못할 상황이 되었기 때문입니다. 이후 치트엔진을 발견하면서 이런 불만은 가라앉게 되었습죠.

 

 

치트엔진은 가장 최신의 OS라 할 수 있는 윈도우즈 7 64비트에서 정상작동을 확인했으니 하위 윈도우 시스템에서도 모두 정상작동하리라 생각합니다.

 

 

일단 메모리 에디터의 사용법을 배우기 전에 사전 지식 몇가지만을 염두에 두고 유틸리티를 사용하시기 바랍니다.

 

 

1. 확실하게 수치화된 데이터를 게이머가 확인할 수 있는가?

-> 게임에서 오가는 정확한 수치 데이터를 확인할 수 없다면 사실상 에디트가 불가능 합니다. 메모리 에디터의 특성상 수없이 많은 데이터를 검색하면서 일정하게 변화하는 수치를 새로 찾아가며 필터 형식으로 걸러내며 원하는 데이터가 오가는 부분을 찾아내기 때문에 대조할 수 있는 데이터가 없이는 아무것도 할 수 없다는 것입니다.

 

예를 들자면 스트리트 파이터의 체력 게이지바 같은건 에디터를 할수가 없습니다. 체력단위가 얼마나 되는지 모르고 막연하게 퍼센티지만 표시하고 있기 때문에 그렇죠. 일부 에디터에서는 퍼센티지 단위로 검색을 하는 기능도 있습니다만 제대로 데이터가 검출되지 않는경우가 많았습니다.

 

2. 게임이 강제적으로 셀 기능을 막아놓지는 않았는가?

-> 일단은 치트엔진도 외부 프로그램이기 때문에 셀 기능으로 게임밖으로 나와 유틸리티가 작동을 해야 합니다. 드물게 셀 기능을 막아놓은 게임같은 경우는 치트엔진을 불러올수 없으니 에디트 역시 불가능한 것이죠.

 

3. 메모리 에디터에서 사용되는 숫자에는 16진법이라는게 존재한다.

-> 지금이야 고용량 데이터 저장소가 당연하게 받아들여 지지만 초창기 하드디스크는 무지막지한 부피에도 불구하고 10메가의 한심한 용량밖에 보유를 하지 못했습니다. 때문에 컴퓨터에서 다루는 데이터의 부피를 줄이고 효율성을 높이기 위해 16진법이라는 특수한 수 체계를 사용하게 된 것인데요,

10진법이 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10

의 순서를 사용한다면

16진법은  1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 0a - 0b - 0c - 0d - 0e - 0f - 10 - 11 ~~~

이런식의 독특한 방식을 사용합니다. 글자 두개로 나타낼 수 있는 한계치인 FF를 통해 255까지의 숫자를 나타내고 FF FF 를 사용하면 65535 FF FF FF 는 16777215 이런식으로 자릿수가 늘어날때마다 표현할수 있는 숫자가 기하 급수적으로 늘어나게 되는 것이죠. 또 에디터에서 자주 사용되는 수치로는 64(16진수) - 100(10진수)가 있으니 미리 머릿속에 담아두시기 바랍니다.

 

4. 과도한 에디팅은 게임 불감증을 부른다.

-> 뭐 개인적으로 치트엔진의 사용은 어디까지나 엔딩을 한번 봤던 게임에 한해서 사용을 추천드리고 싶습니다. 기획자들이 나름대로 머리털을 쥐어뜯어 가면서 레벨링 이라는걸 해놓기 때문에 케릭터가 과도하게 강해지거나 불필요한 수치가 첨가되면서 게임의 재미가 급감하게 되기 때문이죠.

 

5. 타인과 같이 하는 게임에서 치트행위는 체어샷을 부른다.

-> 걍 두들겨 맞으면 다행인데 온라인게임에서는 계정블럭이라던가 고발등 낭패를 볼 수 있으니 치트엔진의 사용은 절대적으로 싱글플레이에서로 제한하셔야 합니다. 대부분의 온라인 게임은 이러한 에디터에 대한 대비책을 마련해두기 마련이지만 드물게 뚤리는 경우도 존재합니다. 대부분의 약관에서 이런 외부 프로그램의 사용을 금지하고 있기 때문에 제제가 가해진후 울고 불고 짜도 소용 없습니다.

 

 

사전지식정리는 이정도로 하고 뜯어 고쳐볼 게임과 더불어 치트엔진을 살펴보도록 하죠.

 

 

주 : 에디터를 적용하기 전에 백업용 세이브 데이터를 남겨두는건 잊지 말아야 합니다.

 

타이틀.png

 

오늘 에디트를 해볼 게임은 드래곤 퀘스트 8편이 되시겠습니다. 게임에서 오가는 데이터가 모두 수치화 되어있기 때문에 메모리를 검색을 실습하는데 아주 용이한 대상 입니다.

 

초기.png

 

치트엔진을 처음 실행시키면 왼쪽 상단에 컴퓨터 모양 아이콘의 주변부가 깜박거리는데 이 아이콘을 클릭해 에디트를 적용할 프로그램을 선택합니다.

 

에뮬.png

 

에뮬로 드래곤퀘스트를 실행중이기 때문에 조오기~ pcsx2.exe 를 선택합니다. 실습하시는 분들은 고쳐보고 싶은 게임을 선택해서 open을 누르셔야 하겠죠?

 

중요.png

 

일반적으로 저 두가지 기능만을 사용하게 되는데요. 위쪽의 빈칸은 현재 수치를 입력해 검색을 하는데 사용하고 그 밑의 value type는 데이터의 수치 범위를 제한하는데 사용합니다. Byte 는 0에서 255 까지 2 Bytes는 0에서 65535 8 Byte는 아시겠죠? 수치는 분명하게 확인이 되는데 메모리 주소가 검색되지 않는다면 밑에 value type를 조절해 가면서 검색을 새로 해보시는게 좋습니다.

 

 

 경험치1.png

 

에디터를 해볼 경험치는 단위가 상당히 높기 때문에 value type를 4 Byte로 놓고 검색을 해야 하겠군요. 만약 Strength나 Agility 같은 수치를 고칠려고 했다면 Byte로 해놓고 검색을 해야겠죠? 그리고 예외적으로 Attack 과 Defence는 일반적인 방식으로는 검색이 불가능 합니다. 저 수치가 정확한 수치가 아니라 장비로 인한 값이 계산되어 출력되는 것이라 실 데이터가 아니기 때문이죠.

 

 

수치검색.png

 

수치를 검색한후 First scan 을 누르시면 다음과 같은 결과값이 출력됩니다. 왼쪽에 보이는게 pcsx2.exe 란 프로그램 내부에서 105218 란 데이터를 쓰고있는 메모리 주소들 입니다. 검색할려는 수치의 단위가 작을수록 비슷한 데이터가 너무나도 많아 한번에 이런식으로 추려지지 않는 경우가 대부분 입니다. 기존 검색 결과를 갈아엎고 새로운 수치로 검색을 할려면 New scan을 누르시면 됩니다.

 

 전투1.png

 

저 목록중 우리가 필요한 주소를 찾아내기 위해서는 데이터를 변환시킨후 새로운 값을 주어야 하는데요. 용사님을 보내서 몬스터랑 잠시 투닥투닥 다툰후 경험치를 얻어 수치를 변화시켜 보죠. 전투후 경험치를 200 가량 얻어 105423 으로 변화했군요.

 

결과값2.png

 

게임상 수치를 변화시키고 치트엔진으로 검색하고 이런 과정을 몇번 반복하다보면,

 

추가.png

 

이런식으로 단 하나의 주소만 남게 되는데 더블클릭을 하면 아래쪽의 테이블에 추가가 됩니다. 이제 조오기 Value 에 원하는 수치를 적어 넣으시면 에디트된 수치가 게임에 적용이 되는 것입니다. 왼쪽에 Frozen 은 Value 값이 변하지 않도록 고정을 시키는 옵션입니다. 보통 수치가 자주 변화하는 체력 같은걸 일정하게 유지할때 저 얼음땡 옵션을 활성화 시키시면 됩니다.

 

여기선 테스트로 경험치를 1로 만들어 보죠

 

용자.png

 

예.... 레벨 27의 용자님은 손가락 까닥 하나로 경험치 1인 고자가 되셨습니다. ㅠㅠ

 

 

프로그램마다 옵션이 미묘하게 다르지만 결국 사용법은 대동소이 합니다.

 

 

쉽다.jpg

 

 

여기까지가 치트엔진의 기본적인 사용법이고 이후부터는 약간 고급사용자를 위한 사항입니다.

 

앞서 이야기 했듯이 메모리테이블은 대단위 에디팅에 능하고 게임에서 실제 오고가는 데이터값이 얼마인지 눈으로 판독할 수 있는 장점이 있습니다. 보통 케릭터들의 능력치나 창고에 처박힌 아이템 같은건 데이터가 정렬되어 있기 마련인데요 이런 점을 이용해 테이블을 보고싶은 곳에서 수치가 변화하는 항목을 검색해보고 메모리 에디터로 펼쳐서 실제 수치가 얼마나 되는지 확 인하는 것이죠.

 

 창고1.png

 

 

보시는바와 같이 아이템이 뭉쳐있고 겹친 숫자가 표기되고 있습니다. 약초를 소모하고 상점에서 사가면서 수치를 변화해 메모리 주소를 검색해 보겠습니다. 그리고 아이템이 겹처있는 단위가 작기 때문에 이번엔 Byte 옵션을 이용합니다.

 

테이블.png

 

대충 결과가 나왔으니 우클릭을 해 저 Browse this memory region 을 사용해 다음 테이블을 불러옵니다.

 

 테이블1.png

 

 

커서가 표시하고 있는 부분이 약초의 중첩 횟수 25개 입니다. 보기엔 19인데 수치가 다른건 바로 16진수가 적용되어 있기 때문이죠.

 

 

계산기.png

 

16진수 전환은 윈도우의 기본 프로그램인 계산기를 공학용이나 프로그래머용으로 전환시킨후  DEC 에서 25 를 입력하신후 HEX 로 전환하면 19로 표시되는걸 확인 할 수 있습니다.

 

 

 앞뒤1.png

 

앞서 이야기 했듯이  아이템이 창고에 다닥다닥 붙어있다보니 분명 주변부 데이터도 아이템에 관한 값인데 구체적으로 어떤 값인지를 알수가 없는데요, 기준 검색지인 약초를 중심으로 채찍1 가죽1 열쇠1 물약6 약초 25 팔찌1 치즈1 동전1 이런식의 데이터가 있군요. 열어놓은 메모리 테이블을 가지고 한번 대조를 해보죠.

 

 

대조.png

 

기준점이었던 19의 세칸 앞에 06 이 있군요. 저건 분명 물약의 숫자 입니다. 거기에 세칸 앞을 보니 또다시 01 이건 열쇠 같군요. 이걸보니 분명 3~4칸 단위로 중첩된 아이템의 숫자가 표기되고 있는 것입니다. 일단 약초부터 100개로 만들어 봅시다. 100개는 16진수로 64니 저 19 자리에 64를 입력하면......

 

오키.png

 

오키도키! 단 아이템이 중첩된 숫자 앞에 두칸은 무엇을 의미하는것 일까요? 00은 공란으로 아이템을 구분하는것 같은데 말이죠. 시험삼아 물약 수치의 두칸 앞에  17로 되어있는 데이터를 18로 늘려보겠습니다. 다시 말하지만 메모리 에디터가 항상 적상 작동을 하는게 아니기 때문에 세이브 파일을 백업으로 꼭 따로 놔두셔야 합니다.

 

헐퀴.png

 

헐퀴? 물약이 엘릭서로 변했습니다. 이걸로 유추해 보건데 아이템 창고에 사용되는 메모리 데이터는 총 세칸으로 첫번째와 두번째칸이 아이템 코드고 세번째칸은 수량이군요!(한칸만 사용하는건 255가지의 아이템밖에 못쓰기 때문에 넉넉잡고 두칸을 사용한것 같습니다.)

 

 정리.png

 

테이블을 대조하자면 17 01 은  아이템 코드이며 06은 수량이라는 것이죠.

 

한가지를 덧붙이자면 이 코드는 정확하게 17 01 이 아니라 01 17 입니다. 정확한 이유는 모르지만 두칸 이상부터 사용되는 수치는 뒷자리부터 읽는 법칙이 있더라구요. 01 17을 계산기에서 환산해보니 279 라는 10진수 수치가 나왔습니다. 즉 물약의 아이템 순번은 279고 엘릭서는 280이라는 것이죠. 이 말은 1번부터 무엇인가 아이템별로 고유 코드가 부여되어 있어서 순차적으로 올라왔는데 279번째는 물약이라는 것입니다 기준점인 약초는 01 05 니 이걸 10진수로 확인해보면 261번이 약초의 코드라는 것이죠.

 

 환산.png

 

그럼 290번대는 무슨 아이템 일까요? DEC(10진수) 에 290을 입력하고 16진수(HEX)로 환산하니 01 22 가 나왔습니다.(앞에 0 자리는 생략된거에요)

 

 약촛.png

 

이걸 테이블에서 입력 해보죠. 이제 금방 100개로 만들었던 약초자리 앞에 아이템코드를 뒷자리수부터 01 22 순으로 입력했습니다.

 

 

호두.png

 

약초가 마법의 씨앗으로 변했군요. 게임상 획득할 수 있는건 열 몇개 수준의 희귀아이템인데 에디터로 100개가 들어왔으니 이제 마왕은 큰일이 난겁니다. 이처럼 메모리 테이블을 통해 주변 데이터를 살피고 고치는 법을 익히게 된다면 단순하게 경험치나 돈을 늘리는것을 넘어서 새로운 아이템도 집어넣어 줄수도 있게 되는 것입니다.

 

비단 아이템 숫자에 머무르지 않고 케릭터의 초상화나 외관을 바꾼다거나 스킬을 추가해주고 다양한 방식으로 응용이 가능한데 이는 힌트가 될만한 수치를 먼저 찾은후 메모리 테이블을 열어두고 데이터의 변화를 살피면서 조금씩 뜯어봐야 합니다. 게임에 따라 데이터를 배치하는 스타일이 다르긴 한데 보통은 케릭터별로 한 장소에 몰아서 수치들을 깔아놓더라구요.

 

택틱스 오우거 같은건 약간 특수하게 한 장소에 힘 수치만 모두 몰아있고 또 다른장소엔 민첩성 수치만 순차적으로 쭉 나열되어있고 이런식도 있었던걸로 기억합니다.

  

게임마다 이런 데이터 배치 방법이 미묘하게 다르지만 기본적인 방법만 알고 있다면 어떤식으로든 응용이 가능합니다. 메모리 테이블을 볼줄 알면 단순 수치 조정에서 벗어나 게임의 갖가지 요소를 고쳐볼 수 있다는 것이죠.

 

게임라이프를 구가하다보면 원하든 원치 않든 에디터를 사용할 상황이 생기는데 이런 테크닉을 익히고 있으면 또 다른 면에서 즐겁게 됩니다.~

 

 

번호 제목 글쓴이 날짜 조회 수
공지 여러분의 추억과 기억을 풀어주세요 남군™ 2009.10.10 48431
87 [리뷰] 다크레인 (Auran, 1997) [13] file 노바박사 2010.03.04 180957
86 [리뷰] Capcom제 횡스크롤 액션 게임 Compilation [13] 노바박사 2010.03.17 171421
85 [리뷰] 엘더스크롤 1편 - 아레나(Arena) (Bethesda Softworks/1994) - No. 2 케릭터 생성 [11] file 남군™ 2010.06.06 87655
84 [컬럼] 게임괴담 - 혼자 나서면 망해 [11] file 노바박사 2010.06.21 49014
83 [컬럼] 게임 개발전선 이상없다? [18] file 노바박사 2010.04.19 32422
82 [리뷰] 에이지 오브 엠파이어 시리즈 이야기. file 라면국물 2012.11.23 32058
81 [리뷰] 듄2 이야기... [8] file 라면국물 2013.02.04 28654
80 [리뷰] 심시티 2000 이야기. [3] file 라면국물 2013.02.04 28170
79 [리뷰] 모탈컴뱃 이야기. [4] file 라면국물 2012.12.02 26837
78 [리뷰] 쥬라기원시전 이야기. [2] file 라면국물 2012.12.04 25266
77 [리뷰] 엘더스크롤 1편 - 아레나(Arena) (Bethesda Softworks/1994) - No. 3 모험의 실제 1부 [6] file 남군™ 2010.06.07 22226
76 [리뷰] 발더스 게이트 2 (Bio Ware, 2000) [19] file 노바박사 2010.06.19 22166
75 [리뷰] 엘더스크롤 1편 - 아레나(Arena) (Bethesda Softworks/1994) - No. 0 번외편 자유도!? 그 난해함에 대하여 [12] file 남군™ 2010.06.14 22015
» [리뷰] 치트엔진 [2] file 노바박사 2010.08.27 21486
73 [리뷰] 스타크래프트2 : 자유의 날개(Blizzard Entertainment, 2010) [10] file 노바박사 2010.08.06 21433
72 [리뷰] 삼국지 영걸전 시리즈 이야기. [4] file 라면국물 2012.11.25 20605
71 [리뷰] 스타크래프트 이야기. file 라면국물 2013.02.17 20517
70 [리뷰] 엘더스크롤 1편 - 아레나(Arena) (Bethesda Softworks/1994) - No. 1 모험의 시작 [11] file 남군™ 2010.06.06 20381
69 [연재] 금광을 찾아서 Part.2 -메뉴 설명과 금광찾기 를 위한 첫걸음 자금마련- [3] file 씽크패드 2009.11.14 19845