Гайд Как писать читы на C# (BunnyHop)

  • Автор темы Автор темы D3l0ry
  • Дата начала Дата начала
Пользователь
Пользователь
Статус
Оффлайн
Регистрация
1 Апр 2020
Сообщения
91
Реакции
105
Всему YouGame привет! В этом гайде я решил показать, как писать читы на C#. Конечно же мы не будем с нуля писать методы для чтения и записи в память процесса, мы будем использовать библиотеку NativeManager, которая хранится в моем репозитории на GitHub. Ссылку на нее я оставлю ниже.
Ну давайте приступим)

Я не буду объяснять, как создавать проекты в VisualStudio и тому подобное, будем считать, что те, кто читают этот гайд, хотя бы немного разбираются в том, как создавать и работать с проектами в визуалке.

1)Первым делом нужно скачать библиотеку на GitHub:
Пожалуйста, авторизуйтесь для просмотра ссылки.

2)Скомпилируйте эту библиотеку у себя на компьютере
3)Создайте свой проект с будущим читом
4)Через ссылки добавьте NativeManager в свой проект
5)Приступаем к разработке!!!!

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Чит мы будем создавать на примере игры CS:GO

1)После того как мы создали проект с читом, нам нужно добавить ссылки на пространства имен нашего NativeManager'a
using System.MemoryInteraction;

2)В NativeManager есть 2 класса для работы с памятью
  1. SimpleMemoryManager
  2. MemoryManager(Производный класс от SimpleMemoryManager)
Мы будем использовать класс MemoryManager, так как в нем реализованы методы, которые позволяют нам без дополнительных усилий прочитать данные из памяти процесса.

3)Пишем код для присоединения к процессу игры
ВАЖНО!!!
Игра должна быть запущена раньше чита, иначе мы словим исключение, что такого процесса не существует!
C#:
Expand Collapse Copy
Process process = Process.GetProcessesByName("csgo")[0];
MemoryManager memory = process.GetMemoryManager();
В первой строчке кода мы указали, что нам нужен процесс с именем "CSGO".
Во второй строчке кода мы указали, что нам нужно получить экземпляр MemoryManager для работы с виртуальной памятью процесса.

4)Следующим этапом нам нужно получить модули процесса, с которыми нам нужно работать, что бы прочитать нужные нам данные
C#:
Expand Collapse Copy
IntPtr client = process.GetModule("client.dll").BaseAddress;

5)Создаем бесконечный цикл для того, что бы наш чит постоянно читал данные из игры и мог так же в нее записывать.
C#:
Expand Collapse Copy
while(true)
{

}

6)Теперь нам нужно получить локального игрока из игры. Для этого в цикле нам нужно написать вот такой код
C#:
Expand Collapse Copy
IntPtr localPlayer = memory.Read<IntPtr>(client + 0xD3FC5C);
Число 0xD3FC5C может меняться с каждым обновлением игры. Следить за обновлением оффсетов можно на GitHub по этой ссылке:
Пожалуйста, авторизуйтесь для просмотра ссылки.


7)Мы получили локального игрока, теперь нам нужно получить его флаг. С помощью него мы будем понимать в прыжке он или нет
C#:
Expand Collapse Copy
 int flag = memory.Read<int>(localPlayer + 0x104);

8)Для начала сделаем проверку на нажатие кнопки пробела
Этот код нужно добавить в любой из классов
C#:
Expand Collapse Copy
[DllImport("user32.dll")]
static extern bool GetAsyncKeyState(int vKey);

А этот код в наш цикл после получения флага
C#:
Expand Collapse Copy
if (GetAsyncKeyState(32))
{

}

9)Теперь нам нужно сделать проверку, находится игрок в воздухе или на земле. Для этого нужно добавить этот код в условие проверки нажатия клавиши пробел
C#:
Expand Collapse Copy
 if(flag == 256 || flag == 262)
{

}

10)В этом условии нам нужно сделать запись в память игры, что бы делать прыжок, когда мы оказываемся на земле
C#:
Expand Collapse Copy
if (flag == 256 || flag == 262)
{
     memory.Write(client + 0x51FE22C, 4);
}
else
{
     memory.Write(client + 0x51FE22C, 5);
}

На этом все. Мы написали такой маленький и легкий код, с помощью которого наш персонаж может прыгать без остановок.
Надеюсь, я объяснил все доходчиво и понятно. Если будут какие то вопросы, то с удовольствием отвечу вам на них в комментариях.
А вот подарок тем, кто не хочет копировать код по частям.

C#:
Expand Collapse Copy
            Process process = Process.GetProcessesByName("csgo")[0];
            MemoryManager memory = process.GetMemoryManager();

            IntPtr client = process.GetModule("client.dll").BaseAddress;

            while(true)
            {
                IntPtr localPlayer = memory.Read<IntPtr>(client + 0xD3FC5C);

                int flag = memory.Read<int>(localPlayer + 0x104);

                if (GetAsyncKeyState(32))
                {
                    if (flag == 256 || flag == 262)
                    {
                        memory.Write(client + 0x51FE22C, 4);
                    }
                    else
                    {
                        memory.Write(client + 0x51FE22C, 5);
                    }
                }

                Thread.Sleep(1);
            }
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
А нахуй оно надо?
 
Можно ли написать бхоп на шарпе с нуля без всяких библиотек? Было бы интересно посмотреть
 
Последнее редактирование:
Можно ли написать бхоп на шарпе с нуля без всяких библиотек? Было бы интересно посмотреть
Можно, если не хочешь использовать вообще никакие сторонние библиотеки, что бы был один exe в папке. То можно использовать только kernel32.dll, которая лежит в самой винде. Тогда все ее функции можешь брать из импорта. Получится один exe с библиотекой, которая будет находиться в корне винды, а не рядом с твоим exe.
 
Можно ли написать бхоп на шарпе с нуля без всяких библиотек? Было бы интересно посмотреть
Enigma VirtualBox в помощь, и не нужно ничего придумывать. Программа будет открываться чуть дольше, но вы этого не заметите
 
С флагами можно было провернуть отдельную функу, но и так сойдёт) Годно)
 
Можно, если не хочешь использовать вообще никакие сторонние библиотеки, что бы был один exe в папке. То можно использовать только kernel32.dll, которая лежит в самой винде. Тогда все ее функции можешь брать из импорта. Получится один exe с библиотекой, которая будет находиться в корне винды, а не рядом с твоим exe.
А можно ли самому написать эти функции и поместить их просто в свой проект?
 
А можно ли самому написать эти функции и поместить их просто в свой проект?
Такие же не написать, а может и написать, но с использованием драйвера. Ты можешь только обертку для этих функций написать в своем проекте, это тоже самое, что использовать библиотеку, только весь нужный код из либы можешь прям в свой exe поместить
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Сделай гайд по созданию аима и будет топ
 
А можно ли самому написать эти функции и поместить их просто в свой проект?
Здравствуйте. Если вы не недавно знакомы с C#, то c помощью IlRepack и старенкого ILMerge склеить exe с любой шарповской длл-кой(только IlMerge не дружит с библиотеками, имеющие ресурсы).
 
что это нам даст? просто вернет 256 либо 262 флаг?
Ну ты же сам спросил, в прошлом ответе ЧТО НАПРИМЕР? Когда человек написал, что можно сделать отдельную функцию, вот я написал отдельную функцию, это дает true или false в зависимости от того, стоим мы на земле или в присяде(Если я правильно помню). Надеюсь, что я ответил на твой вопрос
 
У меня есть вопросы он в vs code делается. 2 Можешь помочь в vs code у меня код не запускается я только начинаю покорять знания програмирования). ( тип у меня чёто не находит, не открыта папка и т.д.
 
Компилятор ошибок не выдает, сигнатуры сменил на новые, но оно не прыгает...
 
А блять сигнатуры для прыжка забыл поменять, все работает.
 
Назад
Сверху Снизу