치트엔진/사용 가이드

치트엔진 Mono Features을 이용한 스피드해킹(Dissect mono, .Net Info)

cp_good: 2022. 8. 7. 06:07
반응형

 
유니티 게임에 치트엔진을 연결하면 "Mono"라는 탭이 활성화됩니다.

 

평상시
유니티 게임

 

Mono와 il2cpp

 

Unity는 두 가지의 빌드 방법이 존재합니다 (Mono와 il2cpp)
Unity는 멀티플랫폼을 제공을 위해 C#을 사용합니다.
C#코드는 컴파일 시 IL코드로 변환됩니다.
IL코드 실행을 위해서는 IL코드를 Assembly 코드로 변환해야 하며, 이를 위해 Mono를 사용합니다.
Mono가 IL코드를 Assembly로 변환하여 실행하게 됩니다.
 
추가 설명
CPU와 OS에 독립적인 기계어 코드, 이것을 중간 언어, IL(Intermedidate Language)이라고 한다.
또는 MSIL, CIL(Common Intermediate Language)이라고 한다. CIL을 더 많이 쓰는 듯
● 이 중간 언어는 CPU가 바로 해석할 수 있는 것이 아니라
"가상 머신"이라는 것이 CPU가 이해할 수 있도록 해석해 준다.
이런 구조의 장점은 CPU와 OS에 독립적으로 프로그래밍할 수 있다는 것이다.
즉, 개발한 프로그램을 각 플랫폼에 맞는 가상 머신
윈도우용, 리눅스용 가상 머신을 사용하면 어디든지 실행이 가능하다는 것이다.
이 가상 머신을 "CLR(Common Language Runtime)"이라고 한다.
● Mono로 Build를 하면, "Assembly-CSharp.dll" 파일이 생성됩니다.
 
정리
유니티는 Mono, il2cpp를 쓰는데
치트엔진에서 유니티 해킹 도구를 제공해 준다.
 


사용방법

".Net Info" 기능 먼저 사용해 보겠습니다
"Mono -> .Net Info" 선택
치트엔진 하단에 바가 다 차오를 때까지 기다립니다

.Net Info 선택
기다리기

 

그리고 ".Net Info" 창 좌측 상단 Find를 눌러주면
선택 창이 뜹니다.
● Find Class : Class들을 찾아줍니다.
● Find Field : Class안의 변수를 찾아줍니다.
● Find Method : Class안의 함수를 찾아줍니다.

 

 
먼저 변수를 찾아보겠습니다.
"Find -> Find Field"를 선택해 주면

 

Find - Find Field

 
Find Field 검색창이 뜹니다.
여기서 게임과 관련 있을듯한 변수 이름(speed, health, coin 등)을 검색해 주면 됩니다.
저는 스피드 치트를 해보고 싶으니 speed로 검색해 줬습니다.
"Case Sensitive"를 체크 해제해서 대소문자 구분 없이 검색하도록 하겠습니다.

 

 
검색된 필드 중 플레이어 속도와 관련이 높아 보이는 값을 찾아줍니다.
 
Assembly-CSharp.dll에 LocalPlayer -> movementSpeed 필드를 찾았는데
일반적으로 "Assembly-CSharp.dll" 안에 핵심들이 있습니다.
LocalPlayer에 필드 이름도 느낌 좋으니
한번 수정해 보도록 하겠습니다.
더블클릭해 줍니다.

 

movementSpeed 변수

 

더블클릭해 주면 Class Information -> Static fields에
movementSpeed가 있는 걸 볼 수 있습니다
 
더블클릭해서 바꿔줍니다
기본이 5.0이니 10배 해서 50으로 하면 상당히 빨라지겠군요
 

스피드 10배 핵

 
이런 식으로 유용하게 값을 찾을 수 있습니다
 
그 외 Methods 창에서
"함수 우클릭 -> JIT/Get Address" 클릭하면

 

 
함수를 찾아줍니다.

 

 
별 내용은 없는데
이런 기능도 있다고 소개한 겁니다.
 
메일 : qmffhrm@protonmail.com

반응형