Обходим капчу и собираем монеты на Yobit (осторожно, трафик!)

Сегодня я хочу рассказать или напомнить об одном инструменте, который иногда делает жизнь проще и быстрее. Это autoit – он может легко и просто эмулировать действия пользователей. Например, двигать мышью и кликать, перехватывать нажатия клавиш и управлять открытыми окнами, ну и всякое такое %)

Область применения довольно обширна, на этом языке даже делают кликалки для игр (прокачка скилов, выбивание монеток и т.п.), но нас сегодня интересует нажатие кнопок и прохождение капч. Я буду писать статью на основе крана, который не так давно встроили в Yobit.

Итак, суть – на ёбите есть кран, который раз в сутки позволяет получать халявные монетки, если кто не в курсе. Он находится в меню под именем FreeCoins. 

Разумеется, правила запрещают пользоваться любыми средствами автоматизации, угроза бана и всё такое… Но, мы же в образовательных целях и всякое такое.

Итак, что я хочу сделать – написать скрипт, который будет шевелить мышкой, кликать на кнопки и собирать монетки. Самое простое было бы использовать JavaScript, который в пару строк в консоли нажал бы все кнопки в цикле, но есть два момента – первый, это всплывающая капча, второй – так не интересно, статья об AutoIt, а его область применения несколько иная.

Вот так должно происходить – бот нажимает кнопку, вылезает капча, бот нажимает всё на капче. JS такое не сделает, насколько мне известно. На анимации ниже уже работа бота, но без кликов – пока что он просто обозначает, куда бы кликнул.

После того, как бот разгадает капчу, он будет нажимать кнопки одну за одной и двигать скролл, по необходимости :)  Вот так:


Реклама


Итак, автоматизация обхода капчи

Давайте пока вернемся к теме AutoIT. Вот их сайт https://www.autoitscript.com/site/autoit/downloads/, там можно скачать всё, что надо (выбирайте Full Installation). Скачали, установили. При установке всё по умолчанию, единственный сложный выбор, это когда спрашивают что делать с файлами au3 при двойном клике, запускать или редактировать. Я выбрал запускать.

Тем не менее, созданные на AutoIt программы можно компилировать в Exe и там есть интерфейсы, кнопки и прочее – советую все ж приглядеться внимательнее к нему.

Файлы исходного кода имеют расширение au3, и в комплекте идет ide с подсветкой синтаксиса, подсказками и прочими плюшками.

Написание кода сводится к тому, что бы что-то импортировать, и потом пользоваться готовыми функциями. Я делаю так – гуглю что-то типа “AutoIt mouse move”, копирую строку в скрипт, меняю под себя и нажимаю F5. Вот так выглядит итоговый код, который на Йобите решает капчу и потом кликает и скроллит.

 

#include <AutoItConstants.au3>
HotKeySet("{ESC}", "_Terminate")

; Позиции первой кнопки, которую надо нажать. На всякий случай напоминаю - x это слева направо, y это сверху вниз.
; Координата 0:0 это верхний левый угол
$start_x = 860
$start_y = 230

; Координата бегунка скролла
$scroll_x = 1475

; Расстояние от кнопки до кнопки - вообще нужно точнее
$change = 40

; Считаем кол-во нажатых кнопок
$cnt = 1
; Начинать двигать скролл после того, как обработаем 17 кнопок (у меня столько умещается на экран)
$scroll_min = 17

; Бесконечный цикл - если будете ставить на автомат, не забудьте условие выхода, например выходить после 100 нажатий
while true

   ; Кликнуть на координаты первой мыши
   MouseClick($MOUSE_CLICK_LEFT, $start_x, $start_y + $change, 1)

   if $cnt = 1 Then
      ; Если это первая кнопка, на которую жмем, то будет капча. Тогда ждем секунду, кликаем Я не робот
      Sleep(1000)
      MouseClick($MOUSE_CLICK_LEFT, 845, 300, 1)
      ; ждем еще секунду, кликаем подтвердить
      Sleep(1500)
      MouseClick($MOUSE_CLICK_LEFT, 950, 400, 1)
      ; Еще немного времени даем окну с капчей исчезнуть
      Sleep(1000)
      ; Нажать на первую кнопку еще раз, если нужно. Мне не нужно
      ; MouseClick($MOUSE_CLICK_LEFT, $start_x, $start_y + $change, 1)
   endif

   ; Первые 17 записей кликаем и опускаем мышь ниже
   if  $cnt < $scroll_min then
      $start_y += $change
   else
      ; Если мы прокликали все первые записи, то мы внизу, теперь подтягиваем новые записи скроллом под мышь, и кликаем
      $scroll_y_pos =   $start_y+$change - 600 + ($cnt-$scroll_min)*6.3
      MouseClickDrag($MOUSE_CLICK_LEFT, $scroll_x, $scroll_y_pos, $scroll_x, $scroll_y_pos+7)
   endif
   ; Подожать полсекунды
   Sleep(500)

   ; Увеличиваем кол-во обработанных записей
   $cnt += 1

wend

; Выйти в любой момент, если нажат Esc
Func _Terminate()
    Exit
EndFunc

Я создал файл yobit.au3, открыл его для редактирования в прилагающемся редакторе, и постепенно заполнил.

Думаю, код понятен и не нужно разжевывать каждую строчку, расскажу в двух словах - первый вариант программы был такой .

#include <AutoItConstants.au3>

; Кликнуть на 100% (420, 430 - координаты X, Y), 1 - сколько раз кликнуть

MouseClick($MOUSE_CLICK_LEFT, 420, 430, 1)

 

Вот эти две строчки выше и комментарий я гонял, пока не подобрал правильные координаты первой кнопки. Эта строка MouseClick($MOUSE_CLICK_LEFT, 420, 430, 1)  говорит AutoIt о том, что нужно переместить мышь в указанные координаты, и щелкнуть один раз. Это наверное самое сложное – пиксельхантинг – по пикселям подбирать что где на экране, что куда двигать и т.п.

У меня разрешение экрана 1920х1080, если что, ну и прямо идеально я не подбирал, скорее это всё для фана.

Вот как он работает (всё это делает бот! :) )

 

Кое-где я просчитался с пикселями, он пропустил пару кнопок, но это не страшно, главное сам принцип.

Такую штуку можно применить много где. Помимо всяких казино и того же дайса на Ёбите, можно ловить кнопки с бонусами, которые появляются в чатах в некоторых играх. Можно грабить корованы краны, которые защищены подобными капчами. Я использовал тот же подход в капче для Huobi, где нужно протянуть слайдер-капчу до нужного расстояния. Можно фармить в играх, можно закрывать надоедливые окна и т.п.

В общем, нужно знать, что есть вот такой полезный инструмент, и вспомнить о нём, когда он пригодится :) Всем удачи!

Категория: Программирование
Последнее изменение:

Не забудьте рассказать друзьям об этой статье.
Чтобы поддержать ресурс Bablofil достаточно просто поделиться с друзьями этой статьей в социальных сетях. Каждый репост - это самая высокая оценка качества материала. Спасибо, что читаете этот блог.



Комментарии
Пожалуйста, авторизуйтесь, что бы оставить свой комментарий
Крипто-кошельки для помощи и благодарности проекту:

Bitcoin адрес проекта: [[address]]

Перевод на сумму [[value]] BTC получен. Спасибо!.
[[error]]

Ethereum адрес проекта: [[address]]