Чтение капчи. Сервисы распознования капчи

  • Распознование капч с помощью сервисов распознования и встроенными инструментами работает и в бесплатной версии программы
  • Цитата Wikipedia
    - CAPTCHA
    (от англ. Completely Automated Public Turing test to tell C omputers and Humans Apart - полностью автоматизированный публичный тест Тьюринга для различия компьютеров и людей) - товарный знак Университета Карнеги - Меллона, в котором разработали компьютерный тест, используемый для того, чтобы определить, кем является пользователь системы: человеком или компьютером.

    Все чаще в интернете при работе по автоматизации,регистрации,добавлении сообщений, комментариев, объявлений и так далее, мы сталкиваемся с тестом распознования, кем является пользователь системы: человеком или компьютером. Данный компьютерный тест называет "CAPTCHA" и зачастую он распространятся с каждым днем все больше и больше, соответственно и алгоритм и сложность данного теста постоянно усовершенствуется, чтобы уменьшить уязвимость обхода теста и его распознования.
  • В итоге на данный момент мы имеем различные виды капч, основные, которые чаще встречаются я опишу ниже:
  • №1 yaCAPTCHA

    Это один из самых первых и распространенных видов защиты от спама. Обычно его ставят для регистрации на форумах и сайтах. Для блогов, я бы не советовал его ставить, так как капча довольно таки сложная, и некоторые пользователи просто из-за лени ее распознавать и вводить, просто не захотят оставлять комментарий. №2 Anti Spam Image


    Очень похожая на первый вид капчи, но здесь рядом с картинкой выводится примечание, например «вводить только красные символы», или «вводить только цифры» или «вводить только буквы». Тем самым если у спамеров есть робот, который умеет распознавать символы с картинки, то он логически введет все символы, а не именно те, что требуются в примечании. №3 SI Captcha Anti-spam


    Так же как и первые 2 вида, данный плагин, выводит капчу в виде цифр и букв, но здесь есть возможность прослушать, то что изображено на картинке.
    №4 reCAPTCHA


    Еще одна разновидность капчи с выводом символов, здесь так же есть возможность воспроизведения символов на картинке. Обычно форма с капчей состоит из двух слов. Этот вид, тоже больше подходит как капча на сайт, где требуется регистрация, чем капча на блог, где нужно просто оставить комментарий. №5 Simple CAPTCHA


    Капча выводит различные символы, их нельзя прослушать, но если они не видны, то нажав на соседнюю кнопочки символы на картинке можно заменить. При этом не обновляя страницу, то есть не теряя написанного комментария в поле. №6 Math Comment Spam Protection


    Здесь на форме с капчей выводятся два числа, но вводить надо не их, а их сумму. Опять же если робот сможет распознать цифры на картинке,то сложить их и вписать в поле их сумму, для робота уже проблематично. №7 WP-NOTCAPTCHA


    Это довольно таки забавная и простая капча для человека, но трудная для робота. Здесь просто надо передвигать ползунок под картинкой так, что бы картинки расположились вертикально. №8 ImHuman


    Тоже довольно таки интересная форма с капчей, и в тоже время очень сложная для роботов. Здесь выводятся несколько картинок, и надо выбрать из них одну, которая написана в примечании. №9 Checkbot



    Этот вид капчи является одним из самых простых и удобных способов защиты от спама. Здесь просто нужно выбрать человечка с поднятой рукой. №10 Dcaptcha – Я не робот(YA-ne-robot)


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

    Принцип работы данных сервисов прост. Вы регистрируетесь в любом сервисе удобным для вас, пополняете счет на нужную вам сумму. В своей учетной записи найдете «captcha ключ»
    он же $api_key
    – это ключ сервиса распознания, который нужно указывать в разных программах, в том числе и нашей для подключения соответственного сервиса. Вот как все работает, данный алгоритм аналогичен для большинства сервисов каптч:

    1. Ваше приложение загружает капчу нам на сервер и получает ее уникальный ID . (Через HTTP POST, методами multipart или base64).
    2. Ожидаем 10 секунд (среднее минимальное время, за которое наши работники вводят текст с капчи).
    3. Делаете HTTP GET
    запрос с ID капчи на наш сервер. Получаете либо текст с капчи, либо код CAPCHA_NOT_READY
    , означающий что она еще не готова.
    4. Если получили CAPCHA_NOT_READY , делаете повторную попытку через 5 секунд (шаг 3).
    5. Если получили OK|SOME_TEXT_HERE , то SOME_TEXT_HERE и есть ваш текст с капчи.

  • В Human Emulator есть восемь функций для распознавания капчи, такие как:
    recognize_captcha
    - распознать картинку с диска как капчу.
    recognize_by_anticaptcha
    – распознать капчу картинки через сервис антикапча
    recognize_by_rucaptcha
    – распознать капчу картинки через сервис rucaptcha.com
    recognize_by_captcha24
    – распознать капчу картинки через сервис captcha24.com
    recognize_by_ripcaptcha
    – распознать капчу картинки через сервис ripcaptcha.com
    recognize_by_evecaptcha
    – распознать капчу картинки через сервис eve.cm
    recognize_by_bypasscaptcha
    – распознать капчу картинки через сервис bypasscaptcha.com
    recognize_by_captchabot
    – распознать капчу картинки через сервис captchabot.com
  • Давайте для наглядности рассмотрим пример распознования капчти google с помощью сервиса antigate.com
$xhe_host = "127.0.0.1:7011" ; // The following code is required to properly run XWeb Human Emulator require ("../../Templates/xweb_human_emulator.php" ) ; // Переходим на пример капчи на сайте google $browser -> navigate ("http://google.ru/sorry" ) ; //Распознаем капчу и вводим ваш индивидуальный api_key echo $captcha = $image -> recognize_by_anticaptcha ("/sorry/image?id=" , "C:\T emp\1 .jpg" , "$api_key – это ваш ключ сервиса распознания" , "http://antigate.com" ) ; //Вводим результат капчти в нужное поле $input -> send_keyboard_input_by_name ("captcha" , "$captcha " ) ; // Quit $app -> quit () ;
  • Ниже приведены ссылки на описание объектов содержащих функционал, позволяющий воспользоваться API сервисов для распознования капч.
  • В нынешнем времени сервисы по работе с каптчами все более актульны и востребовательны для использования их в различных интернет ресурсах и сервисах, они стремительно развиваются и наращивают свой функционал, вместе с этим программа HumanEmulator старается идти в ногу со временем и все больше внедряет в свою внутреннюю структуру функционала по работе с данными сервисами. Подведя итоги вышенаписанного, можно с уверенностью сказать, что при работе в тандеме(связке) сервисов каптч и нашего софта, можно легко и с уверенностью разгадывать большинство типов каптч представленных в интернете. Но совершенству нет предела и поэтому мы будем с радостью добавлять и внедрять все новое, что будет связано с данными сервисами и функционалом.

    Здравствуйте, уважаемые читатели блога сайт. Антикапча (временно это был Антигейт) – это многофункциональная площадка для автоматического распознавания так называемой капчи (защиты от автоматического постинга ботами, а также защиты поисковиков от парсинга их выдачи).

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

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

    Вот как раз таким людям и предлагается система автоматического разгадывания этих ребусов — Anticaptcha . У них есть целая армия работников (их завлекают — это оборотная сторона Антикапчи). Давайте разберемся, как пользоваться ресурсом Anti-captcha и что для этого потребуется.

    Что такое Captcha и почему она появляется?

    Также Антигейт может пригодиться при раскрутке сервиса или страницы в соцсети с помощью собственного скрипта. Словом, областей применения – множество, что и отличает данный ресурс от аналогов, заточенных под сугубо 2-3 функции и с высокими ценами.

    Как работать с сервисом Антикапча

    Перед тем как создать свой первый заказ, пройдите небольшую регистрацию .

    Потребуется только электронная почта. На нее придет пароль.

    Затем нужно пополнить баланс на сервисе. Минимальный лимит – от одного цента, чего прекрасно хватит для теста функций Антикапчи. Помимо этого, вы можете воспользоваться специальным предложением: первая капча будет разгадана бесплатно.

    Дальнейшие капчи будут стоить от 0,001$ (обычные) до 0,002$ (ReCaptcha Гугла). Не забудьте скопировать API ключ , который генерируется в автоматическом режиме. Вы найдёте его на главной странице ресурса.

    Скачайте приложение Antigate на свой ПК (сделать это можно также на официальном сайте) и активируйте режим автоматического разгадывания капчи. Чтобы уточнить статистические данные, обратите внимание на меню. Оно расположено в правом углу страницы.

    Пополнить баланс можно на главной, нажав на кнопку «пополнить счет». Альтернативное решение – откройте пункт «Финансы» в меню и нажмите на «Пополнить счет» уже там. Управлять процессом можно прямо из меню Настроек. Например, чтобы изменить информацию в вашей учётной записи.

    Чтобы работать было комфортнее, пользуйтесь дополнительными инструментами, которые также можно найти в меню. При помощи окна «помощь» вы сможете просмотреть документацию по работе сервиса, а также прочитать новости проекта, найти ответы на какие-либо вопросы по работе Антикапчи.

    Контакты разработчиков

    Если у вас возникли вопросы по работе сайта или приложения, вы всегда сможете написать разработчикам. Официальный адрес Антикапчи — [email protected]

    Также существует несколько профильных форумов, на которых можно посоветоваться с пользователями площадки. Найти их можно, воспользовавшись любой поисковой системой.

    Реферальная система

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

    Субаккаунты могут быть следующими:

    1. Неактивные субаккаунты – зарегистрированные в системе, но не пользующиеся сервисом, не вносящие в него средства.
    2. Активные – прошедшие регистрацию пользователи, но с небольшим числом заказов – не более пятидесяти капчей в неделю.
    3. Делающие расходы – аккаунты, которые заказывают разгадывание от пятидесяти капчей и более еженедельно.
    4. Делающие расходы через приложение – пользователи, также заказывавшие разгадывание капчей (более 50 штук), но уже через специальную утилиту «AppCenter».

    Приглашая новых клиентов, вы можете заработать 10% от рефералов, «делающих расходы», и 5% от «делающих расходы через приложение». Для получения средств вам нужно иметь не менее пяти субаккаунтов с повышенным статусом (активных пользователей, которых вы привлекли на сайт). Сразу после загрузки капчи вам будут перечислены денежные средства в указанном размере.

    Количество приглашаемых рефералов не ограничивается правилами, но реферальных ссылок у одного пользователя может быть не более десяти штук.

    Резюме

    Ресурс «Антикапча» идеально подходит для массовых рассылок и продвижения на различных сайтах. Невысокая стоимость услуг и возможность заработка на рефералах располагают к использованию. Приводя новых пользователей, вы можете экономить на плате за расшифровку капчи.

    Итожа – это вполне доступное и даже недорогое решение для SEO-мастеров и SMM. Чего еще? Разве что только можете посмотреть (по сути, это их основной конкурент).

    Удачи вам! До скорых встреч на страницах блога сайт

    Вам может быть интересно

    CAPTCHA (капча) - что это такое и для чего используется
    FAQ и ЧАВО - что это такое?
    Обратная связь для сайта с помощью скриптов форм на Html и Php, а так же онлайн конструкторов и генераторов
    Радикал - бесплатный фотохостинг с быстрой и простой загрузкой фото через Radikal.ru Что такое бот - цель создания, разновидности программ и примеры использования Как удалить почту и почтовый ящик на Mail.ru, Яндексе и Gmail Bitfun - как заработать сатоши на популярном биткоин-кране Интернет Опрос - чем выделяется InternetOpros среди других платных опросников + 10 секретов увеличения заработка на нем BonusBitcoin - биткоин кран с отличными отзывами Гугл Транслейт - перевод с фото, голосовой ввод, разговорник, оффлайн режим и многое другое

    Мы выпустили новую книгу «Контент-маркетинг в социальных сетях: Как засесть в голову подписчиков и влюбить их в свой бренд».


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

    Кому нужно обходить капчу

    Ее обходят не только спамеры для создания большого количества новых ящиков, комментариев на форумах, страниц в социальных сетях для дальнейшего распространения спама. Защиту нужно обходить и честным компаниям для получения результатов в автоматическом режиме. Например, владельцу сайта для проверки позиций в поисковой системе или ресурсам, занимающимся автоматическим сбором тематической информации.

    Грубый перебор всех вариантов

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

    Как защититься: генерировать варианты автоматически, чтобы их нельзя было предугадать или собрать все возможные ответы. Сейчас это уже не вызывает проблем, буквы и символы собираются автоматически, как и арифметические примеры.

    Получение имени поля

    Как взломать: достаточно взять имя поля капчи из кода и с помощью программы перехватывать его значение, если оно никогда не меняется.

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

    Например, капча хранится в поле Captcha. Тогда очень просто создать программу, которая будет читать значение из него. Подобрать имя можно вручную или использовать базы наиболее популярных, которые хранятся в открытом доступе. Однако, если имя постоянно называется по-иному и не просто словом, а например, последовательностью букв «fghtn» или «qpvbn», то отследить это будет сложнее. И наиболее безопасный вариант: зашифровать эту последовательность.

    Обход капчи с помощью OCR

    OCR - технология распознавания текста для преобразования в цифровой вид, доступный для редактирования. Пример популярной программы - ABBYY FineReader. Из бесплатных, но менее известных: ocropy , . Все что нужно: настроить необходимые параметры и загрузить картинку.

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

    1. Изображение с буквами или цифрами очищается от шумов для четкого распознавания символов.
    2. Оно разбивается на отдельные фрагменты с одним знаком.
    3. Каждый символ сравнивается с оригиналами, заранее загруженными в базу.
    4. В конце выводится итоговое значение.

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

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

    Как защищают капчу от OCR:

    • накладывают на изображение шумы того же цвета, что и основные символы;
    • добавляет лишние знаки и отдельно текстом просят ввести лишь некоторые из них, а не все подряд (как сделает это робот);
    • буквы и цифры располагают на разном уровне;
    • используют уникальное, нестандартное оформление.

    Применяемые меры препятствуют автоматическому вводу символов.

    Написанные скрипты

    Этот способ не является полноценным для обхода. Его используют как вспомогательный, что система OCR могла максимально четко опознать символы.

    Программист пишет с использованием специальных библиотек скрипт, который:

    • предварительно очищает картинку от шума, лишних знаков, фона;
    • работает с цветами, чтобы они не мешали процессу распознавания;
    • обрезает ненужные области, оставляя только знаки;
    • выравнивает текст.

    Использование прокси

    Прокси-сервисы позволяют пользователю находится в сети анонимно. Таким образом, он скрывает свой настоящий IP-адрес, местоположение и другую информацию о себе. Отследить его становится невозможным без специального оборудования, поэтому блокировка по IP не совсем удачна.

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

    Этот способ обхода был придуман одним из первых.

    Как с помощью Google взломать его же капчу

    В 2017 году один разработчик выложил в своем блоге способ обхода reCaptcha от Google, детально описав весь процесс.

    Этот вид капчи отличается от остальных тем, что пользователю показывается изображение, деленное на несколько частей. Его просят указать все фрагменты, на которых изображен предмет X. Он отмечает их галочками, и если все верно, ответ засчитывается. У нее есть также аудио-аналог, когда робот называет цифры, и текстовый с тестом, который решит может только человек.

    Основной алгоритм был следующим. Нужно было скачать аудиофайл и переконвертировать его в формат WAV, который распознает Google Speech Recognition API. В результате он получал цифровую последовательность, которую загружал на сайт и получал готовую капчу. Если попадался именно текстовый вариант, то страница просто обновлялась до тех пор, пока не будет именно аудиоформат.

    1. Ориентируйтесь на соотношение цены и объема работы. Для распознавания нескольких тысяч капч в день выбирают более дорогие варианты программ, способных обрабатывать много информации. Если цели меньше, подойдут онлайн-сервисы, большинство которых бесплатны.
    2. При выборе бесплатного сервиса, проверяйте на наличие дополнительных ограничений. В идеале, их не должно быть. Например, лимиты на распознавание или триал-время.
    3. Если вы останавливаетесь на бирже с исполнителями, проверьте ее репутацию, прочитав отзывы на различных источниках. Некоторые разводят не только исполнителей, но и заказчиков.
    4. Скачивайте программы с проверенных источников. Сейчас на рынке становится меньше программ, их вытесняют серверы, которые не нужно устанавливать на компьютер и работают они круглосуточно.

    Программы и сервисы для распознавания капчи

    Из программ по распознаванию капч можно выделяется CapMonster 2 . Она основана на технологии OCR. Стоимость зависит от количества поток - 1, 5 и 20, и соответственно, 37$, 57$, 97$.

    Основные возможности:

    • высокая производительность - миллионы капч за сутки;
    • большая база поддерживаемых капч;
    • обучение новым типам капч как со стороны разработчиков, так и со стороны пользователя;
    • покупка дополнительных поток для профессионального тарифа.

    Вернуть программу можно в течение 14 дней после покупки, а абонентская плата вносится ежегодно.

    Биржи с исполнителями - универсальное решение. Во-первых, капчи распознаются за естественное время. Роботы работают быстрее человека в несколько раз, поэтому сайт, использующих защиту, увидит по статистике взлом. Но если капчу вводит человек, то аналитика будет в пределах нормы.

    Во-вторых, доступны все виды капч, которые можно распознать человеком. Это не гарантирует 100% обхода, потому что все могут ошибаться.

    В-третьих, это дешево. Обычно до 50 рублей за 1.000 штук, но за сложные может быть и 150.

    Примеры бирж с исполнителями:

    Уточняйте правила работы с сервисами в правилах пользовательского соглашения.

    Подводим итоги

    Программисты могут допускать ошибки из-за невнимательности, из-за недостаточного тестирования либо просто из-за незнания. Хакеры пользуются изъянами в безопасности и находят способы разрушить систему. Создаются специальные программы для автоматического распознавания капчи и сервисы онлайн, которые работают и платно, и бесплатно.

    Масштабное обновление программы XRumer, в котором значительно эволюционировала логика регистрации профилей на самых разных платформах, улучшена работа с платформами Bitrix, Joomla, WordPress Forum, MyBB, VBulletin, XenForo, добавлен механизм модификации отправляемого текста в зависимости от тематики сайта-реципиента (новый макрос #theme), обновлены и увеличены прилагаемые базы - общий объём превысил 8 миллионов сайтов, улучшена работа с HTTPS и Google ReCaptcha-2, и многое другое...

    26 января 2019

    XRumer 16.0.18 + SocPlugin 4.0.63

    Прилагаемые базы проверены и обновлены, общий объём увеличен до 8 (!) миллионов поддерживаемых ресурсов — блогов, форумов, гостевых книг, досок, BBS, CMS, и прочих платформ. База известных тексткапч увеличена более чем на 2000 новых ответов на антибот-вопросы и теперь составляет 324000 тексткапч. Существенно повышена стабильность и скорость работы, оптимизирован расход ресурсов: потолок достигает до 500 и более потоков (в зависимости от режима работы). Улучшена работа с HTTPS. И основное, ключевое улучшение: многократно повышена эффективность рассылок личных сообщений — режим MassPM. Плюс, многие другие улучшения и исправления:)

    14 сентября 2018

    XRumer 16.0.17

    Важное обновление XRumer, существенно оптимизирующее расход ресурсов. Повышена стабильность и скорость работы, увеличен потолок потоков. Теперь проход по многомиллионным базам более комфортен! Также улучшена работа с HTTPS, JavaScript, улучшена работа с платформой Joomla K2, и многое другое...

    05 июля 2018

    Необходимо включить JavaScript для того, чтобы сайт работал корректно

    Распознавание капчи / автоматический ввод капчи

    Наверняка уже почти каждый сталкивался с надписью при регистрации на каком-либо сайте: "Введите число, которое Вы видите" и искаженная картинка. Это капча (CAPTCHA, пиктокод, тикет) — графическая защита, предназначенная для различения людей и программ.

    В процессе своей работы программа XRumer способна распознавать капчи, автоматически скачивая картинку и расшифровывая её. Как показала практика, на расшифровку такого рода капчей уходит не более 1-1,5 секунды, а обычно и того меньше на компьютере с процессором с рабочей частотой 1 ГГц. Траффика на это уходит совсем немного, т.к. такие картинки "весят" не более 3-5 Кб.

    Но и это ещё не всё! Новый XRumer 18.0.1 Elite теперь способен распознавать и обходить даже такие виды капчи, как ReCaptcha и DLE! А общий список распознаваемых типов увеличился более чем вдвое по сравнению с XRumer 5.0:

    И это далеко не все виды, здесь не приведены совсем тривиальные капчи, которые использовались в ранних версиях форумов и до сих пор остались на многих из них. XRumer автоматически распознает тип капчи и использует соответствующий для этого типа алгоритм.

    Есть разные способы для обхода CAPTCHA, которыми защищены сайты. Во-первых, существуют специальные сервисы, которые используют дешевый ручной труд и буквально за $1 предлагают решить 1000 капч. В качестве альтернативы можно попробовать написать интеллектуальную систему, которая по определенным алгоритмам будет сама выполнять распознавание. Последнее теперь можно реализовать с помощью специальной утилиты.

    Решить CAPTCHA

    Распознавание CAPTCHA - задача чаще всего нетривиальная. На изображение необходимо накладывать массу различных фильтров, чтобы убрать искажения и помехи, которыми разработчики желают укрепить стойкость защиты. Зачастую приходится реализовывать обучаемую систему на основе нейронные сетей (это, к слову, не так сложно, как может показаться), чтобы добиться приемлемого результата по автоматизированному решению капч. Чтобы понять, о чем я говорю, лучше поднять архив и прочитать замечательные статьи «Взлом CAPTCHA: теория и практика. Разбираемся, как ломают капчи» и «Подсмотрим и распознаем. Взлом Captcha-фильтров» из #135 и #126 номеров соответственно. Сегодня же я хочу рассказать тебе о разработке TesserCap, которую автор называет универсальной решалкой CAPTCHA. Любопытная штука, как ни крути.

    Первый взгляд на TesserCap

    Что сделал автор программы? Он посмотрел, как обычно подходят к проблеме автоматизированного решения CAPTCHA и попробовал обобщить этот опыт в одном инструменте. Автор заметил, что для удаления шумов с изображения, то есть решения самой сложной задачи при распознавании капч, чаще всего применяются одни и те же фильтры. Получается, что если реализовать удобный инструмент, позволяющий без сложных математических преобразований накладывать фильтры на изображения, и совместить его с OCR-системой для распознавания текста, то можно получить вполне работоспособную программу. Это, собственно, и сделал Гурсев Сингх Калра из компании McAfee. Зачем это было нужно? Автор утилиты решил таким образом проверить, насколько безопасны капчи крупных ресурсов. Для тестирования были выбраны те интернет-сайты, которые являются самыми посещаемыми по версии известного сервиса статистики . Кандидатами на участие в тестировании стали такие монстры, как Wikipedia, eBay, а также провайдер капч reCaptcha.

    Если рассматривать в общих чертах принцип функционирования программы, то он достаточно прост. Исходная капча поступает в систему предварительной обработки изображений, очищающей капчу от всяких шумов и искажений и по конвейеру передающей полученное изображение OCR-системе, которая старается распознать текст на нем. TesserCap имеет интерактивный графический интерфейс и обладает следующими свойствами:

    1. Имеет универсальную систему предварительной обработки изображений, которую можно настроить для каждой отдельной капчи.
    2. Включает в себя систему распознавания Tesseract , которая извлекает текст из предварительно проанализированного и подготовленного CAPTCHA-изображения.
    3. Поддерживает использование различных кодировок в системе распознавания.

    Думаю, общий смысл понятен, поэтому предлагаю посмотреть, как это выглядит. Универсальность утилиты не могла не привести к усложнению ее интерфейса, поэтому окно программы может ввести в небольшой ступор. Так что, перед тем как переходить непосредственно к распознаванию капч, предлагаю разобраться с ее интерфейсом и заложенным функционалом.


    Предварительная обработка изображений и извлечение
    текста из капчи

    About

    Мы не могли не сказать хотя бы пары слов об авторе замечательной утилиты TesserCap. Его зовут Гурсев Сингх Калра. Он работает главным консультантом в подразделении профессиональных услуг Foundstone, которое входит в состав компании McAfee. Гурсев выступал на таких конференциях, как ToorCon, NullCon и ClubHack. Является автором инструментов TesserCap и SSLSmart. Помимо этого, разработал несколько инструментов для внутренних нужд компании. Любимые языки программирования - Ruby, Ruby on Rails и C#. Подразделение профессиональных услуг Foundstone®, в котором он трудится, предлагает организациям экспертные услуги и обучение, обеспечивает постоянную и действенную защиту их активов от самых серьезных угроз. Команда подразделения профессиональных услуг состоит из признанных экспертов в области безопасности и разработчиков, имеющих богатый опыт сотрудничества с международными корпорациями и государственными

    Интерфейс. Вкладка Main

    После запуска программы перед нами предстает окно с тремя вкладками: Main, Options, Image Preprocessing. Основная вкладка содержит элементы управления, которые используются для запуска и остановки теста CAPTCHA-изображения, формирования статистики теста (сколько отгадано, а сколько нет), навигации и выбора изображения для предварительной обработки. В поле для ввода URL-адреса (элемент управления № 1) должен быть указан точный URL-адрес, который веб-приложение использует для извлечения капч. URL-адрес можно получить следующим образом: кликнуть в правой части CAPTCHA-изображения, скопировать или просмотреть код страницы и извлечь URL-адрес из атрибута src тега изображения ..сайт/common/rateit/captcha.asp?. Рядом со строкой адреса находится элемент, задающий количество капч, которые нужно загрузить для тестирования. Так как приложение может одновременно показывать только 12 изображений, в нем предусмотрены элементы управления для постраничного пролистывания загруженных капч. Таким образом, при масштабном тестировании мы сможем пролистывать загруженные капчи и просматривать результаты их распознавания. Кнопки Start и Stop запускают и останавливают тестирование соответственно. После тестирования нужно оценить результаты распознавания изображений, отметив каждый из них как корректный или некорректный. Ну и последняя, наиболее значимая функция служит для передачи любого изображения в систему предварительной обработки, в которой задается фильтр, удаляющий с изображения шумы и искажения. Чтобы передать картинку в систему предварительной обработки, надо щелкнуть на требуемом изображении правой кнопкой мыши и в контекстном меню выбрать пункт Send To Image Preprocessor.

    Интерфейс. Вкладка Options

    Вкладка опций содержит различные элементы управления для конфигурирования TesserCap. Здесь можно выбрать OCR-систему, задать параметры веб-прокси, включить переадресацию и предварительную обработку изображений, добавить пользовательские HTTP-заголовки, а также указать диапазон символов для системы распознавания: цифры, буквы в нижнем регистре, буквы в верхнем регистре, специальные символы.

    Теперь о каждой опции поподробней. Прежде всего, можно выбрать OCR-систему. По умолчанию доступна только одна - Tesseract-ORC, так что заморачиваться с выбором тут не придется. Еще одна очень интересная возможность программы - выбор диапазона символов. Возьмем, например, капчу с сайт - видно, что она не содержит ни одной буквы, а состоит только из цифр. Так зачем нам лишние символы, которые только увеличат вероятность некорректного распознавания?. Но что если выбрать Upper Case? Сможет ли программа распознать капчу, состоящую из заглавных букв любого языка? Нет, не сможет. Программа берет список символов, используемых для распознавания, из конфигурационных файлов, находящихся в \Program Files\Foundstone Free Tools\TesserCap 1.0\tessdata\configs. Поясню на примере: если мы выбрали опции Numerics и Lower Case, то программа обратится к файлу lowernumeric, начинающемуся с параметра tesseditchar whitelist. За ним следует список символов, которые будут использоваться для решения капчи. По умолчанию в файлах содержатся только буквы латинского алфавита, так что для распознавания кириллицы надо заменить или дополнить список символов.

    Теперь немного о том, для чего нужно поле Http Request Headers. Например, на некоторых веб-сайтах нужно залогиниться, для того чтобы увидеть капчу. Чтобы TesserCap смогла получить доступ к капче, программе необходимо передать в запросе HTTP такие заголовки, как Accept, Cookie и Referrer и т. д. Используя веб-прокси (Fiddler, Burp, Charles, WebScarab, Paros и т. д.), можно перехватить посылаемые заголовки запроса и ввести их в поле ввода Http Request Headers. Еще одна опция, которая наверняка пригодится, - это Follow Redirects. Дело в том, что TesserCap по умолчанию не следует переадресации. Если тестовый URL-адрес должен следовать переадресации для получения изображения, нужно выбрать эту опцию.

    Ну и осталась последняя опция, включающая/отключающая механизм предварительной обработки изображений, который мы рассмотрим далее. По умолчанию предварительная обработка изображений отключена. Пользователи сначала настраивают фильтры предварительной обработки изображений согласно тестируемым CAPTCHA-изображениям и затем активируют этот модуль. Все CAPTCHA-изображения, загружаемые после включения опции Enable Image Preprocessing, проходят предварительную обработку и уже затем передаются в OCR-систему Tesseract для извлечения текста.

    Интерфейс. Вкладка Image Preprocessing

    Ну вот мы и добрались до самой интересной вкладки. Именно тут настраиваются фильтры для удаления с капч различных шумов и размытий, которые стараются максимально усложнить задачу системе распознавания. Процесс настройки универсального фильтра предельно прост и состоит из девяти этапов. На каждом этапе предварительной обработки изображения его изменения отображаются. Кроме того, на странице имеется компонент проверки, который позволяет оценить правильность распознавания капчи при наложенном фильтре. Рассмотрим подробно каждый этап.

    Этап 1. Инверсия цвета

    На данном этапе инвертируются цвета пикселей для CAPTCHA-изображений. Код, представленный ниже, демонстрирует, как это происходит:

    For(each pixel in CAPTCHA) { if (invertRed is true) new red = 255 – current red if (invertBlue is true) new blue = 255 – current blue if (invertGreen is true) new green = 255 – current green }

    Инверсия одного или нескольких цветов часто открывает новые возможности для проверки тестируемого CAPTCHA-изображения.

    Этап 2. Изменение цвета

    На данном шаге можно изменить цветовые компоненты для всех пикселей изображения. Каждое числовое поле может содержать 257 (от  1 до 255) возможных значений. Для RGB-компонентов каждого пикселя в зависимости от значения в поле выполняются следующие действия:

    1. Если значение равно -1, соответствующий цветовой компонент не меняется.
    2. Если значение не равно -1, все найденные компоненты указанного цвета (красный, зеленый или синий) меняются в соответствии с введенным в поля значением. Значение 0 удаляет компонент, значение 255 устанавливает его максимальную интенсивность и т. д.

    Этап 3. Градация серого (Шкала яркости)

    На третьем этапе все изображения конвертируются в изображения в градациях серого. Это единственный обязательный этап преобразования изображений, который нельзя пропустить. В зависимости от выбранной кнопки выполняется одно из следующих действий, связанных с цветовой составляющей каждого пикселя:

    1. Average -> (Red + Green + Blue)/3.
    2. Human -> (0.21 * Red + 0.71 * Green + 0.07 * Blue).
    3. Average of minimum and maximum color components -> (Minimum (Red + Green + Blue) + Maximum (Red + Green + Blue))/2.
    4. Minimum -> Minimum (Red + Green + Blue).
    5. Maximum -> Maximum (Red + Green + Blue).

    В зависимости от интенсивности и распределения цветовой составляющей CAPTCHA любой из этих фильтров может улучшить извлекаемое изображение для дальнейшей обработки.


    Этап 4. Сглаживание и резкость

    Чтобы усложнить извлечение текста из CAPTCHA-изображений, в них добавляют шум в форме однопиксельных или многопиксельных точек, посторонних линий и пространственных искажений. При сглаживании изображения возрастает случайный шум, для устранения которого потом используются фильтры Bucket или Cutoff. В числовом поле Passes следует указать, сколько раз нужно применить соответствующую маску изображения перед переходом на следующий этап. Давай рассмотрим компоненты фильтра для сглаживания и повышения резкости. Доступны два типа масок изображения:

    1. Фиксированные маски. По умолчанию TesserCap имеет шесть наиболее популярных масок изображения. Эти маски могут сглаживать изображение или повышать резкость (преобразование Лапласа). Изменения отображаются сразу же после выбора маски с помощью соответствующих кнопок.
    2. Пользовательские маски изображения. Пользователь также может настроить пользовательские маски обработки изображений, вводя значения в числовые поля и нажимая кнопку Save Mask. если сумма коэффициентов в этих окошках меньше нуля, выдается ошибка и маска не применяется. При выборе фиксированной маски кнопку Save Mask использовать не требуется.

    Этап 5. Вводим оттенки серого

    На этом этапе обработки изображения его пиксели могут быть окрашены в широкий диапазон оттенков серого. Этот фильтр отображает распределение градаций серого в 20 бакетах (bucket)/диапазонах. Процент пикселей, окрашенных в оттенки серого в диапазоне от 0 до 12, указан в бакете (bucket) 0, процент пикселей, окрашенных в оттенки серого в диапазоне от 13 до 25, - в бакете (bucket) 1 и т. д. Пользователь может выбрать одно из следующих действий для каждого диапазона значений, соответствующих оттенкам серого:

    1. Оставить без изменения (Leave As Is).
    2. Заменить белым (White).
    3. Заменить черным (Black).

    Благодаря этим опциям можно контролировать различные диапазоны оттенков серого, а также сокращать/удалять шум путем, меняя оттенки серого в сторону белого или черного.

    Этап 6. Настройка отсечения (cutoff)

    Этот фильтр строит график зависимости значения уровня серого от частоты встречаемости и предлагает выбрать отсечение. Принцип работы отсекающего фильтра показан ниже в псевдокоде:

    If (pixel’s grayscale value <= Cutoff) pixel grayscale value = (0 OR 255) -> в зависимости, от того какая опция выбрана (<= или => : Set Every Pixel with value <=/=> Threshold to 0. Remaining to 255)

    График показывает подробное распределение пикселей CAPTCHA по цветам и помогает удалить помехи с помощью отсечения значений уровня серого.

    Этап 7: Обтесывание (chopping)

    После применения сглаживающего, отсекающего, bucket- и других фильтров CAPTCHA-изображения все еще могут быть зашумлены однопиксельными или многопиксельными точками, посторонними линиями и пространственными искажениями. Принцип работы фильтра обтесывания заключается в следующем: если количество смежных пикселей, окрашенных в данный оттенок серого, меньше величины в числовом поле, фильтр обтесывания присваивает им значение 0 (черный) или 255 (белый) по выбору пользователя. При этом CAPTCHA анализируется как в горизонтальном, так и в вертикальном направлении.

    Этап 8: Изменение ширины границы

    Как утверждает автор утилиты, в ходе первоначальных исследований и разработки TesserCap он неоднократно отмечал, что, когда CAPTCHA-изображения имеют толстую граничную линию и ее цвет отличается от основного фона CAPTCHA, некоторые системы OCR не могут распознать текст. Данный фильтр предназначен для обработки граничных линий и их изменения. Граничные линии с шириной, которая указана в числовом поле, окрашиваются в черный или белый по выбору пользователя.

    Этап 9: Инверсия серого оттенка

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

    For(each pixel in CAPTCHA) new grayscale value = 255 – current grayscale value

    Этап 10: Проверка распознавания капчи

    Цель данного этапа - передать предварительно обработанное CAPTCHA-изображение OCR-системе для распознавания. Кнопка Solve берет изображение после фильтра инверсии серого, отправляет в OCR-систему для извлечения текста и отображает возвращенный текст в графическом интерфейсе. Если распознанный текст совпадает с текстом на капче, значит, мы правильно задали фильтр для предварительной обработки. Теперь можно перейти на вкладку опций и включить опцию предварительной обработки (Enable Image Preprocessing) для обработки всех последующих загруженных капч.

    Распознаем капчи

    Ну что ж, пожалуй, мы рассмотрели все опции этой утилиты, и теперь неплохо было бы протестировать какую-нибудь капчу на прочность..


    Результат анализа капчи сайт с предварительной
    обработкой изображений. Судя по результатам, фильтр
    подобрать не удалось

    Итак, запускаем утилиту и идем на сайт журнала. Видим список свежих новостей, заходим в первую попавшуюся и пролистываем до места, где можно оставить свой комментарий. Ага, коммент так просто не добавить (еще бы, а то бы давно уже всё заспамили) - нужно вводить капчу. Ну что ж, проверим, можно ли это автоматизировать. Копируем URL картинки и вставляем его в адресную строку TesserCap. Указываем, что нужно загрузить 12 капч, и нажимаем Start. Программа послушно загрузила 12 картинок и попыталась их распознать. К сожалению, все капчи оказались либо не распознаны, о чем свидетельствует надпись -Failed- под ними, либо распознаны неправильно. В общем, неудивительно, так как посторонние шумы и искажения не были удалены. Этим мы сейчас и займемся. Жмем правой кнопкой мыши на одну из 12 загруженных картинок и отправляем ее в систему предварительной обработки (Send To Image Preprocessor). Внимательно рассмотрев все 12 капч, видим, что они содержат только цифры, поэтому идем на вкладку опций и указываем, что распознавать нужно только цифры (Character Set = Numerics). Теперь можно переходить на вкладку Image Preprocessing для настройки фильтров. Сразу скажу, что поигравшись с первыми тремя фильтрами («Инверсия цвета», «Изменение цвета», «Градация серого») я не увидел никакого положительного эффекта, поэтому оставил там всё по дефолту. Я выбрал маску Smooth Mask 2 и установил количество проходов равным одному. Фильтр Grayscale buckets я пропустил и перешел сразу к настройке отсечения. Выбрал значение 154 и указал, что те пиксели, которых меньше, нужно установить в 0, а те, которых больше, в 255. Чтобы избавиться от оставшихся точек, включил chopping и изменил ширину границы до 10. Последний фильтр включать не было смысла, поэтому я сразу нажал на Solve.

    На капче у меня было число 714945, но программа распознала его как 711435. Это, как видишь, совершенно неверно. В конечном итоге, как я ни бился, нормально распознать капчу у меня так и не получилось. Пришлось экспериментировать с pastebin.com, которые без проблем удалось распознать. Но если ты окажешься усидчивее и терпеливее и сумеешь получить корректное распознавание капч с сайт, то сразу заходи на вкладку опций и включай предварительную обработку изображений (Enable Image Preprocessing). Затем переходи на Main и, кликнув на Start, загружай свежую порцию капч, которые теперь будут предварительно обрабатываться твоим фильтром. После того, как программа отработает, отметь корректно/некорректно распознанные капчи (кнопки Mark as Correct/Mark as InCorrect). С этого момента можно посматривать сводную статистику по распознаванию с помощью Show Statistics. В общем-то, это своеобразный отчет о защищенности той или иной CAPTCHA. Если стоит вопрос о выборе того или другого решения, то с помощью TesserCap вполне можно провести свое собственное тестирование.

    Результат проверки CAPTCHA на популярных сайтах

    Веб-сайт и доля распознанных капч:

    • Wikipedia > 20–30 %
    • Ebay > 20–30 %
    • reddit.com > 20–30 %
    • CNBC > 50 %
    • foodnetwork.com > 80–90 %
    • dailymail.co.uk > 30 %
    • megaupload.com > 80 %
    • pastebin.com > 70–80 %
    • cavenue.com > 80 %

    Заключение

    CAPTCHA-изображения являются одним из самых эффективных механизмов по защите веб-приложений от автоматизированного заполнения форм. Однако слабые капчи смогут защитить от случайных роботов и не устоят перед целенаправленными попытками их решить. Как и криптографические алгоритмы, CAPTCHA-изображения, тщательно протестированные и обеспечивающие высокий уровень безопасности, являются самым лучшим способом защиты. На основе статистики, которую привел автор программы, я выбрал для своих проектов reCaptcha и буду рекомендовать ее всем своим друзьям - она оказалось самой стойкой из протестированных. В любом случае не стоит забывать, что в Сети есть немало сервисов, которые предлагают полуавтоматизированное решение CAPTCHA. Через специальный API ты передаешь сервису изображение, а тот через непродолжительное время возвращает решение. Решает капчу реальный человек (например, из Китая), получая за это свою копеечку. Тут уже никакой защиты нет. 🙂

    Понравилась статья? Поделитесь с друзьями!