Как сделать свой чит

Добавил пользователь Алексей Ф.
Обновлено: 18.09.2024

В этой статье я расскажу тебе, как делаются читы для игр. На самом деле создавать их очень просто! В kernel.dll есть функции для дебага, которыми мы будем пользоваться. С их помощью можно читать и изменять значения в памяти гамы! Вот это нам и надо!.

Для создания читов тебе понадобятся 3 вещи:

1. Delphi какой-нибудь последней версии.
2. GameHack (или что-нибудь вроде этого). Но лучше GameTrainer (потому что халявный).
3. Прямые руки!

Для начала ты должен разузнать кое-что о гаме.

1. Название окна. Ну, название окна каждый ламер находить умеет, тут уметь-то ничего не надо.

2. Адрес в памяти. Чтобы нам что-то изменить в памяти, нам нужно нужно конкретно знать где и че изменять. Поэтому мы сначала найдем адрес в памяти, а потом уже все хакнем. Его ты найдешь с помощью специальной проги - GameTrainer (можно также GameHack или что-то такое).

Зайди в гейм. Запомни значение денег/жизней/фрагов или чего захочешь. Теперь в GameTrainer'е в первом поле выбери процесс, а во второе пиши то значение, которое ты только что запомнил (хотя ты уже, наверное, забыл). Сейчас GameTrainer выдаст тебе большое количество адресов, но нам они все нафиг не нужны! Поэтому измени это значение как-нибудь(потрать несколько пуль, купи че-нибудь, убей кого-нибудь и т.д.). Теперь снова вводи это значение в GameTrainer, только в этот раз нажимать надо не Find, а Seive! И так пока останется минимальное количество адресов.

3. Тип данных. Тип данных играет немаловажную роль! Основываясь на нем, ты будешь делать чит, а также определять максимальное значение Вот примеры:

byte: 256; 1 байт;
word: 65536; 2 байта;
dword: 4294967296; 4 байта;

Здесь я приведу пример создания чита для Counter-Strike'a v1.3, т.к. по-моему это самая популярная игра. Чит нам будет жизней до фига делать! Единственное, что плохо - он будет работать только если ты создал сервак и если у тебя Software Video Mode. Можно сделать и под OpenGl, но там адреса другие, потому что эти режимы занимают разное количество памяти.

Мы будем использовать вот эти API функции (почитай о них в справке):

FindWindow
GetWindowThreadProcessId
OpenProcess
ReadProcessMemory
WriteProcessMemory
CloseHandle

Сначало обЪяви вот это дерьмо:

const
WindowTitle = 'Half-Life';// названия окна
Addr_Health1 = $00137A54;
Addr_Health2 = $00138938;
Addr_Health3 = $01CBA38C;
// адреса в памяти

var
Wnd : THandle;// хэндл окна
ProcessId : integer;// пид (не п*д*р)
pokevalue : single;
// само значение (про типы данных помнишь?)
ProcHandle : integer;// хэндл процесса
NumberOfBytes: byte;// кол-во байтов
rw : cardinal;// чтение/запись

Теперь добавь на форму Edit и Button, а по нажатию button'а напиши следующее:

begin
Wnd := FindWindow(nil,WindowTitle); // получаем хэндл окна
if Wnd = 0 then // если гама не запущена, то обламываем лама
begin
MessageBox(0,'Запусти КС, козел','Ошибка в ДНК!',MB_OK + MB_ICONERROR);
exit;
end;

try
pokevalue := StrToInt(Edit1.Text); // получаем кол-во хп, введенное в Edit
except
MessageBox(0,'Введи хп, козел','Ошибка в ДНК!',MB_OK + MB_ICONERROR);
exit;
end;

GetWindowThreadProcessId(Wnd, @ProcessId); // получаем PID
ProcHandle := OpenProcess(PROCESS_ALL_ACCESS,false,ProcessId);
// получаем хэндл процесса

NumberOfBytes := 4;// в данном случае 4 байта,
// а это значит, что максимально значение
// == 2564 (~4 миллиарда хп )

WriteProcessMemory(ProcHandle,ptr(Addr_Health1),@p okevalue,NumberOfBytes,rw);
WriteProcessMemory(ProcHandle,ptr(Addr_Health2),@p okevalue,NumberOfBytes,rw);
WriteProcessMemory(ProcHandle,ptr(Addr_Health3),@p okevalue,NumberOfBytes,rw);
// хакаем игру

Closehandle(ProcHandle);
// закругляемся
end;

Можешь в чит добавить одну фишку: используя функцию ReadProcessMemory можно
вставить кол-во хп в свою прогу, и тут-же изменить на другое
А это можно сделать вот так:

ReadProcessMemory(ProcHandle,ptr(Addr_Health1),@po kevalue,4,rw);
Edit1.Text := FloatToStr(pokevalue);

Я так и быть дам тебе адреса на OpenGl и Direct3D, чтобы ты потренировался.

Software_Address_Health1 = $00137A54;
Software_Address_Health2 = $00138938;
Software_Address_Health3 = $01CBA38C;

OpenGl_Address_Health1 = $00137BA8;
OpenGl_Address_Health2 = $00138A88;
OpenGl_Address_Health3 = $01CA64DC;

D3D_Address_Health1 = $00137BA8;
D3D_Address_Health2 = $00138A88;
D3D_Address_Health3 = $01CA64DC;

Тут вроде все ясно где и что.

Запомни, что это для КСа, поэтому тот же код не потянет на некоторые гамы! Там уж сами разбирайтесь. Поседишь где-нибудь часика 2 и поймешь что к чему.

Всем привет пастеры или просто люди,которые хотят создать свой приватный чит в CS:GO.Сегодня я вас научу как это делается,даже знания языков не понадобится.

1.Мы конечно же должны скачать программу для создания программ - Visual Studio


4.Теперь,как у вас открылся проект,возможно попросит изменить версию на v141,нажимаете ок.

5.Теперь нажимаем ctrl + f,в открывшемся окне поиска пишем yandere(название чита),нажимаем найти далее и так заменяем все что оранжевым отмеченно,на название вашего чита!








6.После этого мы должны скомпилировать наш "Приватный" чит,для этого нажимаем на кнопку сборка - построить csgocheat


Если компиляция завершилась удачно,то будет написано: сборка:успешно: 1
Теперь достаем скопиленную длл,она находится в папке с исходниками чита и далее там папка Release.

7.Теперь если хотите играть на серверах вак и чтобы чит был undetect,нужно скачать программу Protect


8.После того как скачали,распакуйте на рабочий стол и длл с читом положите в папку с протектором,и переменуйте в System32.dll
После этого открываем svcchost.exe,нажимаем Protect и ждем 10-20 сек,после этого появится в папке с протектором длл System32_protected.dll,это и есть наш undetect чит!



9.Теперь если хотите сделать чит с привязкой,то нам понадобятся исходники лоадера,я для примера беру zefox.

R G T X

Потрачен

Привет, сегодня мы создадим наш первый External-чит для ксго. Создавать мы будем вх, так как вх - идеален, чтобы рассматривать его как основу. Я постараюсь расписать все максимально понятно и по шагам, чтобы вы поняли как что работает, а не просто спастили код и ничему не научились.
Итак, приступим.
1. Создаем простой C++ проект в Visual Studio.
2. Создаем файл main.cpp, здесь и будет весь наш код.
3. Пишем в начало файла следующий код:

здесь мы подключили нужные библиотеки для работы, если у вас какой-то нет, то скачайте или подключите через параметры проекта (можете посмотреть в интернете уроки, если не знаете, как это делать, их полно).
4. Теперь самое время сделать переменные с оффсетами. Почему именно переменные? Да потому что их легко обновлять, и не нужно лазить по всему коду и вспоминать, какой оффсет для чего и где.

разберем каждое ключевое слово в коде:
const - мы делаем именно константы (не переменные), чтобы им нельзя было присвоить другие значения, кроме тех, которые мы уже задали.
DWORD - класс. Переменные имеют тип экземляра именно класса DWORD.
5. Сейчас мы определим переменные, с которыми мы будем работать на протяжении всего написания чита.

Мы объявили необходимые переменные, комментарии, обозначающие "что зачем и почему" я написал в самом коде.
6. Что же, теперь приступим к написанию нашего чита непосредственно.
Первое, что нам нужно - это возможность включать или выключать те или иные функции (в нашем случае - вх).
Если вы подумали о переменной типа boolean, определяющей статус функции - вы правы.

Мы объявили переменную, которая определяет статус функции, по умолчание вх выключено, значит значение переменной false.
7. Так как мы создаем External-чит, нам нужно читать память и изменять ее.
Добавим следующий код, необходимый нашему читу. Что и зачем расскажу по ходу дела.

данный код находит в нашей оперативной памяти именно то приложение, которое нам нужно (по его id - pid, который передается функции).

эти стандартные функции читают и пишут память, именно с помощью них мы будем взаимодействовать с игрой.
8. Теперь создадим входную точку, без которой не будет работать ни одно приложение C++. Это int main().

Cheat Engine

Для того чтобы иметь возможность создавать собственные трейнеры для игры на ПК, вам необходимо получить чит-движок и научиться некоторым базовым приемам поиска значений.

Если вы еще не обладаете необходимыми навыками, ознакомьтесь с этим руководством по базовой работе с чит-движком. Вам также придется запастись терпением. Чем больше игра, тем сложнее заставить трейнер работать. Вам придется запускать, сканировать, перезапускать в течение довольно длительного времени, чтобы заставить работать несколько указателей, и это потребует большого терпения.

Основная концепция

Когда мы запускаем игру на нашем ПК, данные хранятся в оперативной памяти, и им присваивается физический адрес памяти, например "00E0E990". Однако этот адрес не всегда содержит одно и то же значение, поскольку при каждом запуске процесса адреса назначаются по-разному. Поэтому нам нужно найти определенную функцию или "указатель" внутри процесса, который указывает нам на нужное значение. Именно этим мы, по сути, и занимаемся при создании трейнера: Мы ищем функцию в игровом процессе, которая всегда будет указывать нам на значение, которое мы хотим изменить, независимо от того, где в физической памяти хранится это значение. Я знаю, что это звучит сложно, но вы поймете, когда создадите свой первый трейнер.

Как это работает

Лучше всего посмотреть видео, чтобы увидеть своими глазами, как это делается, но в общих чертах: Мы сканируем значение, которое хотим изменить, и убеждаемся, что оно правильное. После этого мы выполняем сканирование указателя по этому адресу и, вероятно, получим множество указателей. Чтобы сузить выбор указателей, мы перезапускаем игру и снова сканируем, используя то же значение и его новый физический адрес в памяти. Мы повторяем этот процесс, пока не получим менее 300 или, в идеале, даже менее 100 указателей. После этого мы берем либо все указатели, либо обширную выборку из них и импортируем их в нашу таблицу читов, дважды щелкнув по ним. Теперь мы снова перезапускаем игру, подключаем Cheat Engine и теперь можем легко найти нужные указатели, сравнивая их значения с отображаемыми в игре.

Проблемы

Это работает только для статических адресов и не будет работать для динамических. Также трейнеры, созданные таким образом, будут быстро устаревать после даже самых незначительных обновлений и изменений в игре. Для того, чтобы обойти эту проблему, нам нужно будет создать трейнер AoB Scan Cheat Table Trainer. Я как можно скорее узнаю, как это сделать, и обновлю эту статью, когда смогу научить вас этому. Вот как сделать трейнер на русском.

Как создать трейнер для игры - пошаговое руководство

Чтобы создать трейнер для игры, вам понадобится чит-движок под названием "Cheat Engine" и конечно же сама игра для которой и будет создаваться ваш трейнер. С помощью Cheat Engine отследите нужный вам процесс игры и создайте по нему трейнер в разделе специального меню.

Мы возьмём в качестве примера игру: Веселая ферма 2, наша задача сделать трейнер на бесконечные монеты. Запускаем игру и начинаем играть, видим что у нас 71 монета, ставим игру на паузу и сворачиваем игру на (Alt+Tab) - не в коем случаи не закрывайте игру и не выходите из неё.

Cheat Engine скриншоты

Открываем чит-движок Cheat Engine, и нажимаем иконку в виде монитора, из выпадающего окна выбираем процесс нашей игры ferm2.wrp.exe и нажимаем открыть.

Cheat Engine скриншоты

Дальше нам нужно найти наши монеты 71, в поле “Значение” вписываем 71 и нажимаем кнопку “Поиск”.

Cheat Engine скриншоты

Далее нам нужно уточнить искомое значение, так как у нас получилось много адресов, а нам нужно оставить только одно. Разворачиваем нашу игру тем же способом на (Alt+Tab) либо нажмите на иконку игры на панели задач вашего компьютера и она развернется. Продолжите игру и потратьте деньги либо заработайте, чтобы монеты наши поменяли значение, у нас их стало 84, нажимаем паузу в игре и снова сворачиваем, но не закрываем игру.

Cheat Engine скриншоты

Переходим Cheat Engine в поле значение вписываем 84 и нажимаем кнопку “Отсев”.

Cheat Engine скриншоты

Как только мы отсеяли, у нас остался 1 адрес - это и есть наши заветные монеты, нажмите правой кнопкой мыши на значение из меню выберите “Найти инструкции, записывающие по этому адресу” по умолчанию (Ctrl+F6).

Cheat Engine скриншоты

У вас откроется всплывающее окно “Следующие инструкции записывают в XXXXXXXX”, в нём ничего не будет. Для того чтобы в нём появился процесс для нашего тренера нужно снова открыть игру и изменить значение монет. Развернув игру с панели мы купили воду из колодца и получили значение 65 золота. Сворачиваем игру и переключаемся на Cheat Engine, как видим в поле появился процесс. Выберите его и нажмите кнопку "Показать в дизассемблере".

Cheat Engine скриншоты

У нас откроется новое окно "Редактор памяти", а в нём и наш адрес, нажмите на него правой кнопкой мыши, чтобы "Копировать в буфер обмена" - "Байты + инструкции" сохраните их в блокнот на рабочий стол они нам пригодятся для работы с трейнером.

Это пример:

Теперь нам нужно это значение заменить на “nop” - как узнать сколько нужно “nop” для этого адреса при создании трейнера. Для этого нажимаем также на адрес правой кнопкой мыши и выбираем из меню “Заменить ничего не делающим кодом” (NOP).

Cheat Engine скриншоты

Считаем сколько у нас получилось “nop” в строке. У нас вышло их 6, запоминаем это количество.

Cheat Engine скриншоты

Возвращаем код обратно в исходное значение, нажав правой кнопкой мыши из меню выбрав “Восстановить оригинальный код”.

Cheat Engine скриншоты

В этом же окне “Редактор памяти” выбираем инструменты, из выпадающего меню выбираем “Автоассамблер”, тем самым у нас появится следующее окно “Автоассамблер” тут мы и будем писать наш код для будущего трейнера. Выберите из окна “Шаблон” вставить секции [ENABLE] и [DISABLE].

Cheat Engine скриншоты

Из шаблона мы оставляем только [ENABLE] и [DISABLE]. Под параметр [ENABLE] мы должны прописать следующий код, который мы скопировали и количество “nop”:

Под параметр [DISABLE], оригинальный код без изменения:

Cheat Engine скриншоты

Обратите внимание на “:” они должны быть обязательны, либо у вас не получится инъекция кода. Нажмите выполнить и подтвердить в этом же окне “Автоассамблер”, нажмите “Файл” и “Добавить к текущей таблице”. Как только мы всё сделали переходим к главному окну Cheat Engine и видим наш готовый код для трейнера. Этот код можно переименовать на свой щелкнув 2 раза мышкой на “Бесконечные монеты”. Чтобы проверить работает наш код или нет, поставьте напротив него в пустом поле крестик, это активирует наш код. Также желательно установить активацию кода на клавишу, как правило F1 - Бесконечные монеты. Давайте это сделаем чтоб не было в дальнейшем хлопот с указанием клавиши в трейнере. Для этого щелкните правой кнопкой мыши по коду и выберите “Назначить горячие клавиши” (Ctrl+H). В окне Назначить/Изменить горячую клавишу, заполните следующие поля: “Горячая клавиша” - нажимаем F1, “Описание по умолчанию” - Бесконечные монеты, “Звук активации” - по умолчанию Active и Deactive и нажмите "Подтвердить".

Cheat Engine скриншоты

Запустите игру и начните тратить монеты или собирать. Как видим значение не меняется, это значит что наш код работает на 100%. Так же вовремя игры нажимаем нашу горячею клавишу "F1", чтобы убедиться что наш код включается и выключается. Можно приступать к созданию трейнера.

Создание трейнера с горячими клавишами и оформлением

Чтобы создать трейнер перейдите к главному окну программы Cheat Engine, нажмите “Файл” и “Сгенерировать трейнер, используя текущею таблицу”. Заполните важные поля: 1. “Название” - Название вашей игры, 2. “Текст о трейнере” - Напишите версию игры и кто создатель, 3. “Иконка” - Выберите маленькую иконку в формате .PNG, она будет отображаться как ярлык трейнера, а так же на самом трейнере в верхнем левом углу, 4. “Фоновое изображение” - выберите любую вертикальную картинку, как правило это обложка самой игры, 5 “Разрешить размер окна” - как правило эту галочку снимают, чтобы трейнер имел фиксированный размер окна, если вы не снимите пользователи его смогут растягивать. Также можно добавить музыку "Проигрывать модульную музыку" - Скачайте музыку в формате .xm выберите из папки в которой она расположена, музыка будет запускаться при запуске трейнера. 6. “Сгенерировать” - приступить к сохранению трейнера.

Cheat Engine скриншоты

После того как вы нажмете генерировать, проверьте все параметры, обязательно в “Процесс” ставьте “Целью является 32-битный процесс”, так как у пользователей может быть операционная система 32. Дальше нажмите “Сгенерировать”.

Cheat Engine скриншоты

Обратите внимание, что все элементы (Музыка, картинки) и сохранение трейнера должно быть в корне C:\ либо по английскому пути C:\Triner. Если вы будите сохранять на C:\Мои документы\Это мои трейнеры - вы получите ошибку.

Cheat Engine скриншоты

Это все, что нужно знать о том, как создать трейнер для игры в Cheat Engine.

Здравствуйте! Я учусь в 8 классе и по информатике изучаю язык программирования в Pascal(на данный момент изучаем case). Мне очень нравится,как люди пишут разные читы,программы и так далее. Давно мечтал написать свой чит для игры CS:GO,но не знаю где учиться,как учиться и у кого соответственно.Не могли бы подсказать какой-либо сайт,где я бы мог научиться этому? На ютубе видео смотрел,но там не понятно. Буду очень благодарен,если вы поможете мне! Спасибо!

Средний 5 комментариев

Vlad_IT

myjcom

В каникулы надо гулять на свежем воздухе и заниматься подвижными играми.
Даже взрослые бородатые дяди мечтают об этом. У них это называется отпуск.

Начинает нравится программирование поучаствуйте в олимпиадах, решайте задачки - для мозга полезнее будет.

1. Читы это просто программы. Не нужно учиться писать читы, нужно учиться программировать. Тем более, начинать с сетевой игры типа CS:GO - не для начинающих.

2. Просто пишите много разных программ. Сперва простых, потом усложняйте.

Программирование - штука сложная. Требует много усилий и много времени. Нельзя посмотреть годик ютуб и стать программистом. Нужно несколько лет потратить на написание программ различной сложности. Чтобы вам стало понятнее, case - это оператор. В программировании это настолько простая вещь, что умение пользоваться подобными вещами даже не считается за обучение. Даже начинающий программист, который способен пройти собеседование на джуниора, может за 10 минут научиться пользоваться оператором case для любого языка программирования, даже если он его впервые видит (ну может за исключением извращений типа brainfuck).

Хотите стать программистом - парралельно с паскалем начните учить что-то из современного. Питон, php, java, c++, javascript
пробуйте все школьные задачи написать на этих языках. Через полгодика-год решите какой язык вам понравился больше и дальше углубляйтесь в него.

P.S. И да, терпение. Его нужно много.

tsarevfs

Если вам интересна тема игр, можно двигаться в эту сторону.
Читы дело не очень хорошее. Будем честны, большого вреда вы не нанесете в первое время, все взломают и без вас. Но вот на всевозможные баны нарваться будет обидно.
Хорошей практикой может стать создание модов и расширений. Говорят достаточно легко начинать с minecraft + python. Начать может даже ребенок, а возможности у языка и игры почти неограниченные.

Читайте также: