[C#]ПОЛНЫЙ гайд по создание читов для ПК Unity-игр.

koksBABY

</empty>
Забаненный

koksBABY

</empty>
Забаненный
Статус
Оффлайн
Регистрация
9 Июл 2019
Сообщения
65
Реакции
18
Данный пользователь заблокирован! Причина блокировки указана в профиле. Будьте внимательны при проведении с ним сделки.
Необходимо знать C# хотя бы на базовом уровне.
После прочтения вы сможете создавать читы на такие игры как Копатель Онлайн, Блокада, Кубезумие, Контра сити и другие ЮНИТИ игры.
Прошу прошаренных сильно на меня не орать, я буду рассказывать каждый шаг(Что-бы новички поняли)
Читы будут создаваться на основе кода из самой игры.
Для начала нужна заполучить этот самый "Код игры"
Есть два способа получения:
1)Если игра установлена у вас на компьютере(Может у игры есть лаунчер, или она находится в стиме, других платформах) тогда делаем следующее:
Открываем папку с игрой, далее -> НазваниеПроекта_data/Managed/ и копируем ВСЕ файлы в отдельную папку.
2)Если у вас нет игры на компьютере, и она находится в браузере то необходимо скачать программу:
Пожалуйста, авторизуйтесь для просмотра ссылки.

Пожалуйста, авторизуйтесь для просмотра ссылки.

Программа идет как утилита, т.е, не требует установки, сразу скачиваете и открываете.
Открыли программу ? Ставим галочку на Unity и жмем Refresh Proces List(обновляем список процессов) и жмем на процесс с игрой. После жмем ScanProcess, ждем некоторое время и клацаем на Dump To Disk.
Мы получили все необходимое. Также сохраняем файлы в любое удобное место.
Нам нужен только один файл Assembly-CSharp.dll, остальные нужны лишь для корректной работы этого файла.
Скачиваем ЛЮБОЙ декомпилятор, лично я пользуюсь декомпилятором
Пожалуйста, авторизуйтесь для просмотра ссылки.
. Простой, удобный и можно редактировать прямо в окне.
Открываем файл Assembly-CSharp.dll. Теперь у нас есть два выбора:
1)Писать чит прямо в DLL, далее заменить его в папке с игрой(С браузерными играми такое не работает)
2)Создать отдельное DLL, и внедрить его в игру.
Я буду рассматривать второй вариант. Нам нужен компилятор, лично я использую
Пожалуйста, авторизуйтесь для просмотра ссылки.
2017.
Скачали ? Установили ? Теперь открываем и создаем проект Visual C# -> Библиотека классов. (DLL)
Создаем класс с любым рандомным названием, главное не обычным(В некоторых играх есть защита которая банит по определенным названиям)
Далее добавляем "Ссылки" :
Обозреватель решений -> Ссылки, тыкаем правой кнопкой мыши -> Добавить ссылку -> Обзор и добавляем все файлы которые мы вытащили с игры.
Теперь приступим к созданию самого чита. Создаем несколько методов:
C#:
private void Menu_MainMenu(int id) //Главное меню
{
}
private void OnGUI()
{
}
private void Update() //Постоянно обновляемый метод, все что здесь будет написанно будет создаваться бесконечно
{
]
Выглядеть это будет так:

Пожалуйста, авторизуйтесь для просмотра ссылки.


Объявляем переменную

private bool MainMenu = true;
И юзаем ссылку UnityEngine:
using UnityEngine;
В Update пишем:

if (Input.GetKeyDown(KeyCode.Insert)) //Кнопка на которую будет открываться и закрываться меню, можно поставить другую
{
this.MainMenu = !this.MainMenu;

Объявляем переменные:

public Rect RT_MainMenu = new Rect(0f, 100f, 120f, 100f); //Rect это месторасположение меню по x,y и высота, ширина.
public int ID_RTMainMenu = 1;
И в OnGUI пишем:
if (this.MainMenu)
{
this.RT_MainMenu = GUILayout.Window(this.ID_RTMainMenu, this.RT_MainMenu, new GUI.WindowFunction(this.Menu_MainMenu), "MainMenu", new GUILayoutOption[0]);
}
Теперь мы сделали так, что бы при нажатии на Insert у нас открывается меню. Теперь заполним это меню:
Создаем кнопку в методе Menu_MainMenu:
if (GUILayout.Button("Название вашей кнопки", new GUILayoutOption[0]))
{
//Здесь код, который будет происходить при нажатии на эту кнопку
}
Но где взять этот код ? Ах, хорошо что у нас есть Assembly-CSharp.dll. Ранее мы открыли этот файл в DnSpy, теперь мы ищем в нем интересную информацию. Я нашел переменную PlayerScript.health (Здоровье игрока)

И я вписываю этот код в нашу кнопку, получается:

if (GUILayout.Button("Бессмертие", new GUILayoutOption[0]))
{
PlayerScript.health = 999999; //При нажатии на кнопку у игрока устанавливается здоровье 999999

Пожалуйста, авторизуйтесь для просмотра ссылки.


Теперь создаем новый класс "Loader"
Обозреватель -> Клим на проект -> Добавить -> Класс -> Элементы Visual C# -> Класс -> Создать
Вставляем ссылку:

using UnityEngine;
Создаем переменные:
public static GameObject MainClass;

// Token: 0x040000FE RID: 254
public static GameObject DrawPlayers;

// Token: 0x040000FF RID: 255
public static GameObject DrawVeh;

// Token: 0x04000100 RID: 256
public static GameObject TestAim;

// Token: 0x04000101 RID: 257
public static GameObject GuiClass;
Создаем метод лоад и пишем в него следующее:
public static void Load()
{
Loader.MainClass = new GameObject("fl_Main");
MainClass.AddComponent<Название класса чита>();
UnityEngine.Object.DontDestroyOnLoad(Loader.MainClass);
}

Пожалуйста, авторизуйтесь для просмотра ссылки.


В целом, я объяснил как примерно создать чит. Далее какой он будет зависит только от вас. Мы сделали чит, да, теперь осталось его заинжектить(внедрить) в игру.
Для этого нам нужны Mono-Инжекторы. На просторах интернета их полно. Ищем исходник, и открываем его в том же VisualStudio
Теперь нужно определится для чего будет инжектор(Для браузерных игр, либо для игр скачанных на компьютер)
Я буду делать для браузерных. Отличия этих двух инжекторов, в том что они ищут разные процессы. У игр скачанных на компьютер модуль mono.dll, у браузерных mono-1-vc.dll
В общем, если выражаться проще, мне нужно найти в коде инжектора строку mono.dll и заменить на mono-1-vc.dll. Все, теперь инжектор ищет процессы в которых есть модуль mono-1-vc.dll(Т.е браузерную игру)
Каждый MonoInjector внедряет Пространство имен(Namespace), класс(Class) и метод (Method) просто у некоторых оно прямо в коде, а у некоторых нужно писать прямо в активированной проге.
Пример:
Пожалуйста, авторизуйтесь для просмотра ссылки.


И не важно, будь это пространство имен, класс и тд в коде, или в самой проге. Надо обязательно указать. Но один момент, надо указывать класс и метод не чита, а лоадера о котором я говорил ранее.

Пожалуйста, авторизуйтесь для просмотра ссылки.


Открываем инжектор и внедряем.
Надеюсь вы дочитали это до конца, поняли, и узнали для себя много нового <З
По началу может быть тяжело, но спустя время будет щелкать это как орешки.


Если помог не забудьте благодарочку ВКЛ!

LOVE 8CEX ! ?
 

es3n1n

Модератор форума
Интересующийся

es3n1n

Модератор форума
Интересующийся
Статус
Оффлайн
Регистрация
11 Янв 2019
Сообщения
39
Реакции
7
каким боком это относится к "Уголку вебмастера"?
 

koksBABY

</empty>
Забаненный

koksBABY

</empty>
Забаненный
Статус
Оффлайн
Регистрация
9 Июл 2019
Сообщения
65
Реакции
18
Данный пользователь заблокирован! Причина блокировки указана в профиле. Будьте внимательны при проведении с ним сделки.

koksBABY

</empty>
Забаненный

koksBABY

</empty>
Забаненный
Статус
Оффлайн
Регистрация
9 Июл 2019
Сообщения
65
Реакции
18
Данный пользователь заблокирован! Причина блокировки указана в профиле. Будьте внимательны при проведении с ним сделки.

es3n1n

Модератор форума
Интересующийся

es3n1n

Модератор форума
Интересующийся
Статус
Оффлайн
Регистрация
11 Янв 2019
Сообщения
39
Реакции
7

koksBABY

</empty>
Забаненный

koksBABY

</empty>
Забаненный
Статус
Оффлайн
Регистрация
9 Июл 2019
Сообщения
65
Реакции
18
Данный пользователь заблокирован! Причина блокировки указана в профиле. Будьте внимательны при проведении с ним сделки.

koksBABY

</empty>
Забаненный

koksBABY

</empty>
Забаненный
Статус
Оффлайн
Регистрация
9 Июл 2019
Сообщения
65
Реакции
18
Данный пользователь заблокирован! Причина блокировки указана в профиле. Будьте внимательны при проведении с ним сделки.

Электрик

Интересующийся

Электрик

Интересующийся
Статус
Оффлайн
Регистрация
17 Ноя 2019
Сообщения
211
Реакции
0

Floyd

Новичок

Floyd

Новичок
Статус
Оффлайн
Регистрация
12 Авг 2020
Сообщения
1
Реакции
0
Чтоб добавить функцию надо новое меню создавать?
 
Сверху