Меню Рубрики

Как написать программу для взлома игр

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

Содержание статьи

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

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

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

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

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

Network proxy — читы, которые используют сетевые прокси, те, в свою очередь, перехватывают трафик клиента и сервера, получая или изменяя необходимую информацию.

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

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

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

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

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

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

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

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

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

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

Первым делом мы получаем список всех значений 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, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Источник статьи: http://xakep.ru/2019/04/11/games-hacking/

Топ 10 программ для взлома игр на Андроид

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

Как взломать игру

ощь специальных программ (приложений), которые бывают двух видов:

  1. Первый вид позволяет совершать в играх бесплатные покупки. Это самый простой способ, так как не требует от вас никаких сложных действий. Происходит такой взлом с помощью приложения, которое может обходить проверку лицензии Плей Маркета и подменять данные при оплате внутри игры.
  2. Второй вид изменяет количество игровой валюты. Этот вид взлома более сложный, так как вам придётся вручную находить и менять необходимые числовые значения. Но когда вы научитесь и поймёте процесс, то сможете взламывать любые игры за несколько минут.

Большинство программ для взлома игр работают при наличии Root прав на устройстве, что это такое и как получить рут права описано в статье Топ 10 программ для получения Рут прав .

Также стоит отметить, что на андроиде взломать можно только оффлайн игры (не требующие доступ в интернет) и практически невозможно взломать онлайн-игры, такие как Clash of clans, Game of war, Boom beach и так далее. Связано это с тем, что все программы для взлома совершают подмену данных внутри самого устройства, а онлайн игры хранят данные на сервере, а не в устройстве. Если даже вам и удастся взломать online игру, то скорее всего после соединения с сервером данные восстановятся к предыдущим значениям или вы просто получите бан.

Приложение для взлома игр без root прав, с помощью которого можно совершать бесплатные покупки. На данный момент Крихак поддерживает около 100 игр, в их числе и Shadow Fight 2 (v1.7.0). Но имейте в виду, что программа не обновляется уже давно и разработчик объявил о прекращении поддержки, поэтому для взлома новых игр КриХак может не подойти.

  1. Отключите Гугл Плей и сервисы Google в настройках, нажатием на «Остановить процесс».
  2. Затем отключите интернет или Wi-Fi.
  3. Далее запускаем Крихак и сворачиваем или нажимаем кнопку «On» для активации взлома (в некоторых версиях активация происходит при запуске).
  4. Заходим в приложение и совершаем любую покупку в магазине, если видите надпись — взлом сработал, то соответственно Creehack сработал.

Достаточно мощное приложение для редактирования и взлома APK файлов. Позволяет изменять содержимое АПК: строки локализации, заменять изображения фона, макет архитектуры, и даже удалять рекламу. В Плей Маркете доступно две версии Apk Editor — платная Pro версия и бесплатная.

Взлом игр с рут правами

В отличие от предыдущего раздела, в этом собраны более мощные программы, для работы которых вам понадобятся рут права.

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

  1. Устанавливаете и запускаете Freedom.
  2. Нажмите кнопку СТАРТ в настройках.
  3. Затем открываете любую игру и совершаете покупки.
  4. Обратите внимание, что при покупке должно открыться небольшое окно с информацией о вашем аккаунте, а под аккаунтом должна быть карта с названием: FreeCard xxx-… — вместо вашей настоящей карты.
  5. После запуска Фридом может временно перестать работать Google Play, пока вы не нажмете кнопку СТОП в настройках. При попытке зайти в Плей Маркет будет появляться надпись «Нет подключения». Перед тем как удалить приложения, необходимо так же нажать копку СТОП.

Одна из самых популярных программ для взлома игр на числовые значения (монеты, золото, кристаллы и т.д.). Гейм Киллер работает практически со всеми популярными играми, конечно кроме онлайн.

  1. Устанавливаем и запускаем GameKiller, затем сворачиваете его.
  2. Заходим в игру, которую надо взломать.
  3. Открываете гейм киллер, нажатием на значок ключа в углу, выбираете, что хотите взломать, к примеру монетки: для этого в строке поиска программы введите текущее количество монеток.
  4. Теперь измените количество, для этого в приложении нужно совершить какое-то действие, например купить что-то (любым способом, главное, чтобы количество не было = 0).
  5. Затем опять запускаем поиск в game killer по измененному значению (к примеру, у вас было 100 монет, 20 потратили — ищем 80).
  6. Как правило, программа выдаст вам 1-2 результата, если все так и вышло — меняем их на нужные (например 9999999).
  7. Если прога выдала намного больше результатов, то вам нужно будет повторить шаги 4 и 5.

Видео инструкция взлома игры с помощью GameKiller.

Изменяет значения игровой валюты, аналог Game killer, поэтому инструкция такая же.

  1. Скачиваем и запускаем GameCIH, затем сворачиваете его.
  2. Запускаем игру, которую хотите взломать.
  3. Открываете Гейм Цих, выбираете что именно, хотите взломать, к примеру кристаллы, для этого в поиск программы напишите текущее количество кристаллов.
  4. Теперь измените это число, для этого вам необходимо совершить любое действие в игре, например купить что-то (главное, чтобы число получилось больше нуля).
  5. Затем опять включаем поиск в GameCIH по отредактированному значению (к примеру, у вас было 150 монет, 50 потратили – ищем 100)
  6. Обычно прога выдаёт 2-3 результата, если так и получилось, то меняем эти цифры на свои (например 9999999999).
  7. Если результатов больше, то повторяем шаги 4-5.

Универсальное приложение для упрощения процесса в онлайн играх, путём их модифицирования. Популярность XModGames получил в основном из-за игр Клеш оф Кленс и Бум Бич, установив плагин вы сможете настроить поиск противника с желаемым количеством ресурсов, а также активировать функцию «всегда онлайн». Приложение XMod постоянно обновляется и в него добавляются новые моды.

Патчер приложений Андроид, с функциями вырезки рекламы и проверки лицензии. Лаки Патчер может сканировать и вносить патчи, для изменения и расширения их функционала в ваши игры или приложения. Так же Lucky Patcher имеет функцию удаления проверки лицензии, что позволяет запускать «пиратские» версии приложений, игнорируя ограничения и алгоритмы защиты. Недавно в патчере появилась возможность замены оригинального Google Play Market’a на взломанный маркет.

  1. Совершение бесплатных покупок в играх.
  2. Удаление проверки лицензии.
  3. Отключение рекламы.
  4. Сохранение APK файлов из установленных приложений.
  5. Внедрение патчей в приложения и систему.
  6. Создание копий APK с внесенными изменениями.
  7. Клонировать приложения (для одновременного запуска двух копий).

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

Ещё один взломщик игр, от китайского разработчика, который взламывает любые численные значения или опыт. Приложение Game Hacker, так же является аналогом предыдущих, поэтому принцип взлома такой же — играете, получаете монеты, потом ищите это значение через гейм хакер и изменяете его на необходимое.

С помощью этой программы можно изменять практически любые параметры игры, такие как количество монет, кристаллов или характеристики персонажа. Многим пользователям знакомо название Cheat Engine, благодаря которой раньше взламывались игры на ПК. Версия для смартфонов также обладает хорошим набором функций, способным конкурировать с большинством аналогов. Приложение ломает практически любые игрушки, установленные на вашем устройстве Андроид.

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

Источник статьи: http://zen.yandex.ru/media/id/5eaf3f0ce8a68f77a909fe05/top-10-programm-dlia-vzloma-igr-na-android-5edfb2bc39ba615980b709e2

FAQ для начинающих кракеров. Взлом программ.

Материал для статьи
был взят с сайта http://cr0ck.da.ru
за что ему огромная благодарность.Все копирайты
принадлежат cr0ck`у

>Q:Какими
программками посоветуешь пользоваться?

A:Отладчики:
DOS: Soft-Ice, DeGlucker, CUP /d, TD(только для
начинающих),386(тоже),
Еще есть: AFDPro, GameTools, AxeHack, но это только для
частных случаев.
WIN: Soft-Ice, TD , встроенный в WDASM32 отладчик
Вьюеры/редакторы:
DOS/WIN: HiEW, BIEW, QVIEW
WIN:WDASM32
И самая рульная вещь — IDA. Это наикрутейший
дизасемблер со многими фичами и отлично
продуманной идеологией.
Унпакеры:
DOS:unp, cup386, unpack
WIN:procdump

>Q: Хм! Думаешь мне что нибудь говорят слова
`отладчик’, `унпакер’, `дизасемблер’.

A: Хм! Очень плохо 🙁
_Отладчики_(они же дебагеры) были придуманы для
поиска ошибок в программах.Но вскоре были
приспособлены хакерами для своих нужд. А вскоре
появились специальный хакерские
отладчики.Отладчики посволяют пройти программу
по шагам, останавливаться толко в определенных
местах программы и т.д. При этом хакер полностью
контролирует трассируемую(так называется
выполнение по шагам) программу. _Унпакеры_.
Производители программ часто упаковывают свои
программы(чтобы они занимали меньше места) или
криптуют(зашифровывают) их (чтобы хакеры или
конкуренты не могли взломать/посмотреть ее).
Первое и второе усложняет взлом. Чтобы
избавиться от проблем хорошие люди делают
унпакеры/ункрипторы, которые позволяют
распаковать/раскриптовать эти программы.
_Дизасемблер_ позволяет из исполняемого файла (com,
exe, . ) получить листинг этой программы на языке
ассемблера. Ассемблер это эквивалент машинного
кода, только записаный более-менее понятными
словами и обозначениями.

>Q:Что мне нужно знать для того чтобы стать
хакером?

A:Просто знать что-то конечно недостаточно, но вот
несколько советов:
Во-первых не обойтись без знания ассемблера.
Учить его можно по-разному. Сначала нужно
почитать книжки или доки по ассемблеру, вникнуть
в устройство компьютера (прерывания,организация
памяти,ввод/вывод на уровне портов). Неплохо
написать
несколько небольших программ на асме или хотя бы
посмотреть как это делают другие. Хорошо бы
выучить какой-нить язык высокого уровня. Лично
мне кажется что для
этого идеально подходит С. Ведь С некоторые даже
называют языком среднего уровня, т.к. он наиболее
близок к ассемблеру и одновременно обладает
огромной мощью.
Потом начинайте ломать всякие кракмисы. Они ведь
для этого и сделаны 😉 Переходите
к взлому программ. Вначале посмотрите примеры, а
затем ломайте сами. Учитесь пользоваться
различными программами. Например, IDA очень трудно
освоить одним наскоком, но сколько возможностей
она дает! Soft-Ice тоже имеет много фич которые вы
можете никогда и не узнать, но при их применении
жизнь может сильно облегчиться.

>Q:Полного знания паскаля хватит, чтобы
заниматься хакингом?

A: Повторюсь что ты должны знать в первую очередь
асм. Конечно, если ты знаешь паскаль очень хорошо,
то тебе его надолго хватит одного. Но в идеале
нужно знать _несколько_ языков.
Например: ASM, C, C++,PAS, Perl и т.д.

>Q:Вот ты говоришь что IDA крутая вешь? А для чего я
ее могу применять? Ясно конечно что для
дизасемблирования, но ты говорил про всякие
крутые фичи.

A: Самое простое: поиск ссылок на строки
регистрации. Например, программа пишет тебе на
экран «Unregistered». Ты ищещь эту строку в
программе, а затем ссылки на нее. Т.е. определяешь
в каких местах программы идет обращение к этой
строке. А где-то рядом будет проверка
пароля/рег.номера. Еще такая замечательная вещь.
IDA использует технологию FLIRT. При помощи нее можно
обнаруживать в программах
вызовы функций стандартных библиотек и вместо call
12345678h
ты увидишь: call _strcpy
А что делает strcpy ты уже должен знать 😉 Еще в IDA
есть встроенный язык, очень похожий на С. С
помощью него можно вытворять с программой что
угодно: например, расшифровать зашифрованную
часть программы.

>Q:Что такое Soft-Ice и как этой прогой
пользоваться?

A:Как было сказано вначале это отладчик. Кстати,
очень крутой отладчик. По фичности он опережает
всех. А насчет пользования, то софт-айз имеет кучу
команд, и нужно знать что какая из них делает. Об
этом можно прочитать в различных ФАКах о
софтайзе.

>Q:А если нету у меня такого ФАКа? Что делать?

A:Искать! Может быть в следующей версии этого ФАКа
я добавлю команды софтайза, но пока придется
довольствоваться командой `H’. Без
параметров она выдает список всех команд с
кратким описанием, а если в качестве параметра
указать название какой-нить команды софтайза, то
получишь немного более подробную справку.

>Q:Я уже приготовился ломать, но понял что не
знаю как запускать софтайз 🙁

A:Кстати если я теперь говорю про софтайз, то я
имею ввиду виндовую версию. Софтайз запускается
из режима эмуляции ДОСа по виндами. Нужно просто
запустить файл winice.exe. Когда загрузятся винды
запускаете Symbol Loader. А в нем в File->Open. Выбираете
ломаемую прогу и Module->Load.

>Q: Все о каких-то бряках говорят. Что это?

A: Бряк, брякпоинт, брекпоинт, breakpoint — точка
останова. Отладчики позволяют поставить бряк в
каком-нить месте программы и запустить ее. Когда
программа дойдет до этого места — она
остановиться и ты окажешься в дебагере, а там
делай чего хочешь.

>Q: Один мой друг хвастался что все программы
битхаком каким-то ломает. Что это такое?

A: Битхак (bithack) — это метод взлома при котором в
программе меняются несколько бит или байт.
Например если известно что по такому-то адресу
происходит переход, если программа не
зарегестрирована, то можно команду перехода,
которая находится по
этому адресу, заменить, например, на команду NOP.
Если ты не знаешь что это за команда, то серьезнее
отнесись к изучению асма 😉

>Q: Ясно. А что такое метод Бруте Форсе?

A: Во-первых пишется с маленькой буквы — бруте
форсе(brute force) ;)) А во вторых дословно переводиться
как метод `грубой силы’, т.е., например, простой
перебор всех возможных паролей.

>Q:Почему софтайз не дает поставить брякпоинт на
некоторые функции, например на GetDlgItemTextA?

A:Все функции храняться в библиотеках. Например
GetDlgItemTextA находится в USER32.DLL К тому же функции
грузятся в память по определенным адресам. И
брякпоинты ставятся не на функции а на адреса
соответсвующие им. А что бы софтайз знал где — что,
нужно экспортировать в софтайз нужные
библиотеки. Делается это в winice.dat

Обычно эти строки уже есть, но закомментированы и
нужно просто убрать `;’

>Q:Все сделал, загрузил. Теперь хочу начать
ломать программу. Она спрашивает
регистрационный номер(РН). Что делать?

A:Нужно отыскать место где сравнивается
введенный номер с нужным и подправить его
чуть-чуть

A: Можно несколькими путями.
1. Отлавливаем место где вводится РН. Затем
трассируем по шагам пока не найдем сравнение.
Здесь обчно делают так bpx GetDlgItemTextA ставят бряк на
функцию, при помощи которой обычно считывается
строка из окна ввода. Можно ставить бряки на
другие функции GetDlgItem*, GetWindowText*, hmemcpy. Хочу
обратить внимание на последнюю. Она просто
выполняет копирование участка памяти, но она
применяется поголовно всеми функциями ввода
данных. Поэтому бряк можно ставить и на нее. Но
нужно помнить, что она может вызывается и при
простом копировании данных, поэтому бряк на нее
нужно ставить только перед нажатием кнопки `OK’.
Ввод РН можно отловить и так: Ввели РН. И не
нажимая ОК жмете Ctrl+D. Теперь вы в софт ксора к
данным дает исходные данные.

Источник статьи: http://xakep.ru/2000/07/03/10063/


0 0 голоса
Article Rating
Подписаться
Уведомить о
guest

0 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии