Бот программа для игр андроид
Здравствуйте.
Интересует вопрос, как пишут ботов для игр (хоть самых простых) или для программ (у которых есть интерфейс).
Мне интересен сам принцип. Вот как заставить бота по сайтам лазить - это понятно (просто по ссылкам переходит и всё).
А как в приложениях, я вообще не понимаю (неужели просто программа мышку перемещает и щелкает по кнопкам вместо человека?)
p.s. Лучше на python-е.
Заранее спасибо!
Оценить 1 комментарий
ты видел ботов на питоне?
Я не встречал. Если сможете на питоне взаимодействовать напрямую с операционной системой - пожалуйста.
Такие боты всегда взаимодействуют с ОС? И на каких языках тогда можно их писать? (более-менее популярных)
А как вы собираетесь взаимодействовать с другими приложениями, не взаимодействуя с ОС?))
Delphi, C/C++, Assembler
Тут точно можно :)
Честно говоря я сам не знаю чего хочу, но основной мой интерес в написании обычных прикладных приложений для пользователей (ну или сайтов разных).
Определитесь, вам нужно прикладное программирование, или веб-программирование.
Если под веб - php, html, css, js и какую-нибудь базу данных, желательно MySQL
Если прикладное - C++ или Delphi ( не рекомендую, а то большинство тех, кто кодил на делфи первым языком почему-то отрофируются из-за компонент ).
Есть еще системное программирование.
Python + selenium чем не веб-бот?
Что до языков программирования, начали с Python, освойте хорошенько Python, его применение нынче довольно широко и не ограничивается pandas, big data и ML, можно довольно спокойно и успешно писать те же самые прикладные программы. Из скриптовых языков, тот же Ruby не ограничивается рельсами и на нём довольно удобно писать прикладные программы, тем более что его стандартный набор превосходит Python, например Regular Expressions вшиты как стандарт и под них отведён отдельный синтаксис, в то время как в Python необходимо делать импорт.
Набейте руку на языке к которому лежит душа, который приятнее читать и на котором удобнее писать, порешайте задачки на hackerrank, там любую задачу можно выполнить на любом языке, что опять же подтверждает тот факт, что нет смысла сильно задумываться о выборе. Затем освоившись с алгоритмами которые от языка к языку повторяются, набьете руку и поймёте в чём силён ? слаб ваш выбранный язык и, возможно, ваши преференции сместятся к другому языку, который вы с удовольствием освоите.
от себя добавлю что основные методы это
1) простейший понятный способ - поиск нужного элемента на экране и кликание по экрану, или клик по указанным координатам. я в основном использую этот способ, так как вмешательство в игру минимальное - ее не надо ломать, для онлайн игр - меньше шансов получить бан. Подходит для простых игр, в основном те что 2D пошаговые.
Гуглить отправку событий мыши и клавиатуры на выбранном вами ЯП (java robots например).
Минусы - игра должна быть постоянно открыта на экране и иметь фокус (можно решить - запустив игру с ботом в виртуалке).
2) для онлайн игр - изучение протокола обмена данными с сервером. нужно изучать куда отправляются/откуда получаются данные и в каком формате. пишем программу которая эмулирует клиент игры. очень хороший способ - для очень интерактивных игр - максимальная скорость. Способ довольно сложный надо реверсить протокол (гуглить wireshark) и возможно само приложение (гуглить дизассемблирование / декомпиляция). Если игра браузерная - то все может быть проще - запросы и ответы можно смотреть в консоли браузера. Очень перспективный способ - визуальный клиент не обязателен - можно делать армию ботов и размещать на серверах - скорее всего они будут потреблять немного памяти и процессора и возможности впечатляющие.
3) для десткопных игр - патчинг памяти запущенной игры. варианты от простых типа - поменять очки/деньги в игре (artmoney) это в основном для не онлайн игр, и до очень сложных - подменить адрес вызова системной функции - например функции отрисовки directx - то есть меняем адрес вызова на свою функци (недавно была серия статей на эту тему, к сожалению не нашел побыстрому). Либо как разновидность - декомпиляция игры - изменение логики - компиляция (гуглить все что связано с крекерством, создание кейгенов). Для этого варинта требуется довольно высокая квалификация, понимание того как работает игра. Также игры могут иметь защиту от этого.
Кстати понимание того как работают игры/программы - одно из главных в этом деле. Поэтому в первую очередь следует заняться тем чтобы понять как работает конкретная игра, а потом уже думать на каком этапе можно вмешаться в ее логику чтобы достичь нужного эффекта. Изучайте также средства тестирования игр/приложений - с помощью их также можно малой кровью добится хороших результатов.
и да, я часто использую первый способ - многие популярные пошаговые игры оказывается легко решаются тупым кликанием по экрану, но люди все равно в них играют.
Но способ все равно интересный можно дойти до распознования образов на экране (компьютерное зрение). или обойтись более простыми функциями поиска картинки в картинке. я в свое время делал для одной игры простой вариант распознования текста (бот мог читать чат игры - находить нужные групповые события и присоединяться к групповой игре).
чтобы понять этот способ - попробуйте с чего нибудь простого - например напишите бота для сапера.
Какая нафиг декомпиляция игры и последующая компиляция? Ты че, собрался из экзешника рабочие сорцы собрать? Че ты там у ся куришь, или у тебя версия HexRays Decompiler из далекого будущего?
Coderast: разве речь только про exe? есть еще штуки которые можно декомпилить во вполне читаемый код, flash, андроид приложения например.
Что может быть интереснее процесса игры в игры? Правильно! Процесс наблюдения за тем, как играет в игры написанный тобой бот.
Некоторое время, я размышлял, о чём бы написать свою первую статейку. Хотел написать о программировании микроконтроллеров, но оказалось трудно отделить части рабочих проектов от тех, что можно опубликовать без оглядки на коллег. Остановился на идее о ботах.
Введение
Боты для онлайн игр я бы грубо разделил на 3 разновидности по способам реализации:
1. Боты не использующие приложение игры. Имитирующие протокол обмена с сервером.
2. Боты работающие с процессом приложения игры. В случае с Web, работающие с окном браузера.
3. Боты работающие со скриншотом и имитирующие устройства ввода мышь и клавиатуру.
Первая разновидность скорее гипотетическая, т.к. протоколы, как правило, закрыты и не тривиальны.
Первая разновидность больше подходит для ботов с простыми и текстовыми протоколами. Если на сервер передаются бинарные данные, то предстоит разобраться с их структурой, что усложняет задачу.
Вторая разновидность более реальна и может быть реализована. Бот второго вида получает полезную информацию из памяти процесса игры. Недостаток — версии клиентов могут регулярно обновляться и тогда может потребоваться заново искать интересующие адреса памяти.
Мы рассмотрим третюю разновидность ботов, т.к. ИМХО они более привлекательны, хоть и не лишены недостатков.
А так же, такой подход более спортивный :-)
В этой статье я рассмотрю набор инструментов для самого простого бота для Windows.
Для самого простого бота достаточно эмитировать события мыши и клавиатуры. В большинстве случаев этого оказывается достаточно для решения (не самого эффективного, но не требующего участия человека) рутинных дел в различных играх. Для более эффективной работы бота требуется обратная связь с игрой, т.е. получение и обработка скриншотов игры.
Для разработки приложений я буду использовать Qt Creator + Qt 5 либы (так мне привычнее) и раз бот для Виндовс то + windows.h (WinAPI).
Обработка событий нажатия кнопок управления ботом:
Мануал юзера
Перед запуском бота горячей кнопкой Alt-F1, бот следует сначала настроить, определив верные координаты органов управления по которым бот будет кликать.
Для запоминания координат точки наводим указатель месту и жмём Alt-F4.
Для проверки корректности точки отводим указатель в сторону и жмём Alt-F3.
Для настройки следующей точки жмём Alt-F2.
Для сохранения верных координат жмём Alt-F5.
Подводные камни
Опыт показывает, что не стоит торопиться кликать по органам управления и двигать указатель. Часто игры притормаживают, при наведении мыши на кнопку срабатывает отрисовка подсветки и прочие неведанные процессы и торопливость приводит к несрабатыванию клика или захвата при перетягивании и т.п. и как следствие неработоспособность бота. При ручном управлении, люди обычно таких досадных мелочей даже не замечают, так как работает обратная связь через органы зрения. Решение — делать паузы после всех элементарных действий.
P.S. Не подумайте что я ярый противник онлайн игр, раз публикую исходники ботов. Я противник дискриминации ИИ (ботов) и за развитие онного. А ещё, игры — двигатель прогресса.
P.P.S. Говоря ИИ, я подразумеваю программу способную получать и обрабатывать (анализировать) информацию, планировать и выполнять действия в соответствии с целями и результатами анализа ситуации.
Четыре месяца назад у меня появилась идея написать Telegram-бота, который будет запускаться не на внешнем сервере, как большинство ботов, а на мобильном телефоне.
Идея родилась не на пустом месте: я часто пропускал входящие звонки и СМС, когда телефон был в куртке или в кармане, поэтому мне нужен был дополнительный способ уведомлений. А так как я активно использую Telegram на компьютере, то подумал, что было бы не плохо, если бы входящие СМС и пропущенные звонки приходили в Telegram. Немного покопавшись, я решил написать бота.
Разработка прототипа
Я стал изучать тему создания Telegram ботов по официальной документации и по примерам. В основном все примеры были написаны на Python. Поэтому не долго думая, стал искать способы запуска Python сервера на Android. Но оценив время на изучение Python и не найдя ничего подходящего для запуска сервера, занялся поиском альтернатив и наткнулся на несколько библиотек на Java для написания Telegram ботов. В итоге остановился на проекте от Pengrad: java-telegram-bot-api.
Для того, чтобы сервис не убивался системой, когда устройство находится с выключенным экраном, при запуске сервиса, устанавливался WakeLock.
Позже, в целях безопасности, я добавил возможность привязки бота к разрешенным Telegram-аккаунтам и возможность запрета выполнения определенных команд для заданных пользователей.
Добавив несколько команд для бота, такие как: отправка, чтение СМС, просмотр пропущенных звонков, информация о батарее, определение местоположения и др., я опубликовал приложение в Google Play, создал темы на нескольких форумах, стал ждать комментарии и отзывы.
Пуш-нотификации отправлялись с помощью Google Firebase.
Генерация SSL сертификата
После нескольких часов, проведенных в попытках и поисках, получился скрипт, позволяющий сгенерировать нужный сертификат.
После запуска скрипта, на выходе получаем два файла: keystore.jks — используется на сервере, public_cert.pem — используется при установке webhook в Android приложении.
Чтобы установить webhook для бота, необходимо добавить в андроид-приложение следующие строки:
При регистрации webhook, в качестве URL указывается адрес webhook, затем передается пуш-токен, необходимый для отправки пуш-уведомлений и секретный ключ, генерируемый на устройстве, который я добавил для дополнительной проверки входящих уведомлений.
Функция чтения публичного сертификата из RAW ресурса:
Автоматическое создание бота
Добавление новых возможностей
После решения первостепенных проблем с автономностью, я занялся добавлением новых команд.
В итоге были добавлены такие команды как: фото, запись видео, диктофон, скриншот экрана, управление плеером, запуск избранных приложений и т.д. Для удобного запуска команд, добавил Telegram-клавиатуру и разбил команды по категориям.
Заключение
В этой статье я постарался поделиться краткой историей работы над проектом по созданию бота, работающего на Android устройстве и трудностями, с которыми я столкнулся. Сейчас я занимаюсь проектом в свободное от работы время, добавляю новые команды и исправляю возникающие ошибки.
Большое спасибо за внимание. Буду рад услышать от Вас полезные замечания и предложения.
HackerBot - это приложение для поиска игровых читов и патчей. Используйте этот инструмент поиска и находите лучшие трюки для PUBG и других игр
Лучшие уловки для ваших игр и руководства по применению патчей можно найти в HackerBot. Это приложение работает как Cheat Engine для Android и содержит полные и подробные обучалки, позволяющие получить максимальную производительность ваших игр для мобильных устройств, ПК и игровых консолей.
Полная энциклопедия игр и читов
Неважно, играете ли вы на Android или Windows, Xbox, PlayStation или iPhone. В этом приложении есть лучшие приемы для игр независимо от платформы. Это одно из самых известных чит-приложений, предлагающих законную помощь без спама и агрессивной рекламы.
Загрузив АРК-файл, вы сможете пользоваться следующими функциями этой энциклопедии читов:
- Быстрый поиск читов и модифицированных APK.
- Узнайте, как изменять игры, с помощью видео и простых руководств.
- Находите читы, избегая ложной информации, капчи или громоздких рекламных опросов.
- Большой каталог игр: трюки для Subway Surfers, Garena Free Fire, PUBG.
Это одно из самых полезных приложений для модификации игр, оно не только позволяет находить обучающие материалы, чтобы получить дополнительную помощь в играх, но также быстро находить модифицированные APK, инструменты и боты. И все это без необходимости наличия рутированного устройства Android.
Как работает HackerBot?
Работа приложения очень проста и состоит из трех этапов:
- После загрузки и установки APK-файла запустите приложение и на домашней странице выберите Find Cheats или Find Legitimate Cheats.
- В первом варианте вам будет предложена незаконная помощь, а во втором - руководства по трюкам, разрешенным в играх.
- Используйте бесплатную поисковую систему (FreeFinder), чтобы найти моды и руководства по читам.
- Используйте учебные пособия, чтобы перехитрить AI или других игроков.
Приложения началось на теперь уже легендарном веб-сайте с тем же названием, который годами работал в качестве поисковой системы для игр. Его цель состоит в том, чтобы помочь как новичкам добиться первых успехов, так и опытным игрокам, которые просто пытаются найти быстрый способ получить читы для своих любимых игр.
У вас никогда не возникало необходимости в том, чтобы ваш телефон или планшет в определенное время, без вашего участия самостоятельно выполнил какие-либо действия?
Если да, то приложение Android Bot Maker создано именно для вас. Оно умеет записывать ваши жесты, прикосновения к определенным точкам экрана, нажатие на клавиши, текстовый ввод и запускать их в заданное пользователем время.
Программа позволяет создавать различные файлы (макросы) со списками действий, импортировать и экспортировать их, а также запускать их на исполнение по мере необходимости.
Вы можете вводить время задержки между отдельными действиями. Действия в готовом списке событий можно редактировать, добавлять или удалять их.
Приложение умеет работать в фоновом режиме, и вы можете остановить его выполнение в любой момент, кликнув по ярлыку в панели уведомлений (опция меню настроек Show Notifications).
Android Bot Maker работает на любом устройстве с операционной системой Android 4.1 и выше, и что самое ценное в программе – делает всё вышеперечисленное она абсолютно бесплатно (правда, за счет показа рекламы). Единственное ограничение – вам потребуется наличие root прав.
Работать с программой очень просто. После запуска приложения вы сразу же можете начать запись макроса. Нажмите на плюс, чтобы добавить новое действие, выбрав его из списка. Вы можете добавить следующие операции: «Tap» - клик по экрану, «Swipe» - прокрутка экрана, «Key Press» - нажатие кнопки, «Text input» - ввод текста, и «Sleep» - задержка в секундах между операциями.
При редактировании списка вы можете менять строки местами, выбрав любые два действия, нажав на их порядковые номера и нажав на «Switch rows».
После того, как вы записали свой макрос, можете перейти к настройкам приложения, сдвинув его основной экран влево. Здесь вы найдете уже известную опцию показа значка в панели уведомлений «Show Notifications», включение режима запуска с задержкой «Delayed start», и режима работы без гашения экрана устройства «Use Wake Lock».
Программа работает отлично и единственное, чего в ней не хватает – это более простого способа для записи координат точек касания к экрану, просто определяя места касаний, вместо ввода их координат.
Читайте также: