Как делать читы для игр
Перейти к содержимому

Как делать читы для игр

  • автор:

Как делаются читы для игр?

twobomb

Что никогда не пользовался ArtMoney или CheatEngine? Отсеиваем значения, находим определенный адрес в памяти приложения в котором например хранится значение золота и меняем его. В онлайн играх конечно это бывает не так просто сделать, так как идет синхронизация с серверами, и ваш хак может оказаться только визуальным, но даже там есть свои лазейки.

Egorian

Egorian @Egorian Автор вопроса
twobomb, можно с лазейками поподробнее?
Сергей @sabramovskikh

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

zamboga

twobomb, ещё был game wizard под dos =)
Решения вопроса 1

Griboks

Существуют три разных подхода:
1) изменение значений ячеек памяти
1a) изменение кода/сохранения на диске
2) прокси сетевого трафика
3) подмена ввода/вывода

Ответ написан более трёх лет назад
Нравится 4 2 комментария
это все в тех случаях, когда сервер не идентифицирует клиент и не проверяет целостность?

Griboks

Bwn_z, это в любых случаях.
Ответы на вопрос 3
Хакинг памяти игры.
Ответ написан более трёх лет назад

Egorian

Egorian @Egorian Автор вопроса
Типа CheatEngine?

borisdenis

Довольный Айтишникъ @borisdenis

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

a13xsus

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

automatik, я о этом и говорю, так что не понимаю, про какой хакинг памяти можно говорить. Сейчас 21 век, почти все игры подключается к серверу для идентификации и проверки целостности, даже чтобы поиграть в «сюжетку». Хакинг памяти был актуален, где-то 4-6 лет назад.

было бы большой ошибкой думать

В сетевой игре можно «чит» сделать только на то, что сервером отдаётся на откуп клиенту.
Если, например, здоровье контролируется на сервере, ничего поделать нельзя.
Всё зависит от конкретной игры. Есть разработчики, которые люто орудуют банхаммером за даже подозрение на чит, а есть те, которым похер.
В стрелялках можно сделать aim-bota, например, чтобы каждая пуля летела в голову противнику (даже если стреляешь спиной к нему), в стратегиях популярны map hacking — когда вся карта (и юниты противника) становятся видны, и т. д.
Если игра оффлайновая — тут дозволено всё. Лезем в память процесса и модифицируем что душе угодно.

Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать

coremission

Сергей Кормишин @coremission
Профессиональный программист игр.

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

Это читерство! Учимся взламывать игры и писать читы на простом примере

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

Виды читов и применяемые тактики

Существуют разные виды читов. Можно разделить их на несколько групп.

    External — внешние читы, которые работают в отдельном процессе. Если же мы скроем наш external-чит, загрузив его в память другого процесса, он превратится в hidden external.

Есть три основные тактики модификации поведения игры.

  1. Изменение памяти игры. API операционной системы используется для поиска и изменения участков памяти, содержащих нужную нам информацию (например, жизни, патроны).
  2. Симуляция действий игрока: приложение повторяет действия игрока, нажимая мышкой в заранее указанных местах.
  3. Перехват трафика игры. Между игрой и сервером встает чит. Он перехватывает данные, собирая или изменяя информацию, чтобы обмануть клиент или сервер.

Большинство современных игр написаны для Windows, поэтому и примеры мы будем делать для нее же.

Пишем игру на C

Про читы лучше всего рассказывать на практике. Мы напишем свою небольшую игру, на которой сможем потренироваться. Я буду писать игру на C#, но постараюсь максимально приблизить структуру данных к игре на C++. По моему опыту читерить в играх на C# очень просто.

Принцип игры прост: нажимаешь Enter и проигрываешь. Не особо честные правила, да? Попробуем их изменить.

Приступим к реверс-инжинирингу

Исполняемый файл игры

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

Начнем с поведения игры

При каждом нажатии Enter жизни игрока уменьшаются на 15. Начальное количество жизней — 100.

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

Подключение CE к игре

Первым делом мы получаем список всех значений 85 в памяти.

Все значения, которые нашел CE

Нажмем Enter, и показатель жизней будет равен 70 . Отсеем все значения.

Значение найдено

Вот и нужное значение! Изменим его и нажмем Enter для проверки результата.

Значение изменено Скрин игры, после того как мы нажали Enter

Проблема в том, что после перезапуска игры значение будет уже по другому адресу. Каждый раз отсеивать его нет никакого смысла. Необходимо прибегнуть к сканированию AOB (Array Of Bytes — массив байтов).

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

После нескольких нажатий на Enter количество жизней изменилось на 55 . Снова найдем нужное значение в памяти и откроем регион, в котором оно находится.

Регион памяти

Выделенный байт и есть начало нашего int32 -числа. 37 00 00 00 — число 55 в десятичной форме.

Я скопирую небольшой регион памяти и вставлю в блокнот для дальнейшего изучения. Теперь перезапустим приложение и снова найдем значение в памяти. Снова скопируем такой же регион памяти и вставим в блокнот. Начнем сравнение. Цель — найти байты рядом с этой сигнатурой, которые не будут меняться.

Начинаем сравнивать байты

Проверим байты перед структурой.

Бинго!

Как видишь, выделенные байты не изменились, значит, можно попробовать использовать их как сигнатуру. Чем меньше сигнатура, тем быстрее пройдет сканирование. Сигнатура 01 00 00 00 явно будет слишком часто встречаться в памяти. Лучше взять 03 00 00 01 00 00 00 . Для начала найдем ее в памяти.

Сигнатура не уникальна

Сигнатура найдена, но она повторяется. Необходима более уникальная последовательность. Попробуем ED 03 00 00 01 00 00 00 .

В подтверждение уникальности получим такой результат:

Сигнатура уникальна

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

Жизненный цикл external

Используя функцию OpenProcess , внешние читы получают дескриптор для нужного процесса и вносят необходимые изменения в код (патчинг) или считывают и изменяют переменные внутри памяти игры. Для модификации памяти используются функции ReadProcessMemory и WriteProcessMemory .

Так как динамическое размещение данных в памяти мешает записать нужные адреса и постоянно к ним обращаться, можно использовать технику поиска AOB. Жизненный цикл external-чита выглядит так:

  1. Найти ID процесса.
  2. Получить дескриптор к этому процессу с нужными правами.
  3. Найти адреса в памяти.
  4. Пропатчить что-то, если нужно.
  5. Отрисовать GUI, если он имеется.
  6. Считывать или изменять память по мере надобности.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.

Как научиться кодить? Писать читы для различных игр?

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

  • Вопрос задан более трёх лет назад
  • 25829 просмотров

6 комментариев

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

Vlad_IT

Давно мечтал написать свой чит для игры CS:GO

Какой вы хороший человек.

Буду очень благодарен,если вы поможете мне!

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

myjcom

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

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

Pavel_Dryndin @Pavel_Dryndin Автор вопроса
Владимир Проскурин, нет,руки у меня некривые,это для себя)
Андрей @poslannikD
Pavel_Dryndin, gamehacklab.ru

советую почитать как работает мозг, начать изучать другие языки как пайтон или C++/C#, паскаль умер лет 20 назад если не больше, в целом идея варится в той среде в которой вы хотите быть, что автоматически повысит уровень знаний, но к сожалению не повысит личные качества. и чтобы что то ломать для начала надо понимать как это работает и на чем это пишут и как например работает память и тд и тп

ElenaIcemen

Ольга Йсмен @ElenaIcemen
на это уйдёт не один год
Решения вопроса 0
Ответы на вопрос 2
Saboteur @saboteur_kiev Куратор тега IT-образование
software engineer

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

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

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

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

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

Ответ написан более трёх лет назад
Комментировать
Нравится 3 Комментировать

tsarevfs

C++ developer

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

Как создать свой собственный чит?

Я бы хотел создать свой собственный чит для какой то игры в данном случае для Warface- но это не важно для какой игры я бы хотел понять суть создание читов! И хочу я создать чит с языком программирования хочу узнать на каком языке надо создавать на каком языке будет лучше Паскаль или C++ или php и. т. д. Хочу еще узнать на каком движке- программе создавать чит? Нужен совет я знаю что для Warface так просто читы не создашь и еще для других игр я понимаю что для это нужно время и терпение но я хочу знать с чего начать! Помогите уважаемые друзья!

Лучший ответ

Напишите сами приложение угадай число на том-же C++ с n попыток и попробуйте на нём свои силы. Сделать бесконечное число попыток своей другой программой. Самое простое. Отключите только отладочную информацию, а то совсем халява.

Решать можно 2 способами. Православный — дизассемблирование и прогон в каком-нибудь отладчике (тут на вкус и цвет. . Когда-то рулил SoftIce, потом вот OllyDbg) и попытка найти тот самый переход, который отвечает за проверку (придется подучить ассемблер) Второй — с помощью ArtMoney (http://www.artmoney.ru/) н-р. Последовательно отсеивая изменения, добраться до изменяемой памяти (где хранится значение счетчика) и узнать кто к ней обращается. Соотв. написать программку патч. или «loader» для этого. Это будет второй шаг. В реале всё будет гораздо сложнее 😉

В реале столкнетесь с шифроваными (в лучшем случае упакованными более-менее стандартными пакерами .exe) файлами, перекрестными проверками ключевых значений (н-р в Quake 3 — лично проверял=), противодейтсвие отладчику и декомпиляторам, лапшой из вызовов функций, в особо жестких ситуациях самодифиц. кодом и «виртуальными машинами» которые созданы самими программистами и со своими командами. Было и такое. Редко правда =)

Остальные ответы

берёшь и учишь с++ ,java,php. Да что угодно, начнёшь писать что нибудь за бабло, и нафиг тебе эти игры нужны будут

это клиент-серверная игра, какое дизассемблирование? для начала надо расшифровать протокол общения с сервером

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

через поверпоинт АХАХАХАХ

Ребят из HEX едитора вытащил _recoil_x _recoil_y _spread _sway _shake остальное не особо нужно. Как из этого сделать чит?

cheat engine! учи lua за неделю выучишь!

На движке? АХАХАХАХАХАХАХАХАХ учи си ++,ну для начала можно и си шарп, потом скачай визуал студио и создавай простенькое что ни будь, потом через месяца 2 научишься делать читы

Артур, ты дурак? Через два месяца? Через два месяца некоторые люди находят где учить C3 или C++..

ребята я уже 2 год играю стратегию дорога славы и вижу как китайцы используют чит на эту игру помогите создать чит а то они уже совсем обноглели атакуют всё время и не дают расти а сами растут как грибы помогите если можете.

Изучить Java script
Хорошо знать язык English (US)
Хороший мозг желательно математический первые просьбы читы трудно создавать смотри видосы

Инструкция:
Изучить C#
Изучить доп. библиотеки
Понять что такое паттерны проектирования
Теперь ты программист
Далее изучить библиотеки для работы с оперативкой
Подумать
Ещё подумать
Сходить попить водички
Опять подумать
Ещё чуть чуть подумать
Поспать
Подумать
Придумать
И написать код
Протестировать
Изи! Теперь вы хакер!

Источник: Личный опыт

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

Что за дичь ты высер ?

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *