Чит своими руками. Меняем любые параметры в игре для Android

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

  • Настраиваем эмулятор
  • Ставим AssaultCube
  • Перенаправляем трафик на локальный сервер
  • Рутуем устройство
  • Перенаправляем трафик через Burp Suite
  • Пишем чит
  • Ищем значения
  • Frida — тулкит для динамической инструментации
  • Отключаем урон
  • Проверяем
  • Выводы

Се­год­ня мы с тобой напишем чит для шутера AssaultCube на Android. Но сна­чала зас­тавим игру работать и в про­цес­се изу­чим при­емы деком­пиляции и сбор­ки APK, а так­же перенап­равле­ния тра­фика и под­делки игро­вого сер­вера. Другие статьи цикла

  • Чит сво­ими руками. Вскры­ваем компь­ютер­ную игру и пишем трей­нер на C++
  • Чит сво­ими руками. Смот­рим сквозь сте­ны и дела­ем автопри­цели­вание для 3D-шутера
  • Чит сво­ими руками. Обхо­дим прос­той анти­чит и иссле­дуем игру на Unity

warning

Ис­поль­зование читов наруша­ет поль­зователь­ское сог­лашение игры, что может пов­лечь юри­дичес­кое прес­ледова­ние. Мы обсужда­ем здесь соз­дание чита исклю­читель­но в целях обу­чения. Автор и редак­ция не несут ответс­твен­ности за воз­можные пос­ледс­твия при­мене­ния и рас­простра­нения такого ПО.

Да­вай для начала про­бежим­ся по теории. Прог­раммы и игры для Android обыч­но пишут с при­мене­нием сле­дующих язы­ков прог­рамми­рова­ния и тех­нологий:

  • Java — тра­дици­онный и самый рас­простра­нен­ный вари­ант. Код ком­пилиру­ется в байт‑код Java, затем в DEX для Dalvik/ART;
  • Kotlin — сов­ремен­ный язык от JetBrains, офи­циаль­но под­держи­вает­ся Google с 2017 года. Сов­местим с Java, более лаконич­ный и безопас­ный;
  • C/C++ — исполь­зуют­ся через Android NDK (Native Development Kit) для высокоп­роиз­водитель­ных модулей, игр, биб­лиотек;
  • Dart (Flutter) — кросс‑плат­формен­ный фрей­мворк от Google;
  • JavaScript/TypeScript — час­то исполь­зуют­ся через React Native, Cordova;
  • C# — мож­но исполь­зовать через Xamarin.

Ре­зуль­тат ком­пиляции Android-при­ложе­ния — это файл с рас­ширени­ем .apk (Android Package). APK — это ZIP-архив, содер­жащий сле­дующие ком­понен­ты:

  • AndroidManifest.xml — манифест при­ложе­ния, вклю­чает опи­сание ком­понен­тов, раз­решений, точек вхо­да;
  • classes.dex — ском­пилиро­ван­ный байт‑код Dalvik/ART (основной код при­ложе­ния);
  • resources.arsc — ском­пилиро­ван­ные ресур­сы (стро­ки, сти­ли, атри­буты);
  • res/ — про­чие ресур­сы (изоб­ражения, layout XML и дру­гое);
  • META-INF/ — метадан­ные, под­писи APK;
  • assets/ — про­изволь­ные фай­лы, дос­тупные при­ложе­нию в ран­тай­ме;
  • lib/ — натив­ные биб­лиоте­ки (соот­ветс­тву­ют архи­тек­турам: armeabi-v7a, arm64-v8a и так далее).

Струк­тура фай­ла 

Настраиваем эмулятор

Все дей­ствия будем про­водить в эму­лято­ре, а не на реаль­ном устрой­стве, что­бы его слу­чай­но не окир­пичить. Из всех эму­лято­ров мой выбор пал на AVD, который пос­тавля­ется вмес­те с Android Studio. Уста­нав­лива­ем и запус­каем. Теперь соз­даем экзем­пляр устрой­ства:

  • От­кры­ваем Virtual Device Manager.
  • Ви­дим, что уже есть готовое устрой­ство, и дуб­лиру­ем его.
  • Убе­дим­ся, что у устрой­ств выб­ран сер­вис Google Play Store.
  • За­пус­тим и про­верим, что все у нас работа­ет.
  • Соз­дание вир­туаль­ных устрой­ств 

    Ставим AssaultCube

    Для начала заг­рузим игру AssaultCube, на которой мы будем упражнять­ся. Ее нуж­но уста­новить на оба устрой­ства. Для это­го откры­ваем коман­дную стро­ку и перехо­дим вот в этот каталог (там хра­нят­ся все ути­литы):

    %LOCALAPPDATA%AndroidSdkplatform-tools

    Вы­пол­няем коман­ду adb devices, что­бы прос­мотреть спи­сок дос­тупных эму­лято­ров. Они будут пред­став­лены в фор­мате <name>-<port> <type>, нап­ример emulator-5554 device.

    Те­перь уста­новим наш APK:

    adb -s emulator-5554 install myapp.apk

    Как вари­ант, мож­но прос­то перета­щить APK на эму­лятор и под­твер­дить уста­нов­ку.

    Ус­танов­ка APK-фай­ла

    В какой‑то момент тебе может понадо­бить­ся уда­лить APK. Сде­лать это мож­но вот как. Сна­чала смот­рим спи­сок уста­нов­ленных пакетов:

    adb -s emulator-5554 shell pm list packages | sort

    За­тем уда­ляем ненуж­ный:

    adb -s <device-serial> shell pm uninstall <app-package-name>

    Нап­ример:

    adb -s emulator-5554 shell pm uninstall net.cubers.assaultcube

    Уда­ление фай­ла APK

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

    Пе­рек­лючение в режим раз­работ­ки

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

    Не­удач­ное под­клю­чение 

    Перенаправляем трафик на локальный сервер

    Ви­димо, игро­вые сер­веры мер­твы. Но мы можем перенап­равить под­клю­чение на локаль­ный сер­вер. Нас­трой­ку и запуск сер­вера я опи­сывал во вто­рой статье серии «Чит сво­ими руками».

    Пе­ренап­равле­ние тра­фика

    Источник: xakep.ru

    Ответить

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