Здравствуйте форумчане. Нужен совет или любая информация, по автоматическим способам обнаружения ботов. Ниже опишу свою историю.
Лет 10 назад, я играл в Двар. Но собирать самому ресурсы и бить монстров мне в какой-то момент наскучило и я написал программу на основе chromium, которая стала делать всё вышеперечисленное за меня.
Программа была написана на делфи. Алгоритм не сложный, если в двух словах то, с помощью BitBlt фоталась локация, на которой произрастали растения или гуляли монстры. Далее в цикле искался нужный пиксель для клика, либо подсчитывалось нужное количество пикселей и затем уже принималось решение, кликать или искать дальше.
Кликалось всё с помощью SetCursorPos и mouse_event
Вдоваль наигравшись я забросил игру лет на 8 и тут планету атаковали "рептелойды" и всех заставили сидеть дома. От скуки я решил заглянуть на минутку в двар и посмотреть жив ли он ещё. Игра оказалась пылесосом по высасыванию денег из игроков, но моя минутка плавно переросла в часы, потом в дни и даже месяцы, за это время я восстановил своего старого бота, и как мне казалось, чтоб уж точно не спалили (прогресс же не стоит на месте), улучшил его с помощью функции random То есть, бот уже не кликал постоянно в одно и тоже место, с фиксировано заданным интервалом.
В таком темпе программа продолжала работать 3 - 4 месяца, а я только заходил и снимал сливки, попутно что-то потихоньку подкручивая и дорабатывая. Уже появились мысли написать совой собственный клиент для неё, со своей музыкой и фишками, просто потому, что мне нравилось больше программировать, нежили играть в это.
Если честно, я даже не думал, что могу получить банан, игра же браузерная, следовательно никакого программного обеспечения в виде античитов, на мой комп не устанавливалось.
Пока писал пост, в голову пришла мысль, а ведь клиент Двара у меня установлен, хотя я его и не запускаю никогда, возможно какой-нибудь кейлогер установился в месте с ним и таким образом собиралась информация: что запущено, есть ли подключение к двару, снимки экрана и т.д.
Программа запускалась на 1 - 12 часов в сутки.
Используемые библиотеки chromium представлялись серверу, как Google Chrome 80.0.3987.163 (WebKit 537.36) - Клиент игры написан на более ранних библиотеках chromium
Версия игры использовала HTML5.
В коде игры присутствует google-analytics через который теоретически можно посмотреть что делает игрок, куда кликает, как двигается мышка (в моём случае, она просто прыгала по нужным координатам), но я считаю, что банан прилетел автоматически, так как я находился возле компа и наблюдал всё это воочию, одновременно со мной было забанено ещё штук 5 - 10 игроков точно с такой же формулировкой(за использование сторонних программ), длилось это 1 - 2 минуты, потом баны прекратились.
Мои мысли за что могло зацепиться ПО, которое выписало мне бананчик:
1) Версия браузера Chrome 80.0.... отличалась от версии клиента игры, если бы я играл через обычный гугл хром, то версия бы постоянно обновлялась 2) Я поверхностно знаю HTML5 и не владею информацией о всех его возможностях, поэтому не исключаю вариант, что защитное ПО работало через какие-то фишки этой спецификации. 3) Защитное ПО работало через яваскрипт, к примеру написана какая-то нейросеть, которая через google-analytics, анализирует действия игрока и на основании этого делает выводы человек это или бот.
4) Ну и четвёртый вариант, менее правдоподобный как мне кажется, это кейлогер, из-за установленного на компе, дваровского клиента.
Если есть у кого-нибудь мысли или может ссылка на какую-нибудь информацию, с радостью ознакомлюсь.
На саму игру и персонажа, в которого я когда-то вложил не мало энергии, времени и даже денег, мне вообще пофиг,я вырос из этого, мне интересен сам механизм и причины, которые привели к банану.
Ну тут можно только гадать, кей логер сразу отметается. Тут не ясен вопрос можно ли в эту игру играть через обычный браузер или только через их самопальный клиент?
Ну а остальное все в принципе возможно, гугл аналитика она полностью записывает все действия на сайте и потом можно посмотреть как человек двигал курсором, так же эти данные можно на стороне сервера проанализировать, я не знаю как у тебя реализовано передвижение мышкой, обычный человек перемещает курсор мыши из точки А в точку Б плавным передвижением курсора, если у тебя курсор из точки А в точку Б перемещается мгновенно с помощью телепортации то такое коне что же можно отследить как на стороне сервера, так и ява скриптами на стороне клиента. Ну а судя про тому что ты используешь SetCursorPos то так и происходит, курсор из точки А исчез и в точке Б появился = палево.
Опять же запуск параллельно несколько ботов одновременно с одного айпи = палево. Ну и так далее способов задетектить бота вагон и меленькая тележка, и сидеть гадать нет никакого смысла. Тут либо реверсить игру, код, скрипты и разбираться как они палят. Либо методом тыка пробовать разные варианты разные методы управления игрой и смотреть будут банить или нет.
Тут не ясен вопрос можно ли в эту игру играть через обычный браузер или только через их самопальный клиент?
Да, играть можно с любого браузера
Цитата:
Сообщение от Тигрь
способов задетектить бота вагон и меленькая тележка, и сидеть гадать нет никакого смысла.
Я гадать и не хочу, мне интересны любые способы анализа и обнаружения. Так сказать, для общего развития. Технологии развиваются и я вижу, что "на хромой кобыле, к играм уже не подкатишь" Надо быть более изобретательным, осторожным и подкованном в этом плане.
Цитата:
Сообщение от Тигрь
Тут либо реверсить игру, код, скрипты и разбираться как они палят. Либо методом тыка пробовать разные варианты разные методы управления игрой и смотреть будут банить или нет.
Благодарю за ответ! Теперь у меня появилась пища, для размышления.
Если честно, я даже не думал, что могу получить банан, игра же браузерная, следовательно никакого программного обеспечения в виде античитов, на мой комп не устанавливалось.
Пока писал пост, в голову пришла мысль, а ведь клиент Двара у меня установлен, хотя я его и не запускаю никогда, возможно какой-нибудь кейлогер установился в месте с ним и таким образом собиралась информация: что запущено, есть ли подключение к двару, снимки экрана и т.д.
Ну вот, ты клиент устанавливал, с ним мог быть установлен сервис или компонент браузерный, который параллельно передаёт инфу о том, что происходит. Виртуальный клик от реального отличить не сложно.
Это в общем-то можно легко проверить. Зарегай новый акк под впн, под ней же начни играть, для чистоты экперимента с другого браузера. Пофарми просто минут 20 своим кликером. Затем подожди пару дней (или через сколько у вас там прилетают баны?).
Если забанят, значит железобетонно палят или твою софтину, или виртуальные клики.
Если не забанят, то вероятнее палят конкретный алгоритм поведения (кликаешь то ты по разным смещениям, но в одни и те же места в одном и том же порядке). Может быть даже длительность. Ну понятно, что человек не сможет кликать одно и то же по 24 часа в сутки пол-года. Короче, второй вариант - это косвенные признаки.
Я не оказываю услуги гаранта!
База данных кидал: blacklist.rf-cheats.ru
Обязательно проверяйте человека через чёрный список прежде чем совершать с ним сделку.
Это в общем-то можно легко проверить. Зарегай новый акк под впн, под ней же начни играть, для чистоты экперимента с другого браузера. Пофарми просто минут 20 своим кликером. Затем подожди пару дней (или через сколько у вас там прилетают баны?).
Если забанят, значит железобетонно палят или твою софтину, или виртуальные клики.
Если не забанят, то вероятнее палят конкретный алгоритм поведения (кликаешь то ты по разным смещениям, но в одни и те же места в одном и том же порядке).
Очень хороший совет, сам бы я долго до этого додумывался. Благодарю!
Благодарю за ответ! Теперь у меня появилась пища, для размышления.
И ещё) я самое главное упустил.
Почитай:
Фронтенд знает о перемещениях курсора. Если ты его программно не двигаешь, а просто кликаешь - это палево №1. Я кстати ставлю именно на это.
Палево №2. Посмотри карту кликов на нашем форуме:
Видишь сколько кликов в пустоту? Кликал бы твой бот, этого бы не было. Были бы чёткие клики только туда, куда нужно. Такого не бывает в реале. Вот тебе второй признак, по которому можно палить кликеры.
№3. Рандом то у тебя только с плюсом? Тогда и область кликов у тебя будет с прямым углом. Это ваще писец палево, достаточно просто посмотреть карту твоих кликов.
Я не оказываю услуги гаранта!
База данных кидал: blacklist.rf-cheats.ru
Обязательно проверяйте человека через чёрный список прежде чем совершать с ним сделку.
Таки да, нужен рандом не только в интервалах действий но и в точках клика и последовательностях действий и перерывов между ними.
Так же условно фарм по 8-12 или вообще 24 часа подряд палево, одмены браузерок могут банить просто по наитию, типа чел безотрывно фармил подряд 6 часов, ну и "весьма вероятно" (с) что не сам. Чел его забанил потому что потому.
Короче бот должен симулировать поведение обычного человека который отвлекается от игры, подтупливает в ней кликая абы куда ХЗ зачем, ходить попить, есть, срать, курить и так далее.
Меня лет за 10 не в одной браузерке не забанили. :)
lolz i dont remember i ever said pidaras in normal chat
И ещё) я самое главное упустил.
№3. Рандом то у тебя только с плюсом? Тогда и область кликов у тебя будет с прямым углом. Это ваще писец палево, достаточно просто посмотреть карту твоих кликов.
Да, только с плюсом. Я брал условно верхнюю левую точку на кнопке и от неё шел рандом, теперь буду брать точку в середине и от неё уже плясать с плюсом и минусом. Тоже почему-то не додумался до этого сам =)
Но это клики по кнопкам только с плюсом. А по локации клики бот вычислял сам, так-как ресурсы появлялись в случайных местах и монстры тоже передвигались рандомно.
Добавлено через 16 минут
Цитата:
Сообщение от DungeonKeeper
Короче бот должен симулировать поведение обычного человека который отвлекается от игры, подтупливает в ней кликая абы куда ХЗ зачем, ходить попить, есть, срать, курить и так далее.
Да, всё кроется на самом деле в мелочах, которые я упускал из вида и не предавал им значение. Буду придумывать более сложные алгоритмы поведения.
Последний раз редактировалось tubux; 02.02.2021 в 13:22.
Причина: Добавлено сообщение