Обход защиты от программы UoPilot
Если приложение говорит о взломе, либо закрывается при запущенном пилоте, либо приложение не реагирует на клики:Измените название окна с пилотом.
Это возможно сделать следующими способами:
а) Настройки/Пустая строка ниже "Показывать все окна" - поставится галочка. При перезапуске название изменится.
б) Внимательно отнеситесь к заголовку. В нем написана версия и соответственно нужно поправить при отличной от вашей.Кодset #UOpilot findwindow (UoPilot v2.18.5 WK)
set #result setwindowtext (#UOpilot Траляля)Название файла UoPilot
Переименуйте uopilot.exe во что нибудь другое. Ну скажем notepad.exeПорядок запуска
Поэкспериментируйте с порядком запуска. Сначала пилот, потом приложение либо наоборот.
Используйте программу HideToolz (см.Яндекс)
Используйте https://forum.uokit.com/index.php?showtopic=70514
Так как добавить неидеальности в действия макроса?!Координаты
Везде, где можно задаем диапазон координат, а не фиксированные 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 и грозится забанить меня за неуважительное к нему обращение Остановил скрипт, успокоил ГыМа, запустил скрипт по новой, распечатал диалог и пошел праздновать сдачу с друзьями. Ну и поржали мы тогда над этой распечаткой.Визуальное наблюдение
В 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
Вставить скрипт в начало боя.
[spoilerXXX=Спойлер]Текст[XXX/spoiler]
XXX удали - будет спойлер.
В целом неоднозначно... Для начинающих могут оказаться вполне полезными идеи, но неизбежно возникнут серьезные проблемы с написанием многих аспектов.. Боюсь все ограничиться рандомом вэйтов и координат. Даже простейший казалось бы процесс перезапуска игры может вылиться в несколько десятков строк, чтением памяти клиента, перебором и отсеиванием лишних окон. Взять ту же линейку. Прикрутить тот же радар к пилоту(гм, вары) или вытащить сообщения чата было бы неплохо - это бесспорно, но вот реализовать это сложновато.
Хотелось бы наращивания темки, появления готовых решений, как универсальных, так и заточенных под определенные приложения.
забавная тема) еще могут перенести в другую местность с безобидными мобами и если продолжишь их убивать на автомате - то блок)
Перемещение курсора (Move)
Можно ли растояние от одной точки к другой разбить по пикселям, и от пикселя к пикселю при помощи move двигать курсор, при том задать рандомное время между move ??
И по поводу рандомной точке в прямоугольнике, написал скрипт, прямоугольник чертит, а точку не ставит =(
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
random(880 - 40) // так нельзя
Снова проблема, вот скрипт
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), а нужно чтобы ставил рандомную точку в площади прямоугольника с рандомной продолжительностью клика.
Меняем на kleft и все работает.
move #x, #y
left_down #x, #y
вместо просто:
left_down #x, #y
Так же дает стабильный результат.
упрощаем )
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
Вопрос:
// время первой остановки скрипта
set #nextstop timer + 30 * 60000 // текущее время + 30 мин (считаем в миллисекундах)
if timer >= #nextstop // если время пришло, то...
wait 300000 + random(600000) // делаем паузу от 5 до 15 мин (в мс)
// время следующей остановки скрипта
set #nextstop timer + 30 * 60000 // текущее время + 30 мин (считаем в миллисекундах)
end_if
Ребят, задача пилота следующяя, кликает на иконку с интервалом 047, собирает ресы, которые респятся в определенное время + - 2 мин, в одном и том же месте, ИНОГДА блочат, есть идеи как понизить интервал ( при 046 блочит мгновенно) и обойти блок?
выставляю- общее, ниже... клик левой, интервал 047, количество повторов -1 и координаты иконки куда кликать (strg + А)...
рандомные, и с разными промежутками клики не вариант, так как соберут ресурсы быстрее...
Извините не в тему, но тут в скриптах увидел команду Kleft
собственно в чем разница?: left x, y или kleft x, y
в технической реализации. Еще лефт должен работать с перекрытым и/или свернутым окном, но это шансово.
Сильно некропост. Так никто и не допилил перемещение курсора? И можно ли реализовать подобное
На клавиатуру.
set $key ваша_клавиша
gosub hkey
:hkey
set #lastLinedelay linedelay
set linedelay 0
send217_down $key
wait random (500) + 100
send217_up $key
set linedelay #lastLinedelay
return
Спасибо. Пара вопросов: что делает linedelay, gosub, hkey?
А, кажется gosub hkey - объявление процедуры?
шапка
:strart
тело
goto start
тут подпрограммы
шапка
:strart
тело
goto start
тут подпрограммы
так, я снова тут
set #key2 2
set #key3 3
:start
gosub h2
gosub h3
goto start
:h2
set #lastLinedelay linedelay
set linedelay 0
send217_down #key2
wait random (500) + 100
send217_up #key2
set linedelay #lastLinedelay
return
:h3
set #lastLinedelay linedelay
set linedelay 0
send217_down #key3
wait random (500) + 100
send217_up #key3
set linedelay #lastLinedelay
return
Set #delay linedelay
Set linedelay 100
Set #x 626 + random(641 - 626)
Set #y 678 + random(696 - 678)
kLeft_Down #x #y
Set #t random(500) + 200
Wait #t
kLeft_Up #x #y
Set linedelay #delay
wait random(250) + 300
пробовал, результата нет. скорее всего это из-за защиты, перепробовал все советы из темы, не помогло, осталось только с виртуальной машиной пошаманить, но это позже
Относительно плавности перемещения мыши.
https://forum.uokit.com/index.php?showtopic=27152&st=0&gopid=220229&#entry220229
в онлайн игре не получается заставить работать клики мыши и нажатия клавиш в игре , подозреваю что snail game protect блокирует команды UO Pilot на нажатия мышки и клавиш , но команды на перемещения курсора в указываемые точки работают нормально - как решить эту проблему ?
P.S. Win 7-64
Цитата из форума:
Координаты
Везде, где можно задаем диапазон координат, а не фиксированные X и Y
Возьмем прямоугольник с координатами #x0, #y0 #x1, #y1, любая точка внутри которого нам подойдет.
Код
Set #x #x0 + random(#x1 - #x0)
Set #y #y0 + random(#y1 - #y0)
Используется ли этот код с командой move? Если да, пожалуйста, приведите пример
http://uopilot.tati.pro/index.php?title=Move
Обратите внимание на новый синтаксис. Больше нет необходимости в дополнительных конструкциях для рандома координат.
Как ботом "плавно" передвигаться, без остановок по карте? Мне для передвижения необходимо постоянно открывать и закрывать карту. И из-за этого бот передвигается перебежками что очень палевно. Если ли возможность как нибудь задать ему маршрут по которому он бы передвигался. Хотя бы подскажите в какую сторону следует мыслить. Уже 2-ой месяц не могу решить эту проблему!
Не зная игры или не видя как вообще процесс перемещения происходит трудно что-то советовать.
Там же вроде перс сам бежит к нужному месту если кликнуть по карте.
Карта в игре всегда постоянная ? тогда можно.
Все чаще прилетает бан в игре, уж вроде и рандомлю все подряд но все мимо.
ткните носом где посмотреть и как с этим бороться.
Заранее спасибо.
В любом случае забанят, если дойдет до ручной проверки, просто за "хорошую" игру
move_smooth х у
По сути дубль вопроса из темы
https://forum.uokit.com/index.php?showtopic=70548
Подскажите пожалуйста игры которые ИМЕННО крашатся/вылетает/определяется любая другая формулировка чтобы игра реагировала на самого пилота как запущенную программу,
не где не работают клики а именно идет краш самой игры например как у MU Legend в которой используется нпротект геймгуард при запущенном пилоте через какое то время ~5-10 минут выкидывает из игры с такой табличкой (скрин в прикрепленном файле)
dying light последняя актуальная версия на торентах с ардуано нормально кликается
Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)