|
Не Палимся В MMOG |
|
|
Mad-Hat |
25.6.2011, 22:55
|
![](style_avatars/IPB_Community_Pack/Hammer-man.jpg)
![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif)
Neophyte
Сообщений: 12
Регистрация: 25.6.2011 Группа: Пользователи Наличность: 0
Пользователь №: 13.749
![](style_images/uokit/spacer.gif)
|
Обход защиты от программы UoPilotЕсли приложение говорит о взломе, либо закрывается при запущенном пилоте, либо приложение не реагирует на клики:
Измените название окна с пилотом.
Это возможно сделать следующими способами: а) Настройки/Пустая строка ниже "Показывать все окна" - поставится галочка. При перезапуске название изменится. б) Внимательно отнеситесь к заголовку. В нем написана версия и соответственно нужно поправить при отличной от вашей. Код set #UOpilot findwindow (UoPilot v2.18.5 WK) set #result setwindowtext (#UOpilot Траляля)
Название файла UoPilot
Переименуйте uopilot.exe во что нибудь другое. Ну скажем notepad.exe
Порядок запуска
Поэкспериментируйте с порядком запуска. Сначала пилот, потом приложение либо наоборот.
Используйте программу HideToolz (см.Яндекс)
Используйте аппаратный кликер (Arduino) Очеловечивание действий скриптаТак как добавить неидеальности в действия макроса?!
Координаты
Везде, где можно задаем диапазон координат, а не фиксированные X и Y Возьмем прямоугольник с координатами #x0, #y0 #x1, #y1, любая точка внутри которого нам подойдет. Код Set #x #x0 + random(#x1 - #x0) Set #y #y0 + random(#y1 - #y0)
Период между кликами
Между любыми действиями в игре, такими как перемещение мыши, нажатие кнопок и пр. делайте рандомные паузы. Код Set #переменная [мин. время паузы] + random(число) Wait #переменная Пример: нужно сделать задержку от 3 до 5.5 секунд wait random(2500) + 3000
Продолжительность клика
Клик мышкой состоит из 2-ух действий, нажатие кнопки и отпускание кнопки. Если не ошибаюсь интервал между первым и вторым действиями можно отследить. Так заменим команду клика мышкой простенькой подпрограмкой, human-изирующей данное действие: Код // Подпрограмма Human Click // Поместить в скрипт после End_Script) :hleft // ускоряем выполнение подпрограммы. Необязательно. Set #delay linedelay // сохраняем текущий параметр задержки между строками Set linedelay 100 // задаем задержку между строками. Get Mouse_Pos #x #y // узнаем координаты мыши Left_Down #x #y // Нажимаем кнопку Set #t random(500) + 200 // задаем длительность задержки Wait #t Left_Up #x #y // отпускаем кнопку Set linedelay #delay // возвращаем задержку между строками Return В скрипте заменяем Left <#x> <#y>на Move <#x> <#y>GoSub hleft
Перемещение курсора (Move)
Пока не реализовал. Задачи: - движение по прямой с откланением в несколько пикселов в каждую сторону - неравномерная скорость движения курсора. Ускорение - движение - замедление.
Время OnLine
Научите скрипт выходить из игры хоть на несколько часов в сутки. Ну и заходить обратно естественно. - сделать Logout
- закрывать клиент вежливо, нажав в игре кнопочку Выход
- послать клиенту комбинацию Alt+F4
- убить клиент с помощью команды Terminate
- перезагрузить компьютер, не забыв добавить UoPilot в Автозапуск
Список команд по теме. Exec <команда> [параметры] - запуск приложения Terminate <заголовок окна> - завершение приложения WindowFromCursor - хендл окна, находящегося под курсором Set #var FindWindow (<caption>) - возвращает хендл окна Set WorkWindow <handle> - задание рабочего окна из скрипта Set $var GetWindowText (<handle>) - возвращает заголовок указанного окна ShowWindow <handle> <HIDE | MAXIMIZE | MINIMIZE | RESTORE | SHOW | TOP> Проверка UpTime: Код If timer > 3600000 // если скрипт работает больше часа - перезагрузить компьютер. Exec shutdown.exe -r -f -t 0 End_If
Мой скрипт запуска браузерной Flash игры: Код Set LineDelay 100 Set #handle FindWindow (UoPilot v2.18.8 WK) ShowWindow #handle MINIMIZE Exec C:\Program Files\Google\Chrome\Application\chrome.exe game.owonline.ru Wait 10s Set #handle FindWindow (One World браузерная онлайн игра) ShowWindow #handle MAXIMIZE Move 500 400 kLeft 500 400 Set #handle WindowFromCursor Set WorkWindow #handle ShowWindow #handle TOP Repeat 2 Send {Tab} End_Repeat Sendex <мой пароль> Wait 5s Send {Enter} Wait 30s Start_Script 1 End_Script
ПроверкиВстречал в браузерках появление здорового квадрата, закрывающего игровое пространство с маленькой кнопочкой Закрыть в уголке. Несколько кликов по квадрату и ты забанен. Бороться можно проверками. И чем их больше - тем лучше.
Проверка по цвету
Код If <коорд> <цвет> // если в точке с координатами - цвет While <коорд> <цвет> // пока в точке с координатами - цвет // сравнение цвета в точке до и после действия Get Color <#color1> <#x> <#y> [abs] действие Get Color <#color2> <#x> <#y> [abs] If\While <#color1> <зн.оп> <#color2> //поиск цвета в области Set #find FindColor (<StartX StartY EndX EndY ShiftX ShiftY цвет %массив> [type] [abs]) #find = 1 - цвет найден #find = 0 - цвет НЕ найден
Прямое человеческое вмешательствоНа первом курсе случай был. Вернулся домой с экзамена; гляжу, а в UO рядом с моей копалкой стоит GM и грозится забанить меня за неуважительное к нему обращение (IMG:style_emoticons/default/biggrin.gif) Остановил скрипт, успокоил ГыМа, запустил скрипт по новой, распечатал диалог и пошел праздновать сдачу с друзьями. Ну и поржали мы тогда над этой распечаткой.
Визуальное наблюдение
В MMORPG перса могут палить GM'ы либо в режиме бога или подойдя к вам своим персом. Да и среди игроков может найтись "Павлик Морозов". Бот долже визуально не особо отличаться от обычных игроков.
Приватные сообщения
GM'ы и иже с ними могут написать вашему, активно играющему боту приватное сообщение. Если на него не ответить - лишний повод для подозрений. Идей нет. Для UO в свое время писал модуль чатобота, но за давностью все поутерялось.
Нападение
В MMORPG на вашего бота могут напасть другие игроки или даже GM если у него закрались подозрения, что-бы посмотреть на поведение персонажа в бою. a) Если есть возможность делайте проверку на наличие поблизости противников\ПК\ГМов и при обнаружении телепорт\Logout\... B)Делайте скриншоты в начале каждого боя. Это позволит вам хоть понять как и кто вас кильнул. Printscreen <handle> <x> <y> <width> <heigth> <path> Код Set $hour hour Set $min min Set $sec sec Set $dot . Set $jpg jpg Set $filename $hour$dot$min$dot$sec$dot$jpg PrintScreen 0 0 0 0 0 C:\PrtSc\$filename
Вставить скрипт в начало боя.
Идеи, соображения, наработки и др. полезная инфа по теме приветствуется. Прежде чем прокоментировать пост - ответьте на вопрос, дополнит ли мой коментарий уже имеющуюся информацию? Если нет - не стройте из себя самотык затычку для каждой бочки, пофлудите гденить в другом месте. С уважением, Mad-Hat Сообщение отредактировал Fors1k - 14.12.2020, 23:30
|
|
|
|
DarkMaster |
26.6.2011, 11:17
|
![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif)
Модератор UOPilot
Сообщений: 9.490
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 28033
Пользователь №: 11.279
![](style_images/uokit/spacer.gif)
|
[spoilerXXX=Спойлер]Текст[XXX/spoiler] XXX удали - будет спойлер.
В целом неоднозначно... Для начинающих могут оказаться вполне полезными идеи, но неизбежно возникнут серьезные проблемы с написанием многих аспектов.. Боюсь все ограничиться рандомом вэйтов и координат. Даже простейший казалось бы процесс перезапуска игры может вылиться в несколько десятков строк, чтением памяти клиента, перебором и отсеиванием лишних окон. Взять ту же линейку. Прикрутить тот же радар к пилоту(гм, вары) или вытащить сообщения чата было бы неплохо - это бесспорно, но вот реализовать это сложновато. Хотелось бы наращивания темки, появления готовых решений, как универсальных, так и заточенных под определенные приложения.
Сообщение отредактировал DarkMaster - 26.6.2011, 11:35
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
Mad-Hat |
26.6.2011, 15:48
|
![](style_avatars/IPB_Community_Pack/Hammer-man.jpg)
![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif)
Neophyte
Сообщений: 12
Регистрация: 25.6.2011 Группа: Пользователи Наличность: 0
Пользователь №: 13.749
![](style_images/uokit/spacer.gif)
|
Цитата Для начинающих могут оказаться вполне полезными идеи, но неизбежно возникнут серьезные проблемы с написанием многих аспектов...
Естественно возникнут. Они и без этого поста возникнут. Мне хотелось собрать самые распространенные способы палева ботов в MMOG, ну а возможные варианты решения - уж дело техники. Многие задачи решаются для каждого проекта отдельно. Цитата Боюсь все ограничиться рандомом вэйтов и координат.
При этом уже шанс пропалиться уменьшится. Цитата Даже простейший казалось бы процесс перезапуска игры может вылиться в несколько десятков строк, чтением памяти клиента, перебором и отсеиванием лишних окон. Взять ту же линейку.
Не умеешь Не хочешь - не реализовывай. Сделай Логаут, подожди, Залогинься по новой, продолжи ботить. Делов на десяток строк. Цитата Хотелось бы наращивания темки, появления готовых решений, как универсальных, так и заточенных под определенные приложения.
Я тоже надеюсь на наращивание темы. Особенно было бы интересно услышать мнение знающих людей по способам определения ботов в разных типах игр, а решение уж придумаем :-) Готовые решения буду выкладывать по мере нахождения\написания. А заточенные под конкретные игры я бы не приветствовал здесь, ИМХО только тему захламит.
|
|
|
|
DarkMaster |
26.6.2011, 16:06
|
![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif)
Модератор UOPilot
Сообщений: 9.490
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 28033
Пользователь №: 11.279
![](style_images/uokit/spacer.gif)
|
Цитата Не хочешь - не реализовывай. Сделай Логаут, подожди, Этот пример был про RF онлайн, про л2 следующее предложение. Просто цитата несколько исказила смысл. Цитата Особенно было бы интересно услышать мнение знающих людей по способам определения ботов в разных типах игр Небольшой опыт из линейки: 1) Гм распортовывает чаров в стороны, если какой-то чар привязан следовать, то он будет бежать к своей цели. Порты повторяются несколько раз на протяжении 20 секунд. 2) Гм увеличивает макс хп до огромной цифры - бот на хиле начинает спамить лечение и сливать ману до нуля. 3) Вылазит окошко с необходимостью ввести ответ. Цитата А заточенные под конкретные игры я бы не приветствовал здесь, ИМХО только тему захламит. Ну как минимум под защиты можно было бы и развить. Тот же фрост или гг.
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
Splik |
16.10.2011, 14:51
|
![](https://forum.uokit.com/uploads/av-14155.jpg)
![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif)
Neophyte
Сообщений: 17
Регистрация: 14.10.2011 Группа: Пользователи Наличность: 0
Пользователь №: 14.155
Возраст: 19
![](style_images/uokit/spacer.gif)
|
И по поводу рандомной точке в прямоугольнике, написал скрипт, прямоугольник чертит, а точку не ставит =( left_down 40,70 move 880, 70 move 880, 560 move 40, 560 move 40, 70 left_up 40, 70 :random set #x 40 + random(880 - 40) set #y 70 + random(560 - 70) left #x, #y wait 3s goto random
|
|
|
|
Splik |
17.10.2011, 17:50
|
![](https://forum.uokit.com/uploads/av-14155.jpg)
![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif)
Neophyte
Сообщений: 17
Регистрация: 14.10.2011 Группа: Пользователи Наличность: 0
Пользователь №: 14.155
Возраст: 19
![](style_images/uokit/spacer.gif)
|
Снова проблема, вот скрипт
left_down 40,70 move 880, 70 move 880, 560 move 40, 560 move 40, 70 left_up 40, 70 :random set #x 40 + random(840) set #y 70 + random(490) left #x, #y goto random
Чертит прямоугольник, ставит точку, всё как надо. Вот другой скрипт:
left_down 40,70 move 880, 70 move 880, 560 move 40, 560 move 40, 70 left_up 40, 70 :random set #x 40 + random(840) set #y 70 + random(490) left_down #x, #y set #t 200 + random(2000) wait #t get mouse_pos #j, #h left_up #j, #h goto random
Почти такойже, за исключением длительности клика, чертит прямугольник, а потом ставит не точку, а чертит линию из левого угла прямугольника в рандомную область его площади, или просто стоит в левом углу, с постоянно зажатой лкм(проверено распылителем в Paint), а нужно чтобы ставил рандомную точку в площади прямоугольника с рандомной продолжительностью клика.
|
|
|
|
Zeleax |
17.10.2011, 20:29
|
![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif)
ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010 Группа: Пользователи Наличность: 0 Из: Киев
Пользователь №: 13.093
![](style_images/uokit/spacer.gif)
|
упрощаем ) Код left_down 40,70 move 880, 70 move 880, 560 move 40, 560 move 40, 70 left_up 40, 70 :random set #x 40 + random(840) set #y 70 + random(490) move #x, #y left_down #x, #y wait 200 + random(2000) left_up #x, #y goto random
--------------------
|
|
|
|
mrserg |
13.12.2011, 11:26
|
![](https://forum.uokit.com/uploads/av-14376.jpg)
![*](style_images/uokit/pip.gif)
Registred
Сообщений: 9
Регистрация: 12.12.2011 Группа: Пользователи Наличность: 0 Из: Ростов-на-Дону
Пользователь №: 14.376
Возраст: 31
![](style_images/uokit/spacer.gif)
|
Цитата Приватные сообщения
GM'ы и иже с ними могут написать вашему, активно играющему боту приватное сообщение. Если на него не ответить - лишний повод для подозрений. Идей нет. Для UO в свое время писал модуль чатобота, но за давностью все поутерялось.
Получил бан за "наглый" сбор ресурсов в игре АЙОН Пришлось накручивать пару проверок(для начала) ГМ спамил в ПМ о том, что если я не отвечу, то получу бан. После, он прибил моего чара и реснул, ессно, бот кинулся дальше собирать ресурсы. 1. При получении ПМа, комп орет как потерпевший (в моем случае, я всегда не далеко от компа во время сбора ресурсов/прокачки крафта) 2. На кол-во(изменение) ХП и смерти чара.
--------------------
Лесной воздух после бутылки водки слегка пьянит
|
|
|
|
Zeleax |
1.8.2012, 12:27
|
![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif)
ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010 Группа: Пользователи Наличность: 0 Из: Киев
Пользователь №: 13.093
![](style_images/uokit/spacer.gif)
|
Вопрос:Цитата Привет ребят, у меня на игре ввели защиту от кликер ботов теперь пришлось сделать таймер рандомным чтоб не забанили) вопросик можно ли как то сделать так чтоб например каждые 30 мин программа делала перерыв скажем 5 - 15 мин? Ответ:В начале скрипта пишем: Код // время первой остановки скрипта set #nextstop timer + 30 * 60000 // текущее время + 30 мин (считаем в миллисекундах) В месте планируемой приостановки скрипта добавляем блок кода: Код if timer >= #nextstop // если время пришло, то... wait 300000 + random(600000) // делаем паузу от 5 до 15 мин (в мс) // время следующей остановки скрипта set #nextstop timer + 30 * 60000 // текущее время + 30 мин (считаем в миллисекундах) end_if Еще один вариант- создать отдельный скрипт, который будет постоянно работать и ставить на паузу/восстанавливать скрипт бота (см.pause_script/resume_script). Но такой вариант не очень хорош, т.к. неизвестно в каком месте скрипт бота станет на паузу, что может быть чревато при восстановлении работы. Сообщение отредактировал Zeleax - 1.8.2012, 12:37
--------------------
|
|
|
|
Anwalt |
2.8.2012, 1:10
|
![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif)
Novice
Сообщений: 53
Регистрация: 2.8.2012 Группа: Пользователи Наличность: 0
Пользователь №: 15.161
Возраст: 31
![](style_images/uokit/spacer.gif)
|
Ребят, задача пилота следующяя, кликает на иконку с интервалом 047, собирает ресы, которые респятся в определенное время + - 2 мин, в одном и том же месте, ИНОГДА блочат, есть идеи как понизить интервал ( при 046 блочит мгновенно) и обойти блок?
выставляю- общее, ниже... клик левой, интервал 047, количество повторов -1 и координаты иконки куда кликать (strg + А)...
рандомные, и с разными промежутками клики не вариант, так как соберут ресурсы быстрее...
|
|
|
|
FanBlower |
28.7.2015, 18:50
|
![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif)
Neophyte
Сообщений: 17
Регистрация: 26.5.2014 Группа: Пользователи Наличность: 0
Пользователь №: 16.852
![](style_images/uokit/spacer.gif)
|
Сильно некропост. Так никто и не допилил перемещение курсора? И можно ли реализовать подобное задержка между клипами
// Подпрограмма Human Click // Поместить в скрипт после End_Script) :hleft // ускоряем выполнение подпрограммы. Необязательно. Set #delay linedelay // сохраняем текущий параметр задержки между строками Set linedelay 100 // задаем задержку между строками. Get Mouse_Pos #x #y // узнаем координаты мыши Left_Down #x #y // Нажимаем кнопку Set #t random(500) + 200 // задаем длительность задержки Wait #t Left_Up #x #y // отпускаем кнопку Set linedelay #delay // возвращаем задержку между строками Return
только для клавиатуры?
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|