Автокликер Clickermann :: Форум
Основной раздел => Прочее => Topic started by: RioT on January 10, 2014, 12:17:53 AM
-
В общем-то попытался разобраться в этом коде, но не всё нужное нашел.
[spoiler]В последнее время народ всё чаще спрашивает про антикапчу. Но внятно связать работу со своим скриптом не могут.
Хочу выложить шаблон для капчи Вконтакте. Здесь один из вариантов. Оформлена как #include
Скачиваем AGClient v1.2 (http://crapware.aidf.org/files/5/)
Читаем инструкцию. Настраиваем, запускаем.
Вставляем в свой скрипт #include "Антикапча 0.2 ВК include"
GOSUB(capcha)// гле нужно вызываем подпрограмму проверки вылезла ли капча.
сам include (скачиваем в этом посте вместе с картинками) состоит:
SUB(capcha) //========== Ловим капчу ===========================================
MOVE(0,0)
WAITMS(100)
GETSCREEN
IF_PICTURE_IN (0,0,$_xmax,$_ymax, "capcha_NEW.bmp",-1,80) //есть капча
$x1 = $_return1+17
$y1 = $_return2+40
$x2 = $_return1+146
$y2 = $_return2+89
$hwnd = wndFind("AGClient v1.2") // находим окно
// последовательное задание координат
PostMessage($hwnd, 0x555, 1, $x1)
PostMessage($hwnd, 0x555, 2, $y1)
PostMessage($hwnd, 0x555, 3, $x2)
PostMessage($hwnd, 0x555, 4, $y2)
repeat:
waitms(200)
PostMessage($hwnd, 0x555, 5, 0) // распознать
waitms(1000)
GETSCREEN
IF_PICTURE_IN (0,0,$_xmax,$_ymax, "AGClient.bmp")
$AGC_x = $_return1-25
$AGC_y = $_return2-56
LOGWRITE("AGClient X=", $_return1, ", Y=", $_return2)
END_IF
$pic=0
WHILE($pic=0)
GETSCREEN
IF (PXL($AGC_x, $AGC_y)=65535) // жёлтый
WAITMS(300)
END_IF
IF (PXL($AGC_x, $AGC_y)=65280) // зелёный
WAITMS(100)
$pic=1 // выходим из цикла
END_IF
IF (PXL($AGC_x, $AGC_y)=255) // красный
LOGWRITE("Не распознали")
HINTPOPUP("Не распознали")
//HALT
$pic=2
END_IF
END_CYC
IF($pic=2) // если не распознали отправляем повторно новую капчу
TOCLIP("12345")
WAITMS(100)
GOSUB(paste)
WAITMS(1500)
GOTO(repeat)
END_IF
GOSUB(paste)
WAITMS(300)
END_IF
END_SUB
SUB(paste) //========== Вставить ===============================================
KEYDOWN (#CTRL) // Ctrl+V
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
WAITMS (50)
KEYUP (#CTRL)
WAITMS (50)
KEYDOWN (#ENTER)
KEYUP (#ENTER)
WAITMS (50)
END_SUB
В указанном скрипте, если AGClient прислал, что капча не распознана, вводим что попало обновляя капчу и отсылаем заново. Если при нераспознавании нужно станавливаться, раскомментируем строку //HALT
[/spoiler]
Скажу сразу, перечитал форум, справку и справку языка, может я тугой, но нужна помощь, не прошу сделать за меня, а просто подтолкнуть к решению.
Ситуация: Браузерная игрушка, периодическая капча в одном месте(т.е. первая часть кода, как я понимаю, не нужна, ибо корды капчи можно забить заранее).
Что нужно:На пиксель цвета капчи ставим инклюд, который запускает распознавание, это сделал (адекватное и правильное ли такое решение?).Нужна помощь именно от перехода с оконного режима браузерак антигейту(там нажимаем на распознать, проверяем цвет индикатора, при красном репетим, при желтом ждем, при зеленом идем дальше) и переход обратно к этому браузеру и вводом капчи (думаю, реализовать через ctrl+v , нормально будет?), ну дальше основной скрипт продолжаем.
-
Не понятно в чём проблема? Или окно браузера привязано и нужно всё делать в "теневом режиме"? Тогда нужно посмотреть окно с капчей, имеет ли оно тот же hwnd. Если да - всё получится, если нет - только выводить на передний план и там перепривязать или сразу распознать. В общем в немешающем режиме тогда не получится.
-
Не понятно в чём проблема? Или окно браузера привязано и нужно всё делать в "теневом режиме"? Тогда нужно посмотреть окно с капчей, имеет ли оно тот же hwnd. Если да - всё получится, если нет - только выводить на передний план и там перепривязать или сразу распознать. В общем в немешающем режиме тогда не получится.
Здравствуйте, спасибо, что откликнулись .
Не очень вас понял. Сама проблема в том, что я недостаточно знаю синтаксис, чтобы отвязать привязку от браузера , потом привязать его к Антигейту , а потом обратно к браузеру , чтобы всё это было в "немешающем" режиме.
Про hwnd .. капча выходит в браузере -> она имеет тот же hwnd , если вы об этом.
-
Так же на счет того кода, не всё уяснил :
PostMessage($hwnd, 0x555, 5, 0) // распознать
Это мы посылаем Антигейту сообщение, чтобы он распознал капчу,так?
GETSCREEN
IF_PICTURE_IN (0,0,$_xmax,$_ymax, "AGClient.bmp")
$AGC_x = $_return1-25
$AGC_y = $_return2-56
LOGWRITE("AGClient X=", $_return1, ", Y=", $_return2)
END_IF
тут я вообще не понимаю что мы делаем.
TOCLIP("12345")
WAITMS(100)
GOSUB(paste)
И тут... что за TOCLIP?
Зачем при нераспознанной капче вставлять её ?Оо
В остальном, всё ясно, попробую сегодня написать код и потестить.
-
Так же на счет того кода, не всё уяснил :
PostMessage($hwnd, 0x555, 5, 0) // распознать
Это мы посылаем Антигейту сообщение, чтобы он распознал капчу,так?
GETSCREEN
IF_PICTURE_IN (0,0,$_xmax,$_ymax, "AGClient.bmp")
$AGC_x = $_return1-25
$AGC_y = $_return2-56
LOGWRITE("AGClient X=", $_return1, ", Y=", $_return2)
END_IF
тут я вообще не понимаю что мы делаем.
TOCLIP("12345")
WAITMS(100)
GOSUB(paste)
И тут... что за TOCLIP?
Зачем при нераспознанной капче вставлять её ?Оо
В остальном, всё ясно, попробую сегодня написать код и потестить.
1. Так.
2. Здесь мы ищем один из известных элементов окна AG и от него высчитываем где нам проверять цвет сигнализатора.
3. Такое было техзадание. Если не распознал вставляли что попало чтобы капча сменилась. Чтобы не зависнуть отправляя снова и снова трудную капчу надеясь попасть на догадливого китайца. TOCLIP это передача в буфер обмена.
Скрипт писался и использовался без привязки.
Сначала сохранить hwnd привязанного окна браузера.
Там где ищем окно AG запоминаем его hwnd.
Привязываться/отвязываться командой HSET($hwnd, 1)
1 привязать
0 отвязать
нужно пробовать.
-
1. Так.
2. Здесь мы ищем один из известных элементов окна AG и от него высчитываем где нам проверять цвет сигнализатора.
3. Такое было техзадание. Если не распознал вставляли что попало чтобы капча сменилась. Чтобы не зависнуть отправляя снова и снова трудную капчу надеясь попасть на догадливого китайца. TOCLIP это передача в буфер обмена.
Скрипт писался и использовался без привязки.
Сначала сохранить hwnd привязанного окна браузера.
Там где ищем окно AG запоминаем его hwnd.
Привязываться/отвязываться командой HSET($hwnd, 1)
1 привязать
0 отвязать
нужно пробовать.
так, я всё понял, и остался 1 вопрос, можно ли вместо того, чтобы посылать сообщения антигейту,искать корды от картинки и т.д. просто этой командой привязаться к нему просто нажать по нужным кординатам и привязаться обратно к браузеру?
Есть ли уязвимости и недостатки этого метода?
---Добавил----
[spoiler] SUB(cap)
$hwnd = wndFind("AGClient v1.2")
HSET($hwnd, 1)
repeat:
WAITMS(rnd(100,200))
LCLICK(50,67) // распознать
WAITMS(rnd(700,1200))
$p=0
WHILE($p=0)
IF (PXL(23,33)=65535) // жёлтый
WAITMS(300)
END_IF
IF (PXL(23,33)=65280) // зелёный
WAITMS(100)
$p=1 // выходим из цикла
END_IF
IF (PXL(23,33)=255) // красный
$p=2
END_IF
END_CYC
IF($p=2) // если не распознали отправляем повторно новую капчу
WAITMS(1000)
GOTO(repeat)
END_IF
GOSUB(paste)
WAITMS(rnd(120,460))
END_SUB
SUB(paste) //========== Вставить ===============================================
$hwndm = wndFind("*Браузер*")
HSET($hwndm, 1)
lclick (rnd(343,392),rnd(109,116)) //корды
KEYDOWN (#CTRL) // Ctrl+V
WAITMS(rnd(110,260))
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
WAITMS(rnd(60,120))
KEYUP (#CTRL)
WAITMS(rnd(170,520))
KEYDOWN (#ENTER)
KEYUP (#ENTER)
WAITMS(rnd(300,790))
END_SUB
[/spoiler]
Собственно, сделал, что скажите?
-
1. Так.
2. Здесь мы ищем один из известных элементов окна AG и от него высчитываем где нам проверять цвет сигнализатора.
3. Такое было техзадание. Если не распознал вставляли что попало чтобы капча сменилась. Чтобы не зависнуть отправляя снова и снова трудную капчу надеясь попасть на догадливого китайца. TOCLIP это передача в буфер обмена.
Скрипт писался и использовался без привязки.
Сначала сохранить hwnd привязанного окна браузера.
Там где ищем окно AG запоминаем его hwnd.
Привязываться/отвязываться командой HSET($hwnd, 1)
1 привязать
0 отвязать
нужно пробовать.
так, я всё понял, и остался 1 вопрос, можно ли вместо того, чтобы посылать сообщения антигейту,искать корды от картинки и т.д. просто этой командой привязаться к нему просто нажать по нужным кординатам и привязаться обратно к браузеру?
Есть ли уязвимости и недостатки этого метода?
---Добавил----
[spoiler] SUB(cap)
$hwnd = wndFind("AGClient v1.2")
HSET($hwnd, 1)
repeat:
WAITMS(rnd(100,200))
LCLICK(50,67) // распознать
WAITMS(rnd(700,1200))
$p=0
WHILE($p=0)
IF (PXL(23,33)=65535) // жёлтый
WAITMS(300)
END_IF
IF (PXL(23,33)=65280) // зелёный
WAITMS(100)
$p=1 // выходим из цикла
END_IF
IF (PXL(23,33)=255) // красный
$p=2
END_IF
END_CYC
IF($p=2) // если не распознали отправляем повторно новую капчу
WAITMS(1000)
GOTO(repeat)
END_IF
GOSUB(paste)
WAITMS(rnd(120,460))
END_SUB
SUB(paste) //========== Вставить ===============================================
$hwndm = wndFind("*Браузер*")
HSET($hwndm, 1)
lclick (rnd(343,392),rnd(109,116)) //корды
KEYDOWN (#CTRL) // Ctrl+V
WAITMS(rnd(110,260))
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
WAITMS(rnd(60,120))
KEYUP (#CTRL)
WAITMS(rnd(170,520))
KEYDOWN (#ENTER)
KEYUP (#ENTER)
WAITMS(rnd(300,790))
END_SUB
[/spoiler]
Собственно, сделал, что скажите?
Что-то траблы с этой привязкой , ничего с HSET не выходит. Конкретнее напишу позже.