Обалдеть, супер! :) Осталось сделать детектилку мёртвых аукционеров на случай рейда и научить курить по средам. После этого можно запускать на месяц :)
Вообще говоря если в игре есть возможность написания аддонов как в вов, например чтобы над головой врага все время висела плашка уникального цвета, тогда задача нахождния истрельбы по врагу становится довольно простой
если такой возможности нет то без плясок с памятью процесса сделать бота будет довольно сложно (анализ всего экрана игры в посках врага, с учетом что танки ещеи в кафуляже — это уже из области алгоритмов поиска обьектов на фотографиях, а не ботов для игр)
Читал впечатления человека игравшего в эту игру на китайском сервере, тк там у них в игре капча есть и боты кстати не такие уж тупые, например если едут и упираются в стену могу сдать назад или изменить направление пути. А камуфляж там можно заменить на самодельный wotskins.ucoz.ru/ вот сайт со шкурками так что можно хоть ядовито зеленый и розовый.
Если уж речь о шкурках пошла, то официальный сайтздесь. AutoIt в WOT работает отлично, я настроил быстро несмотря на то что раньше программой не пользовался
Для этого написано предупреждение :)
вообще говоря ботов в вове довольно много разных: для рыбалки, для сбора травы и так далее. Только по ним очень мало информации потому что они коммерческие по большей части: авторы пытаются их продавать. Поэтому и решил рассказать про свой опыт, потому что мне пришлось до всего самом
вообще говоря отследить такого бота дольно сложно потому что путь ксждый раз разный. А девять часов… Мало ли может мы с женой по очереди бегаем весь день :)
Писать ботов — хорошее, интересное занятие. Постоянное использование в реальной игре — нарушение правил и неуважение к игрокам. Второго делать лично я бы не стал.
Согласен. Да и боты бывают разные. Например, кому какое дело, если игрок использует бота для автоматической ротации дпс? Криворукость игрока остаётся на совести игрока.
Игры надо проектировать так, чтобы не было смысла в ботах…
во всех играх банят в первую очередь популярных или коммерческих ботов, как правило их можно как-то отследить.
различных самодельных отслеживать сложнее, их чаще банят по наводке от игроков.
Ну тут в основном код для AutoIt, думаю что Warden умеет его определять.
Советую запускать AutoIT от другово юзера и менять название процесса.
Подобных кликеров и имитации клавиатуры довольно много, но молодцы что сами разобрались)
Кликер и имитация клавиатуры это известные вещи, я их использую еще с препатча когда для выставления на аукцион стало требоваться на каждый выставляемый предмет клик мышью делать — написал скрипт для автоита который сам кликал мне по кнопке пока я чай пил.
Вроде не забанили :))
Теперь вот решил развить идею и сделать торговца полностью автоматическим. Для меня был больше интересен не код на автоит, потому что он довольно тривиальный, а реализация перемещения и взаимодействия с аукционером и почтой через систему семафоров, поиск почтового ящика на экране (его же нельзя выделить макросом) и т.д.
Собственно в следующей статье расскажу про то, как я работал с почтой и с аукционером — условия на переход к следующему этапу цикла, поиск почтового ящика и т.д.
Я давно не играю, но пережил два банхамера один большой связанный с Glider, кстати замечу что он был написан на c#. Потом был mimic, pirox.
Замечу, что важным фактором является то где ты юзаешь бота, лучше перенести его в другую столицу. Добавить в перемещение прыжки, левые движения.
Это снизит репорты юзеров, которые иногда выходят боком.
Мне аукцион неинтересен всегда был, но знаю что большенство кто химичит и работает по схеме купи/продай юзают «Аукционер»(адон не бот — для не играющих), там на сколько знаю всё автоматизированно в плане кликов и забирания с почты.
В препатче катаклизма близзарды сделали что чтобы выставить/забрать вещь с аукциона необхоимо обязательно сделать клик мышью.
Поэтому все эти аддоны автоматизируют одинаково: предоставляют большую кнопку на которую ты сидищь и кликаешь :)
Забираение с почты автоматизировано, но нужно:
1. дойти до почты
2. открыть почтовый ящик
3. нажать кнопку «получить все»
4. определить что ты все забрал что есть либо что сумки заполнены
5. если все забрал идешь обратно на аукцион выставлять.
Я тоже писал абсолютно такого же бота(тот же самый пиксель хант, тот же самый AutoIt), но несколько под другие цели. Пользовался порядка 4х месяцев, бана и флага не получил(интересовался у GM висит ли на мне флаг, его вешает warden или GM, по регламенту они должны предоставлять эту информацию по запросу игрока). В принципе я знал о том что не один я до такого додумался =)
для хабра было бы интереснее написать парсер веб аукциона на node.js и самого торгового бота. Кол-во транзакций ограничено — в этом есть своя соль.
А вообще есть и бесплатные боты, которые не палятся. И комьюнити у них огого.
Веб акуцион для меня не ауктально: торгую символами, по 400+ лотов на аукционе, в день по 2 000 — 10 000 транзакций. Веб-аукцион это так, закупиться фласками по дороге домой если к рейду опаздываешь
Я хотел сказать что торговый бот через веб аукцион это заведомо бесполезная вещь.
зачем его разрабатывать и писать про него? Это же абсолютно пустая трата времени
Увы и ах, но серьезного бота на автоите с вкраплениями Lua не напишешь.
Все боты для WoW (да и для Aion) сейчас пишутся, в основном, на C# с применением библиотек типа BlackMagic, которые позволяют активно читать / писать в память процессе. Соответственно, самый сложный этап — поиск оффсетов в памяти процесса.
Интересующиеся могут даже скачать исходники некоторые OpenSource ботов. Их в изобилии на www.mmowned.com/forums/
<offtopic>
Хм, а почему только в памяти? Я, вобщем-то, совсем не в теме WoW, но самое первое, что пришло в голову это встроиться в передачу пакетов, думаю сетевой протокол уже кто-то разжевал. Или это как-то палится? С другой стороны и внедрение в процесс ведь спалить можно. Как-то не понятно.
</offtopic>
Не трогал клиенты ММОРПГ, но подбирать-то зачем?
На клиентской стороне шифруем — в памяти клиента и сырые данные лежат, как минимум, на момент передачи в процедуру шифрования перед отправкой пакета. Наверняка шифруется пакет целиком, а не каждая структура данных по отдельности.
Ну клиент-то сам шифрует, значит и ключ у него есть? :)
Даже если реализован навороченный распределенный протокол генерации ключей, взаимная аутентификация, а сам алгоритм шифрования не RSA ни разу, а нечто жутко сложное и новомодное — мы уже видим весь код клиента и весь его контекст исполнения (регистры и память), значит мы — это клиент (с погрешностью по времени в считанные единицы тактов процессора даже на одном однопоточном ядре).
А на практике, если нужно делать что-то кроме пассивного чтения памяти: подмена/инъекция пакетов, модификация памяти, то при любом мелком обновлении придётся полностью анализировать код клиента, чтобы убедиться, что клиент не ввел новую проверку и сервер не обнаружит ваших действий. Цена ошибки высока.
Это примерно как война вирусов с антивирусами (при условии, что вирус уже запущен), и с поправкой на то, что клиенту в случае подозрений достаточно доложить об этом серверу.
Немного не понял, как мы можем вызвать функцию шифрования клиента? По моему всё что мы можем это перехватить пакет и заменить на свой. Вмешиваться в регистр и память — помоему не лучший вариант Warden(http://en.wikipedia.org/wiki/Warden_(software) ) сразу распознает такое вмешательство.
Теоретически нам нужны только входящие пакеты — там инфа где персонаж находится, сколько у него жизни/маны, кто находится рядом из игроков и мобов — расстояние до них.
И на этих данных уже можно строить бота куда бежать и что делать. Такие функции как взять цель и т.д реализуется внутри игровыми макросами и посылка пакетов на сервер не нужна.
Я имел в виду только то, что теоретических проблем с подменой пакетов нет. Мы все исходные данные и алгоритмы можем узнать, а значит, можем и проделать те же действия, что и клиент, или заставить его сделать это.
Как тяжко это будет, как обойти античит — это уже отдельные проблемы.
А в данном случае, похоже, лезть глубоко и не надо совсем, как нам автор и показал :)
Заменить пакет, не вмешиваясь в регистр и память нельзя, соединение же шифрованное. Заменим пакет — все последующие пакеты перестанут проходить, т.к. нарушится контрольная сумма.
Может быть возможно сделать MITM и проксировать все пакеты, попутно наблюдая за ними, возможно даже модифицируя.
По крайне мере два года назад в TBC это работало, достаточно было знать пароль к аккаунту. Для аутентификации использовался SRP и полученный ключ использовался для шифрования, ЕМНИП, почти простым xor.
Более того, так как размер пакета передаётся в том же зашифрованном канале в заголовках пакета, то наблюдая за размерами передаваемых блоков данных, и вычисляя тем самым размеры передаваемых пакетов (это можно сделать при условии хорошего интернет-соединения), и сравнивая их с зашифрованными заголовками, можно через несколько минут получить ключ шифрования даже без MITM на этапе соединения!
Хотя вот выше пишут, что начиная с катаклизма шифрование усилили, так что теперь не всё так просто.
насчет заработка — была когда-то в игромании достаточно общая статья, про одного весьма предприимчивого человека. сути полностью она, конечно же, не раскроет, но в целом почитать интересно.
А я тоже для аукциона писал, правда на C# и с чтением памяти таки.
Аддон на Lua записывает в массив всю нужную информацию и команды, а в начало массива — сигнатуру (несколько произвольных чисел).
Потом основной процесс ищет в памяти игры сигнатуру, и считывает всю нужную информацию из массива. Так и быстрее и удобнее, чем пикселями.
Правда у меня ещё рандомизация и по времени, и по выбору маршрута.
А что за аддон, не Auc-Advanced ли?
9к за один день без ручного управления — это как-то многовато.
Просто получается, что для этого нужно ещё и играть, знать тонкости профессии, добывать редкие рецепты, прокачивать персонажа до того уровня, чтобы он мог изучить профессию.
Это верно не для всех профессий (в частности для начертания все обстоит не совсем так. из перечисленного спика нужно только докачать персонажа до 68 уровня)
Вот это поворот, честно думал что на продажу, хотя я приценивался, если 1кг стоит 30р, то за сколько ж его покупают у фермеров, совсем смешные деньги выходят
Я обычно просто напивался и шел в оргриммар и там набирал пати 5 человек, мы шли в БРД слушать рок-концерт параллельно я устраивал всякие конкурсы-викторины в чате с призами типа 5/10/15кг и т.д., за вечер 50-150 кг сливал на такие развлечения.
Еще надо, чтоб при виспах бот отключался от сервера.
Если начнут виспать (игроки, ГМ), а при этом игрок молчит и носится от аукциона к ящику — подозрительно. :-)
Берем бота-говорилку, обучаем его на очень-очень ломаном английском — и вуаля, даже если кто поинтересуется — желание интересоваться дальше пропадет почти мгновенно.
Создание простого бота для онлайн-игры world of warcraft