Как я стал ботоводом. Часть 2
Кроме делфи и бейсика я не знал никаких других языков. Поэтому срочно начал искать как работают браузеры.
Оказалось, что вся игра построена на html. А протокол обмена HTTP. Сейчас смотрю на эту игру и удивляюсь разрабам. Никакой защиты - строй боты, не хочу.
Объясняю для несведущих: отправка и получение данных по протоколу HTTP - открыты для просмотра, вдобавок данные сайта не шифруются при передачи никоим образом (еще раз респект разрабам игры)
Вот такой нехитрый скрипт позволяет делать все действия на сайте (пример для входа)
function Go(Val1,Val2,Val3) {
var obj=document.myfrm
obj.val1.value=Val1
obj.val2.value=Val2
obj.val3.value=Val3
obj.submit()
}
<input type='hidden' name='login_user' id="val1">
<input type='hidden' name='login_pass' id="val2">
<input type='hidden' name='login_world' id="val3">
<body onload="Go('webpauk_old','1491625364964',1,)">
Сохранив в обычный txt файл и потом переименовав расширение на html - запускаем в браузере и получаем ответ:
{"status":true,"errors":{"universe":false,"username":false,"password":false,"misc":false},"url":"http:\/\/50.game.nemexia.ru\/auth.php?q=dD0xJnc9MSZ2PXJ1Jm49MTQ1ODgwNTk0Ny42ODk3MSZwPTc4MzYmbT0zNTQz%0AODY2MCZzaWc9TXVSSFJsSDY5Z213aHZwaFNXcFVvZ3J5YUlIaUhTOG5ka0Vs%0AYllzJTJGb21VJTNE"}
Ребята даже не заморачивались отджейсонить данные. Обычная текс-строка. Распарсив строку - получаю данные для следующих действий.
Всего за время моего ботоводства я переписал бота 3 раза.
Первая версия строилась только для одного аккаунта, данные хранились локально в папке экзешника. Чтобы запустить другой аккаунт нужно было брать данные из другой папки.
Вторая версия была мультиаккаунтой, но данные опять же хранились в папке на компе. Это создавало неудобство при подключении с работы и из дома. Нужно было пересылать данные для синхронизации.
Третья версия родилась после моего ознакомления с mysql, php и иже с ними. Данные хранились на хостинге, клиент запускался из любого места, уже синхронизированный.
Хотел сделать четвертую версию. Полность сетевую. Но гребаные кроссбраузерные запреты (и моё полное ламерство на тот момент) не дали перешагнуть через этот трабл.
На делфи же все просто. Поставил IE компонент, поставил UDP на прослушку определенного порта. Слушаешь ответы и фигачишь дальше.
Вот так выглядит main форма бота
Бот обрастал функциями, как грибами.
Изначально был только фарм.
Потом я открыл аукцион по продаже ресов. Оказалось, что можно сливать ресы с фейк-аккаунтов за полцены. Т.е. менять 100 металла за 50 газа, потом 50 газа за 25 металла и т.д. пока не обнулишь фейк-аккаунт в ноль.
Тут я развернулся. Бот на скупке обновлял страницу аукциона пару раз в секунду, искал такие сделки. Profit! Вой стоял дикий: верни мои ресы, козёл - это самое мягкое...
Потом я открыл биржу по продаже кораблей. автоскупка нужных кораблей вызвала повторный вой. Как ты не быстр при продаже (на одном акке выставить, на другом купить) на всё про всё уходит 2-3 секунды. Бот ловит это за 0,5 сек. Куда человеку против машины!
Когда-то я купил ноут (2006). И он до сих пор работает у меня 24/7. Выключаю только когда еду на море )
Бот работал круглыми сутками, за весь клан. Если обычный игрок в день получал ресурсов на пару лямов, мы гребли по лярду-полтора. Клан стремительно пошел вверх, ибо ресов хоть жопой жуй. Время уходило только на прокачку.
Мы стали ТОП-1 по ресурсам.
По боевым очкам всё было не так хорошо. Нужно было согласовывать атаки, что боту уже не под силу... Но мы не сильно стремились стать и там ТОП-1.
Нас устраивало и то, что нас не трогают.
А вот мы трогали. Зачастую от скуки. Выпилишь ночью кому-нибудь планки, выкачаешь ресы - и понеслось... Клан противника наезжает на нас, мы защищаемся, и сливаем все атаки противника.
Помню на меня кто-то запустил 15 атак одновременно. как правило 1-3 атака сносит все корабли на планке, остальные атаки забирают ресы, сносят здания и т.п.
Но была одна фича в игре: на планке можно держать только один максимальный флот, но залить можно было 6 флотов со всех своих планок. После этого планета, куда залил все флоты блокируется на сутки и через сутки все корабли, кроме максимального количества уничтожаются.
Ха! 15 атак я слил в ноль. Потерял 6 флотов,слил 15!
Проблемы с ботом начались из-за того (я так предполагаю), что засирался кэш, прога начала жрать всю оперативку и постепенно висла.
Большевики не боятся трудностей! Написал вспомогательную прогу. Бот, пройдясь по всем аккам, закрывался и запускал вспом. прогу. Та, через некоторое заданное время, опять открывала бот и сама закрывалась. Круг замкнулся, проблема решена!
Проблемы же начались с того, что разрабы решили ввести капчу. Это конец бота!!! Мы все были в ахуе... кормушка закрывалась.
Когда я увидел капчу же - сердце моё возликовало!