Как сделать чит dll

Обновлено: 06.07.2024

Данное руководство я решил написать для ознакомительных целей, так как большинство людей пользуются такими программами, но мало кто из них знает, как они устроены и по какому принципу работают.

Так как руководство основано на опытных пользователей, то необходимы некоторые знания:

• Знание языков программирования (примеры будут написаны на Delphi и C++ Builder), но в принципе если вы хорошо знаете другой язык программирования то вам не составит труда перенести код на него
• Умение пользоваться программами на подобии ArtMoney(знать что такое указатели, разбираться в адресации памяти и т.д)
• Знать что такое шестнадцатеричная система счисления, уметь переводить числа из десятичной в шестнадцатеричную и обратно

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

Итак, начнем. Немного теории:

Чит программы – это программы которые позволяют автоматизировать использование того или иного бага. Как известно баги бывают как минимум пяти видов пакетные(использование TCP/IP пакетов для отправки на сервер или клиент модифицированных данных), memory баги(модификация значений в памяти игрового клиента), файловые(модификация файлов игрового клиента), текстурные (проход сквозь текстуры и т.д) и баги игрового клиента(ошибки в игровом клиенте, приводящие к выполнению действие не задуманных разработчиками) а так же различные их комбинации. В чит программах используются первые три вида, остальные два используются посредством самого игрового клиента без каких либо дополнительных программ.

Вообще тема написания чит программ довольно обширна, поэтому данное руководство разделено на несколько частей. Сегодня я остановлюсь на написании чит программ использующих memory баги. Как было сказано выше, memory баги модифицируют значения в памяти игрового клиента. На их основе реализованы такие известные баги как “ChatHack”, “WallHack”, “SpeedHack”, “FlyHack” и другие (прим. Так же возможна реализация этих багов на пакетном уровне).

Практически все современные игры используют DMA. DMA - - dynamic memory allocation (динамическое распределение памяти). Иными словами DMA игры хранят значения в памяти по адресам, которые изменяются после каждого запуска, перезапуска, загрузки сохранения, перехода в другую локацию или уровень и т.д. С этим многие сталкивались когда “ломали” не онлайн игры на “на деньги” например с помощью ArtMoney и после приведенных выше действий таблицы со “взломами” переставали работать. Но с этим легко бороться, достаточно лишь один раз найти указатель на нужный нам адрес. Указатель - это адрес, в котором содержится адрес на интересующее нас значение. Адреса же указателей не изменяются в отличие от остальных. Так же не меняются смещения других адресов относительно адреса, на который указывает указатель. Таким образом, для написания чит программы нам нужно считать из указателя адрес, а потом по этому адресу модифицировать значение.

Перейдем к практике:

Рассмотрим написание чит программы на примере всем известного “SpeedHack”.

Как использовать “SpeedHack” через ArtMoney я расскажу вкратце так это руководство не по поиску багов а по написанию программ с их применением. Дам несколько советов по поиску значения скорости, так как в игре скорость является дробью, то тип значения выбираем с точкой. Размерность выбираем 4 байта, так как большинство значений в современных играх 4-х байтные (за некоторым исключением). Указав такие условия поиска, мы значительно его сократим. Затем устанавливаем значение поиска равное значению в игре, выполняем поиск. Заходим в игру, одеваем оружие на бег и отсеиваем новое значение. И так пока не останется одно значение. Добавляем его в таблицу и видим адрес этого значения в памяти (для использования “SpeedHack’а”, нужно установить желаемое значение и “заморозить” его). Допустим оно у нас равно 0134EA80. Но так ига использует DMA, просто адрес нас не устроит, так как при следующем входе в игру он изменится. Поэтому мы будем искать указатель на этот адрес, который как говорилось выше не изменяется. Как искать указатели я тут рассказывать тоже не буду, так как статья не об этом (читайте руководство пользователя ArtMoney). После поиска указателя он оказался равным 00D1B4F0 а смешение адреса в котором находится значение скорости равно 2356. Важно отметить, что указатель в ArtMoney указывается в шестнадцатеричной системе счисления, а смещение в десятичной. Ну да ладно, что же нам теперь делать с найденными значениями. А вот теперь-то мы и будем писать программу, которая по этим значениям будет модифицировать память игрового клиента.

Создадим новый проект в Delphi и разместим на форме элементы: Label, SpinEdit, Button, Timer всех по одному. Label будет содержать просто информацию, в SpinEdit будем задавать желаемое значение скорости, Timer будет осуществлять функцию “заморозки” (каждые 100 миллисекунд он будет обновлять наше значение), Button будет активировать/деактивировать Timer(“SpeedHack”).
Для работы с памятью игры мы будем использовать следующие API функции Windows:

Подробное описание функций и значения их параметров я приводить не буду, кого заинтересует, могут посмотреть MSDN.
Основными функциями записи и чтения из памяти являются: ReadProcessMemory и WriteProcessMemory.
Ну вот собственно исходный код таймера который изменяет значение по найденному выше указателю:

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

Авторские права и условия распространения материала:
Автором материала является Тигрь, то бишь я. Статья может распространяться свободно но без каких либо изменений, с обязательным указанием моего авторства, и с приведенными выше ссылками на исходные коды программ.

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

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) просто у некоторых оно прямо в коде, а у некоторых нужно писать прямо в активированной проге.
Пример:

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

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

Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно.
Вам необходимо обновить браузер или попробовать использовать другой.

R G T X

Потрачен

Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

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

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

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

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

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

Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно.
Вам необходимо обновить браузер или попробовать использовать другой.

Участник

Салют мужики, решил сделать чит на ваймворлд, будет работать как dll, просто грузить через ProcessHacker в процесс vimeworld.exe, подскажите как сделать и с чего начать? С чего начать изучение и чего именно (мой первый шаг будет просто как панелька или чит без панельки в принципе)
Функционал будет легитный для игры на режимах: BedWars, SkyWars, Аркады ну и дуэльки (основные режимы)
Функционал: Smooth Aim, Silent AIM (пока-что думаю хватит)

SASDk

Участник
Участник

я для себя хочу сделать, чтобы был навсегда и бесплатно, но при этом легит функции, в h2w нету норм легит функций

f0Re3t

Poh production

может нужно с начать с вопроса: а надо ли оно мне? если ты задаешь подобные вопросы, то и так уже ясно что ты нихуя не сможешь сделать.

Участник

может нужно с начать с вопроса: а надо ли оно мне? если ты задаешь подобные вопросы, то и так уже ясно что ты нихуя не сможешь сделать.

в этом согласен, но оно мне надо и я хочу научиться

клешь рояль

Известный

Просто забей хуй, и купи h2w за 400.Потратишь больше времени на изучение, потому что исходников читов на вв нету

Участник

Просто забей хуй, и купи h2w за 400.Потратишь больше времени на изучение, потому что исходников читов на вв нету

мне не то что хочется просто сделать чит, я хочу получить максимум знаний

клешь рояль

Известный

мне не то что хочется просто сделать чит, я хочу получить максимум знаний

Участник

я их смотрел раньше, не изучил c++ до конца, мне нужно просто понять как это работает, но не знаю как

arreant

Известный

зачем ты споришь с опытными людьми ? они ведь лучше тебя разбираются в программировании.

Участник

зачем ты споришь с опытными людьми ? они ведь лучше тебя разбираются в программировании.

sazzas1978

Новичок

Если бы ты действительно хотел сделать чит, то загуглил, что тебе нужно или посмотрел гайды на ютубе, информации по созданию читов достаточно, и не задавал бы тупых вопросов на форуме, никто за тебя готовую информацию искать не будет, если ты еще не понял.

Потрачен

Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

С помощью какого-то dll файла и Process Hacker'a ты никак чит для vimeworld'a не сделаешь. Твой Process Hacker просто не сможет заинжектить чит на VimeWorld. Надо нормальный инжектор который будет специально написан для VimeWorld'a. Тебе будет проще заказать что бы тебе сделали чит только для тебя и всё и цена будет от 2к руб как минимум. А сам ты его из открытых источников его не сделаешь.

Qsany

Известный

atizoff

приобретаю кашель за деньги

С помощью какого-то dll файла и Process Hacker'a ты никак чит для vimeworld'a не сделаешь. Твой Process Hacker просто не сможет заинжектить чит на VimeWorld. Надо нормальный инжектор который будет специально написан для VimeWorld'a. Тебе будет проще заказать что бы тебе сделали чит только для тебя и всё и цена будет от 2к руб как минимум. А сам ты его из открытых источников его не сделаешь.

любой драйверный инжектор и твой ваймворлд обосрётся

Салют мужики, решил сделать чит на ваймворлд, будет работать как dll, просто грузить через ProcessHacker в процесс vimeworld.exe, подскажите как сделать и с чего начать? С чего начать изучение и чего именно (мой первый шаг будет просто как панелька или чит без панельки в принципе)
Функционал будет легитный для игры на режимах: BedWars, SkyWars, Аркады ну и дуэльки (основные режимы)
Функционал: Smooth Aim, Silent AIM (пока-что думаю хватит)

Просто забей хуй, и купи h2w за 400.Потратишь больше времени на изучение, потому что исходников читов на вв нету

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