@AlexsandrLomaev

Изучить базовую структуру читов?

Привет! такая проблема

я уже не плохо покапался в C++ \ С# и мне необходимо бы знать основу структуру написания чита,
ну допустим что нужно первым делом написать ? ( подключиться к потоку ) и т.д

если скинете полезные статьи\гайды\ссылки\каналы по моему вопросу
буду очень благодарен!

или найдётся среди вас умеющий, прошу помощи ( возможно оплата за тренинг )
  • Вопрос задан
  • 164 просмотра
Пригласить эксперта
Ответы на вопрос 2
Griboks
@Griboks Куратор тега C#
Это зависит от цели чита.
Если вам нужен анализ игровой обстановки в реальном времени, то пишите оверлей.
Если вы хотите создать бота, то пишите автоматизацию клавиатуры, мышки+запись экрана.
Если вы хотите сделать ха или накручивать ресурсы, то у вас ничего не получится, т.к. они хранятся на сервере. Но для простеньких игр вам нужен инжектор/автоматический корректировщик памяти (artmoney)/сниффер пакетов.
Ответ написан
Комментировать
HemulGM
@HemulGM
Delphi Developer, сис. админ
Существуют два основных способа работы читов.
1. Инъекция dll к процессу игры
2. Редактирование чужой памяти

Со вторым всё просто. Подключаемся к процессу, читаем память. Ищем нужные паттерны (или адреса), редактируем.

А вот первый вариант достаточно обширный. На самом деле, если б не было античитов, то всё просто. Подключаемся к процессу, создаем удаленный поток в контексте чужого процесса с вызовом загрузки нужной нам библиотеки. При загрузке библиотеки, она начинает выполняться. Обычно это бесконечный цикл до выгрузки библиотеки. Но античит такое детектит очень легко. Ведь сама библиотека отображается в списке загруженных библиотек. А также, античит может повесить хук на метод загрузки библиотеки и верифицировать "легальность" вызова метода.

По этому, существует более изощренный способ инъекции. Через редактирование памяти. Мы просто всю библиотеку записываем в ОЗУ чужого процесса, определяем все методы этот библиотеки в памяти, а дальше как с обычным инжектом, создаем удаленный поток, но с указанием точки входа в библиотеку напрямую. В итоге, у нас библиотека даже отображаться не будет в списке подгруженных модулей. Называется это ManualMap.
Однако и это детектят. Обычно на стадии доступа к памяти. Детектят используя драйвер. Здесь все ещё сложнее.
Для обхода нам тоже будет нужен драйвер, чтобы поднять наш уровень доступа так сказать. Но это уже потом.

Важный момент. Он состоит в том, что создание читов под Win32 отличается от создания читов под Win64. Это касается архитектуры процесса, а не винды.

P.S. всё это я делал на Delphi, но принцип работы и все методы идентичны почти на всех языках, это ведь WinApi.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы