치트 테이블은 안전할까요? 사용하기 전에 .CT 파일을 확인하는 방법
.CT 파일은 일반 XML이지만 Lua와 Auto Assembler 스크립트, 내장 파일을 포함할 수 있어요. 무엇을 봐야 하는지, 어떤 함수를 조심해야 하는지, 테이블을 미리 검토하는 방법을 알아보세요.
치트 테이블은 작은 텍스트 파일이라서 아무런 해도 끼치지 못한다고 생각하기 쉬워요. 디스크에 가만히 있는 동안은 대부분 맞는 말이에요. 하지만 Cheat Engine에 불러오면 테이블이 코드를 실행할 수 있고, 그 코드는 Cheat Engine과 같은 권한으로 실행돼요. 공유되는 대부분의 테이블은 설명 그대로이지만, 파일을 읽어 보지 않고서는 아무도 그걸 보장할 수 없어요. 이 가이드에서는 테이블에 무엇이 들어 있을 수 있는지, 어느 부분을 자세히 봐야 하는지, 사용하기 전에 어떻게 검토하는지 알려드려요.
.CT 파일이란
.CT 파일은 XML이에요. 아무 텍스트 편집기로나 열 수 있는 구조화된 일반 텍스트죠. 최소한의 테이블은 대략 이렇게 생겼어요:
<CheatTable CheatEngineTableVersion="45">
<CheatEntries>
<CheatEntry>
<ID>0</ID>
<Description>"Gold"</Description>
<VariableType>4 Bytes</VariableType>
<Address>"game.exe"+01A2B3C0</Address>
<Offsets>
<Offset>18</Offset>
<Offset>10</Offset>
</Offsets>
</CheatEntry>
</CheatEntries>
</CheatTable>
텍스트 편집기나 브라우저 안에서만 동작하는 온라인 CT 뷰어로 테이블을 열어도 아무것도 실행되지 않아요. 이렇게 테이블을 검토하는 건 언제나 안전해요.
테이블에 들어 있을 수 있는 것
- 값 및 포인터 항목. 주소, 자료형, 설명으로 이루어져 있어요. 게임 메모리를 읽고 쓰기만 해요. 주된 위험은 게임에 있어요. 잘못된 값은 게임을 중단시키거나 세이브에 남을 수 있어요.
- Auto Assembler 스크립트. 활성화하면 게임 코드를 패치하는 스크립트 항목이에요. 보통은 게임 프로세스만 건드리지만, Auto Assembler는 게임에 DLL을 불러올 수도 있고
{$lua}...{$asm}로 작성된 내장 Lua 블록을 포함할 수도 있어요. 이 블록은 스크립트를 활성화할 때 Lua로 실행돼요. - 테이블 Lua 스크립트. 테이블 전체에 붙은 Lua 스크립트로, 파일의
LuaScript섹션에 저장돼요. 아무것도 체크하기 전에, 테이블을 불러올 때 실행될 수 있어요. Cheat Engine의 Lua는 파일, 다른 프로그램, 네트워크에 접근할 수 있는 완전한 스크립트 언어예요. - 내장 파일. 테이블 안에 인코딩된 형태로 파일을 담을 수 있어요. 제작자는 이미지, 소리, 보조 데이터에 쓰지만, 스크립트가 내장 파일을 디스크에 쓰고 실행할 수도 있어요.
- 폼과 구조체. 사용자 지정 창(트레이너 스타일 인터페이스용)과 데이터 구조 정의예요. 폼은 보통 Lua로 동작하기 때문에 검토할 Lua 코드가 함께 있어요.
Cheat Engine이 테이블의 Lua 스크립트를 실행하기 전에 묻는 방식
테이블 Lua 스크립트가 들어 있는 테이블을 불러오면 Cheat Engine이 실행할지 묻는 창을 보여줘요. 이 창은 실행 전에 스크립트를 읽고 결정할 수 있도록 있는 거예요. 좋은 습관은 다음과 같아요:
- 테이블을 처음 불러올 때는 거절하세요. 항목은 그대로 불러와지고 테이블 스크립트만 건너뛰어요.
- 스크립트를 읽어 보세요. Cheat Engine 안의 테이블 메뉴에서 볼 수 있고, CT 뷰어나 텍스트 편집기에서 보면 더 편해요.
- 스크립트가 문제없어 보이면 테이블을 다시 불러와서 수락하세요.
- 테이블 스크립트를 실행하기 전에 묻는 Cheat Engine 설정은 켜 두세요. 항상 실행으로 바꾸면 확인할 기회가 사라져요.
이 창은 테이블 스크립트에만 해당돼요. Auto Assembler 스크립트 안의 Lua 블록은 해당 항목을 활성화할 때 실행되니, 체크하기 전에 스크립트를 검토해야 하는 또 하나의 이유예요.
주의해야 할 것
아래 중 자동으로 악성인 것은 없어요. 정당하게 쓰이는 경우도 많아요. 하지만 각각 테이블에 게임 값 변경 이상의 능력을 주기 때문에, 보이면 왜 들어 있는지 이해하고 넘어가세요.
| 함수 또는 기능 | 위치 | 할 수 있는 일 |
|---|---|---|
shellExecute | Lua | PC에서 파일을 열거나 프로그램을 실행 |
os.execute, io.popen | Lua | 시스템 명령 실행 |
"w"나 "wb" 같은 쓰기 모드의 io.open | Lua | 파일 생성 또는 덮어쓰기 |
getInternet과 다운로드 함수들 | Lua | 인터넷에서 데이터나 파일 가져오기 |
loadstring, load | Lua | 문자열로 만든 코드를 실행하며, 숨겨져 있거나 다운로드된 코드일 수 있음 |
package.loadlib | Lua | 네이티브 DLL을 Cheat Engine에 불러오기 |
injectDLL, loadlibrary | Lua / Auto Assembler | 게임 프로세스에 DLL 불러오기 |
decodeFunction, 긴 인코딩 덩어리 | Lua | 읽을 수 없는 컴파일된 코드나 난독화된 코드 실행 |
| 내장 파일과 이를 저장하는 코드 | 테이블 파일 / Lua | 디스크에 파일을 놓고, 아마도 실행 |
{$lua} 블록 | Auto Assembler | 스크립트 항목을 활성화할 때 Lua 실행 |
난독화는 가장 분명한 경고 신호예요
위의 모든 것 중에서 읽을 수 없는 코드가 가장 조심해야 해요. 무작위처럼 보이는 긴 글자 문자열을 load, loadstring, decodeFunction에 넣거나, 텍스트를 디코딩한 뒤 바로 실행하는 스크립트는 테이블이 무엇을 하는지 숨겨요. 작업물을 보호하려고 난독화하는 제작자도 있지만, 밖에서는 둘을 구별할 수 없어요. 검토할 수 없다면 실행하지 마세요.
맥락이 중요해요
getInternet으로 새 버전이 있는지 확인하고 메시지를 보여주는 테이블은, 실행 파일을 다운로드해서 shellExecute로 실행하는 테이블과 달라요. 주변 코드가 결과를 어떻게 쓰는지 읽어 보세요. 게임에 값을 쓰고, 메시지를 보여주고, 작은 설정 파일을 만드는 건 정상이에요. 프로그램 실행, 알 수 없는 주소에서 받은 파일, 예상치 못한 위치에서 불러온 DLL은 싱글 플레이 게임용 치트 테이블에 보통 필요하지 않아요.
무엇이든 활성화하기 전의 검토 순서
- CT 뷰어나 텍스트 편집기로 테이블을 여세요. 항목 목록이 테이블 페이지의 설명과 맞는지 확인하세요.
- 테이블 Lua 스크립트를 읽어 보세요. 있다면요. 위 표에 있는 함수들을 찾아보세요.
- 모든 Auto Assembler 스크립트에서
{$lua},injectDLL,loadlibrary를 검색하세요. - 내장 파일이 있는지 확인하고 무엇이 그것을 사용하는지 알아보세요.
- 조금이라도 의심스러우면 Cheat Engine에서 테이블을 불러오고 Lua 창은 거절하세요. 일반 값 항목은 그것 없이도 작동해요.
- 세이브를 백업한 뒤 항목을 하나씩 활성화하세요. 문제가 생겨도 어떤 항목 때문인지 알 수 있어요.
치트 테이블 사용법 가이드에서 불러오기, 활성화, 문제 해결을 자세히 다뤄요.
검토로는 알 수 없는 것
위험한 함수가 있는지 테이블을 확인하는 건 PC를 보호하기 위한 거예요. 테이블이 작동한다는 보장은 아니고, 게임 충돌이나 세이브 손상을 배제할 수도 없어요. 그래서 백업이 중요해요. 또 테이블을 어디에 써야 하는지도 달라지지 않아요. 싱글 플레이와 오프라인 게임에서만 쓰세요. 온라인이나 멀티플레이 게임에서 메모리 편집을 사용하면 다른 플레이어에게 영향을 주고 계정 정지로 이어질 수 있으며, 어떤 검토를 해도 그건 용납되지 않아요.
Cheat Engine 자체는 공식 사이트에서 받으세요
이 모든 건 Cheat Engine 자체가 정품이라는 전제예요. 공식 사이트인 cheatengine.org에서만 다운로드하고, 설치 화면을 하나하나 읽고, 선택적으로 포함된 제안은 거절하세요. Cheat-Engine.net은 치트 테이블을 위한 독립 커뮤니티 사이트이며 Cheat Engine 개발자인 Dark Byte와 관련이 없어요. 다른 곳의 "Cheat Engine" 다운로드와, 치트 테이블이라면서 실제로는 .exe 파일인 것은 조심하세요. Cheat Engine은 독립 실행형 트레이너와 보호된 트레이너 파일도 만들 수 있는데, 이런 파일은 일반 .CT 파일보다 검사하기가 훨씬 어려우니 각별히 주의하세요.
요약
- .CT 파일은 읽을 수 있는 XML이에요. 읽는 건 안전하지만, Cheat Engine에서 실행하는 건 자동으로 안전하지 않아요.
- 값 항목은 PC에 위험이 낮고, 스크립트, Lua, 내장 파일은 검토할 가치가 있어요.
- 스크립트를 읽기 전까지는 Lua 창을 거절하세요.
- 프로그램을 실행하거나, 파일을 쓰거나, 다운로드하거나, DLL을 불러오거나, 난독화된 코드를 가장 조심하세요.
- 세이브를 백업하고 싱글 플레이와 오프라인 게임만 이용하세요.
댓글
아직 댓글이 없어요
가장 먼저 의견을 남겨 보세요.