최근 수정 시각 : 2024-12-05 22:59:46

치트오매틱

파일:external/screenshots.en.sftcdn.net/cheat-o-matic-16.png

Cheat 'O Matic
[clearfix]
1. 개요2. 이용 방법3. 단점4. 기타

1. 개요

PC용 게임 등에서 주로 사용되는 메모리 에디트 툴. 치트오매틱이란 이름은 은하수를 여행하는 히치하이커를 위한 안내서에서 나온 "센스-오-메틱" 장치에서 따왔다.

2. 이용 방법

메모리에서 특정한 값을 가지는 주소를 찾아서 해당 주소의 값을 변경할 수 있게 해 주는 프로그램으로, 게임에서 체력치를 고정하거나 돈을 늘리는 등 이름대로 치트에 주로 쓰인다. 간단한 저용량 프로그램으로서 이용 방법도 매우 간단하다.

RPG 게임을 예로 들자면
  1. 소지금 10 골드를 가지고 있고 이를 변경하고자 한다.
  2. 치트오매틱을 실행하고 게임 프로세스를 선택한 뒤 10을 입력하고 찾기를 한다.
  3. 게임으로 돌아와서 몬스터를 잡거나 상점에서 물건을 사고파는 등의 방법으로 골드 숫자를 변경한다.
    가능하면 수가 오르락 내리락 하지 않아야 잘 찾아진다. 오르든 내리든 한 방향으로 하는게 좋다. 현재 골드가 11이라고 치자
  4. 치트오매틱에 변경된 골드 11 숫자를 입력한다.
  5. 치트오매틱이 값을 찾아낼 때까지 여러 번 이 행동을 반복한다.
  6. 값을 찾아내면 원하는 값으로 변경 할수 있게 바뀐다. 여기에 원하는 수치를 입력하고 변경 후 게임을 즐긴다.

10이라는 수치는 당장 내 눈에 보이는 골드의 수치일뿐, 보이지 않는 게임 내부에 수 많은 10이라는 숫자가 존재하기 때문에, 검색 결과 중 골드에 해당하는 값이 저장된 메모리 주소를 찾기 위해 골드를 계속 변경하면서 해당 주소를 찾는 것이다. 예를 들어 10이라는 숫자가 10만개가 있다고 치자. 근데 10에서 11로 변경된 항목은 겨우 1만개 뿐이다. 즉, 돈을 나타내는 항목 후보를 1만개로 줄인것이다. 골드를 12로 변경해서 다시 찾으면 그 1만개 중 수치가 12로 변한 1000개로 후보가 좁혀진다. 이런식으로 반복하면 골드의 최종 위치를 알아낼 수 있다. 1997년에 만들어진 프로그램임에도 불구하고 원리 자체는 여전히 사용 가능하다.

각종 트레이너 프로그램도 이와 같은 원리로 작동하지만, 게이머가 일일이 검색할 필요 없이 제작자가 미리 메모리 주소를 잡아놓고 단축키로 조작할 수 있도록 만들어서 편의성은 훨씬 높다.

온라인 게임과 PC 게임의 경우에는 안티 치트 프로그램을 도입하여 프로세스 감시나 메모리 감시로 감별 및 제거되기에 사용시 주의해야할 필요가 있다.

결과가 뜨지 않거나 조작이 반영되지 않는 경우에 흔히 더미 데이터라 생각하지만, 사실은 UI나 임시변수에 값을 넣고 사용하는 경우이다. 더미 데이터라는 개념이 완전히 다른 것이고 보안상 더미 코드를 넣는 경우에도 불필요한 값의 계산들을 하는 것이기에 찾으려는 수치값들이 같아지는 경우는 없다.[1] 온라인 게임의 경우에는 서버에서 값을 받아서 쓰기 때문에 이 받아서 임시 보관해 놓는 메모리를 찾은 것이다. 그래서 조작이 반영되지 않는다는 것은 계속해서 서버의 값을 불러와서 덮어씌우기 때문이다.

3. 단점

단, 워낙 단순한 프로그램이다 보니 0~10 정도의 매우 흔한 숫자를 검색할 경우 검색 결과가 너무 많아 과부하가 걸려서 프로그램이 멈추기도 한다.[2] 또 정확한 숫자를 입력해서 검색하는 방식이다 보니 체력 게이지처럼 숫자로 표시되지 않는 값은 찾을 수 없다. 뒤에 소수점이 있는데 게임에서 생략되어 나오는 경우나, 출력되는 값과 실제 저장되는 값이 다른 경우도 찾기 어렵다. 또 만약 한 수치를 같은 값으로 2개 이상 메모리에 저장하는 방식일 경우도 있는데, 해당 값을 1개만 찾을 때까지 계속 검색해야 하는 치트오매틱의 특성상 수정할 수 없게 된다.

이후에 나온 게임 핵 등 더 기능 많은 프로그램들의 경우 이런 단점들을 해결해 놓았다. 가령 정확한 수치를 몰라도 단순 증가·감소·변동 없음만으로 검색할 수 있게 하거나, 혹은 여러 개의 값을 한 번에 표시해주거나 하는 식이다. 치트 엔진 정도 되면 메모리 값을 추적한 것을 스크립트화 시켜 저장한 파일을 불러오면 값을 추적할 줄 모르는 사람도 에디트가 가능하다.

메모리 값을 숨기고 온라인 서버에 대부분의 수치가 저장되는 온라인 게임 등에서는 당연히 사용불가. 치트오매틱 정도로는 값이 안 찾아지는 경우가 많고 찾아서 수정하더라도 플레이어의 화면에 표시되는 수치만 바뀔 뿐 실제 서버상의 수치는 건드리지 못해 의미없거나, 아예 게임이 이를 감지하고 강제종료시켜 버리기도 한다.

파일:ġƮ1.jpg

네이버 등에서 검색시 위 사진처럼 「치트오틱」이라고 검색되는 것이 있는데 이걸 실행시키면 온갖 악성코드 허위 백신 등이 강제로 깔리고 피해자도 꽤 많으니 조심하자. 정 써야겠다면 기능도 많고 편리하며 공식 홈페이지에서 다운로드 코너를 제공하는 치트 엔진을 권한다.

4. 기타

  • 치즈 모양 아이콘 때문인지 ' 치즈오메틱'이라는 이름으로도 퍼졌었다. 그리고 이게 와전되어 '치즈 옥매트'라는 이름도 사용되었다. 또한 트레이너 중에 ' 피자 트레이너(pizza trainer, 약칭 pztrainer)'도 있는데 관계는 불명. 아이콘 모양이 치즈인 이유는 치즈 단어 자체가 게임 용어로 초보도 할 수 있는 싸구려 방법으로 어려운 구간을 쉽게 넘어간다, 한국 용어로 ' 날먹'한다 뜻의 동사 혹은 명사로 쓰이기 때문이다. '치즈 러시'는 스타크래프트와 같은 RTS 게임의 용어이기도 하다.
  • 유사한 프로그램은 여럿 있다. MS-DOS 시절에도 Game Wizard 32(약칭 GameWiz32)라는 툴이 있었다. 사용방법도 거의 동일. 메모리에 상주하면서 콘솔 키(~)를 누르면 즉시 수치 입력 화면이 나오는 방식이었다.
  • 상위호환으로 게임핵이 있었으나 업데이트가 끊기며 잊혀졌고, 이후로 꾸준히 살아남은 것으로 치트 엔진이 존재한다. 오매틱의 기능은 그대로 사용 가능하며 이외에도 각종 매크로나 자동주소 검색 등의 다양한 기능들을 사용할 수 있다.
  • 웹 게임의 경우 게임이 실행되는 브라우저나 플래시 플레이어 등에는 이에 대한 대비가 없어 대부분 쉽게 뚫린다. 브라우저의 경우 아예 개발자 옵션으로 스크립트를 마음대로 실행시킬 수도 있다. 심지어 서버의 기능을 최소화하고 있는 게임이라면 답이 없다. 가장 대표적인 예로 치트오매틱으로 쥬니어네이버의 웹 게임 동물농장 포인트를 21억[3]까지 늘릴 수 있었다. 꽤나 널리 퍼졌고 오랫동안 사용되어올 정도로 막기 힘든 것이다. 원인은 포인트를 서버에서 관리해야하는 설계임에도 웹 클라이언트에서 관리하게 했기 때문에 온라인 게임이더라도 쉽게 조작이 가능했던 것이다. 이를 막는 방법은 다시 해당 포인트의 관리를 서버측으로 이전시키는 방법 밖에 없다. 이것 때문에 네이버 동물농장의 물가는 인플레이션이 생겼다. 웹 게임이 아니더라도 보이스피싱에 이를 이용하는 경우도 있는데 송금할 계좌 번호가 들어있는 브라우저의 메모리를 변조해서 다른 사람에게 송금되도록 하는 것이다. 이런 이유로 은행 사이트에 접속할때 보안 프로그램 설치를 요구하거나 보안 OTP를 이용해 이를 막고 있다.
  • 개발된 지 20년이 넘은 2019년 7월 경, 모바일 게임인 에픽세븐 이 프로그램에 뚫리는 사건이 발생하며 화제가 되기도 했다. 그러나 이후, 정작 치트오매틱과는 상관없이 단순히 핵 사용자[4]에 불과했으며,[5] 사건의 이슈에 대한 화제성을 키우기 위해 자극적인 거짓으로 선동하려고 "20년 된 치트오매틱에 뚫린다."는 표현을 쓴 것이다. 이에 기자와 리뷰어들이 모두 낚여서 기정사실화 시킨 것도 사건을 대중화시키는 것에 일조한 셈이다. 자세한 것은 에픽세븐 치트오매틱 대란 문서를 참조할 것.
  • 보안성을 생각하지 않은 일반적인 프로그램들은 여전히 뚫리는 편이다. 만약 조작하려는 값이 정수의 데이터라면 이를 사용하여 조작할 수 있다. 스타크래프트 2도 3.0.5 패치 이전까지는 뚫렸었는데, 캠페인 등 싱글 플레이에서는 사용할 수 있다. 단순 PC 게임뿐만 아니라, 2011년 ~ 2012년 사이의 불법 온라인 도박 게임 바다이야기의 변종 프로그램들도 많이 뚫렸었다.


[1] 게임의 경우에는 속도와 퍼포먼스를 위해 더미 코드를 쓰는 일이 없다. 더미 코드는 불필요, 미사용의 추가적인 연산을 하기에 심하면 메모리를 2배 이상 잡아먹기도 하고 연산이 늦어지는 것은 당연하다. [2] 물론 계속 업그레이드되는 치트 엔진 같은 경우엔 이런 일이 없다. [3] 정확하게는 2,147,483,647으로 32비트 signed int형 변수의 최댓값이다. [4] 정확히는 변조된 상태의 Apk의 사용이다. 해킹으로 변조되거나 재빌드된 apk의 경우에는 빌드 옵션상 기본으로 제공하는 암호화나 보안조치가 안되는 경우도 있어서 치트 엔진에 쉽게 노출되기도 한다. 쉽게 말해서 안티핵 관련 기능들이 모두 꺼져있거나 우회되어 있어서 치트 엔진 관련 대안조치가 소용 없다는 말이다. 이 때문에 온라인 게임은 서버 위주 연산을 할 수 밖에 없다. [5] 치트오매틱은 PC 전용 프로그램으로서, 모바일 게임을 치트오매틱으로 해킹하려면 모바일 게임을 앱플레이어로 실행시키는 것부터 해야 한다. 그러나 치트오매틱이 제공하는 기능상으론 앱플레이어로 실행되고 있는 어플은 치트오매틱으로 조작이 불가능하다. 검색이라도 가능케 하려면 기능을 제공하는 치트 엔진을 사용해야 한다.