Author Topic: Обход капчи (картинок)  (Read 10561 times)

0 Members and 3 Guests are viewing this topic.

Artiom

  • Зашел в гости
  • *
  • Posts: 7
    • View Profile
Обход капчи (картинок)
« on: October 04, 2013, 10:26:54 PM »
Доброго времени суток. Возникла небольшая проблема в одной игре (о ней ниже), которая состоит в поиске изображения. В игре стоит капча, состоящая из трех картинок, и текста. который сообщает, какую картинку надо все таки выбрать. С поиском текста проблем не возникло, но вот с поиском картинок так легко не получилось.
[spoiler]wmod.ru - сайт

Логин: CMann

Пароль: 34879U
[/spoiler]
Вы стоите на
Средиземье [1S/1W]
Шахта
[вход]->Золотая жила

Вот после нажатия на Золотая жила и появиться капча. Буду признателен, если поможете с распознаванием картинок. :3


Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Обход капчи (картинок)
« Reply #1 on: October 05, 2013, 08:47:12 AM »
Можно решить если только подготовить картинки всех слов и соответствующих им изображений. Если картинок разумное число, разумеется.
И если их регулярно не меняют.

Делаешь картинки своих слов и соответствующих им предметов.
Картинки на предметы нарезаешь разумно, из центральной части. Размер небольшой от 5х5 до 10х10 хватит.
Называешь их так:
слово1.bmp          картинка1.bmp
слово2.bmp          картинка2.bmp
слово3.bmp          картинка3.bmp
...

Все кладёшь рядом с сохранённым скриптом.

В скрипте по очереди все ищешь и обрабатываешь. Сам скрипт:
Code: (clickermann) [Select]
$pic_num = 20 // Количество картинок
LOGWRITE ("Всего картинок для поиска = ", $pic_num)

MOVE($_xmax,$_ymax)
$i = 0
GETSCREEN
FOR($i, $i<$pic_num) // ищем слова по очереди
   IF_PICTURE_IN (0,0,$_xmax,$_ymax, STRCONCAT("слово", $i, ".bmp"), -1, 85)
      IF_PICTURE_IN (0,$_return2+10,$_xmax,$_return2+45, STRCONCAT("картинка", $i, ".bmp"), -1, 85)
         IF_PICTURE_IN ($_return1-12,$_return2+15,$_return1+22,$_return2+53, "галка.bmp", -1, 90)
            LDOWN($_return1+4, $_return2+4) // ставим чекбокс
            WAITMS(50)
            LUP($_return1+4, $_return2+4)
            WAITMS(200)
            LDOWN($_return1+4, $_return2+29) // жмём "положить"
            WAITMS(50)
            LUP($_return1+4, $_return2+29)
            WAITMS(1000)
            $i = $pic_num+1 // прерываем поиск по найденному
            LOGWRITE ("Нашли. Поставили")
         Else
            LOGWRITE ("Не нашёл чекбокс")
         END_IF
      Else
         $i = $pic_num+1 // не нашли соответствующую картинку прерываем поиск
         LOGWRITE ("не нашли соответствующую слову картинку.")
         GETSCREEN
         IF_PICTURE_IN (0,0,$_xmax,$_ymax, "галка.bmp", -1, 90)
            LDOWN($_return1+4, $_return2+4) // ставим чекбокс
            WAITMS(50)
            LUP($_return1+4, $_return2+4)
            WAITMS(200)
            LDOWN($_return1+4, $_return2+29) // жмём "положить"
            WAITMS(50)
            LUP($_return1+4, $_return2+29)
            WAITMS(1000)
            LOGWRITE ("Выбираем первую (просто наугад).")
         Else
            LOGWRITE ("Не нашёл чекбокс")
         END_IF
      END_IF
   Else
      WAITMS(50)
   END_IF
END_CYC

Не забудь в скрипте прописать сколько у тебя всего пар картинок (наибольший индекс)
Code: (clickermann) [Select]
$pic_num = 20 // Количество картинокЕсли какую-то картинку не нашёл, например её сменили к слову, будет выбираться первая.

P.S. Не забудь кинуть рядом со скриптом картинку галка.bmp из вложения.


Artiom

  • Зашел в гости
  • *
  • Posts: 7
    • View Profile
Re: Обход капчи (картинок)
« Reply #2 on: October 05, 2013, 11:11:18 AM »
Ну картинок всего 20 (10 слов из 10 вещей), но проблема была в том, что программа не находила вещь (шлем, лопату, щит и т.д.)


не нашли соответствующую слову картинку. это когда уже переименовал все вещи\слова
« Last Edit: October 05, 2013, 02:56:11 PM by Artiom »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Обход капчи (картинок)
« Reply #3 on: October 05, 2013, 03:16:27 PM »
Картинки покажи. И желательно скрин где не находит.


Artiom

  • Зашел в гости
  • *
  • Posts: 7
    • View Profile
Re: Обход капчи (картинок)
« Reply #4 on: October 05, 2013, 06:14:23 PM »
Как то так

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Обход капчи (картинок)
« Reply #5 on: October 05, 2013, 10:12:00 PM »
Что ты делал с цветом? Зачем перевёл в индексированные цвета?
С картинкой для поиска не нужно ничего делать. Никаких яркостей, цветокоррекций и индексированных цветов!


Artiom

  • Зашел в гости
  • *
  • Posts: 7
    • View Profile
Re: Обход капчи (картинок)
« Reply #6 on: October 05, 2013, 10:33:11 PM »
я сделал скриншот, выделил кусок шлема, обрезал, сохранил в формате bmp
больше никаких действий с картинкой я не совершал D:

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Обход капчи (картинок)
« Reply #7 on: October 06, 2013, 01:53:13 PM »
я сделал скриншот, выделил кусок шлема, обрезал, сохранил в формате bmp
больше никаких действий с картинкой я не совершал D:
Ну я же не выдумываю. Открой выложенную картинку в шопе. Цветовой режим. Стоит индексированные цвета. А сам ты это делал или программа которой делал скрин, не знаю.


Artiom

  • Зашел в гости
  • *
  • Posts: 7
    • View Profile
Re: Обход капчи (картинок)
« Reply #8 on: October 06, 2013, 06:46:46 PM »
я сделал скриншот, выделил кусок шлема, обрезал, сохранил в формате bmp
больше никаких действий с картинкой я не совершал D:
Ну я же не выдумываю. Открой выложенную картинку в шопе. Цветовой режим. Стоит индексированные цвета. А сам ты это делал или программа которой делал скрин, не знаю.
сделал новый скрин (решил попробовать с эликсиром). принтскрин-выделить-обрезать-сохранить как бмп. Назвал картинка2, а "эликсир" - слово2. тот же эфект (пробовал просто поиск картинки, с else - print("Ne nashel")).
Может конечно у меня руки совсем уже искривились.
Если тебя не затруднит, можешь сам сделать скрин и попытаться найти картинку ? адрес игры и данные от персонажа я указал, он сейчас на золотой жиле, так что времени много не займет.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Обход капчи (картинок)
« Reply #9 on: October 07, 2013, 08:04:40 AM »
Всё у меня ищет. Всё кликает.
Правда картинку чекбокса пришлось переделать. Прошлую делал на ноуте на W7. Сейчас на XP.
Ты картинку чекбокса сделай свою, потому, что его вид зависит от включенной темы и винды само собой.
Прикладываю образец где вырезать и свой вариант с XP (без сглаживания) на всякий случай.
Но помимо чекбокса у тебя ещё не находит картинку. С этим я не знаю что ты сделал. Попробуй подготовить картинку в другой программе...
Прикладываю свой вариант на котором проверял. Доспех и кольцо. Картинки у тебя должно находить, а мои слова нет (заменишь на свои) потому, что у меня текст без сглаживания.

Заккомментируй вторую строку в скрипте, мешает.
И не вырезай картинки с краю, там полупрозрачность, бери из центра.
« Last Edit: October 07, 2013, 08:09:36 AM by Vint »


Artiom

  • Зашел в гости
  • *
  • Posts: 7
    • View Profile
Re: Обход капчи (картинок)
« Reply #10 on: October 11, 2013, 04:07:18 PM »
Ай да Пушкин! Ай да сукин сын!
получилось, осталось только в самом начале сделать проверку на местонахождение (золото, руда, кристаллы) :3