Содержание статьи
- Настраиваем эмулятор
- Ставим AssaultCube
- Перенаправляем трафик на локальный сервер
- Рутуем устройство
- Перенаправляем трафик через Burp Suite
- Пишем чит
- Ищем значения
- Frida — тулкит для динамической инструментации
- Отключаем урон
- Проверяем
- Выводы
Сегодня мы с тобой напишем чит для шутера AssaultCube на Android. Но сначала заставим игру работать и в процессе изучим приемы декомпиляции и сборки APK, а также перенаправления трафика и подделки игрового сервера. Другие статьи цикла
- Чит своими руками. Вскрываем компьютерную игру и пишем трейнер на C++
- Чит своими руками. Смотрим сквозь стены и делаем автоприцеливание для 3D-шутера
- Чит своими руками. Обходим простой античит и исследуем игру на Unity
Использование читов нарушает пользовательское соглашение игры, что может повлечь юридическое преследование. Мы обсуждаем здесь создание чита исключительно в целях обучения. Автор и редакция не несут ответственности за возможные последствия применения и распространения такого ПО.
Давай для начала пробежимся по теории. Программы и игры для 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. Устанавливаем и запускаем. Теперь создаем экземпляр устройства:
Создание виртуальных устройств
Ставим 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, запустим ее и войдем в меню сетевой игры. Ничего не происходит? Я тоже столкнулся с этой проблемой, но потом нашел режим разработки.
Переключение в режим разработки
В нем проблема сразу видна: мы не можем подключиться к игровому серверу.
Неудачное подключение
Перенаправляем трафик на локальный сервер
Видимо, игровые серверы мертвы. Но мы можем перенаправить подключение на локальный сервер. Настройку и запуск сервера я описывал во второй статье серии «Чит своими руками».
Перенаправление трафика