Human Emulator
Автоматизация работы в браузере
Бесплатная онлайн консультация по возможностям программы.
Распознавание капчи с помощью сервисов антикапчи и взаимодействие с программой Human Emulator
- Распознование капч с помощью сервисов распознования и встроенными инструментами работает и в бесплатной версии программы Human Emulator FREE
- Цитата Wikipedia
— CAPTCHA
(от англ. Completely Automated Public Turing test to tell C omputers and Humans Apart — полностью автоматизированный публичный тест Тьюринга для различия компьютеров и людей) — товарный знак Университета Карнеги — Меллона, в котором разработали компьютерный тест, используемый для того, чтобы определить, кем является пользователь системы: человеком или компьютером.
Все чаще в интернете при работе по автоматизации,регистрации,добавлении сообщений, комментариев, объявлений и так далее, мы сталкиваемся с тестом распознования, кем является пользователь системы: человеком или компьютером. Данный компьютерный тест называет «CAPTCHA» и зачастую он распространятся с каждым днем все больше и больше, соответственно и алгоритм и сложность данного теста постоянно усовершенствуется, чтобы уменьшить уязвимость обхода теста и его распознования. - В итоге на данный момент мы имеем различные виды капч, основные, которые чаще встречаются я опишу ниже:
Это один из самых первых и распространенных видов защиты от спама. Обычно его ставят для регистрации на форумах и сайтах. Для блогов, я бы не советовал его ставить, так как капча довольно таки сложная, и некоторые пользователи просто из-за лени ее распознавать и вводить, просто не захотят оставлять комментарий.
Очень похожая на первый вид капчи, но здесь рядом с картинкой выводится примечание, например «вводить только красные символы», или «вводить только цифры» или «вводить только буквы». Тем самым если у спамеров есть робот, который умеет распознавать символы с картинки, то он логически введет все символы, а не именно те, что требуются в примечании.
Так же как и первые 2 вида, данный плагин, выводит капчу в виде цифр и букв, но здесь есть возможность прослушать, то что изображено на картинке.
Еще одна разновидность капчи с выводом символов, здесь так же есть возможность воспроизведения символов на картинке. Обычно форма с капчей состоит из двух слов. Этот вид, тоже больше подходит как капча на сайт, где требуется регистрация, чем капча на блог, где нужно просто оставить комментарий.
Капча выводит различные символы, их нельзя прослушать, но если они не видны, то нажав на соседнюю кнопочки символы на картинке можно заменить. При этом не обновляя страницу, то есть не теряя написанного комментария в поле.
Здесь на форме с капчей выводятся два числа, но вводить надо не их, а их сумму. Опять же если робот сможет распознать цифры на картинке,то сложить их и вписать в поле их сумму, для робота уже проблематично.
Это довольно таки забавная и простая капча для человека, но трудная для робота. Здесь просто надо передвигать ползунок под картинкой так, что бы картинки расположились вертикально.
Тоже довольно таки интересная форма с капчей, и в тоже время очень сложная для роботов. Здесь выводятся несколько картинок, и надо выбрать из них одну, которая написана в примечании.
Этот вид капчи является одним из самых простых и удобных способов защиты от спама. Здесь просто нужно выбрать человечка с поднятой рукой.
Это самая простая капча, для блогов. Здесь, как вы видите, что бы подтвердить то, что вы человек, а не робот, вам просто нужно поставить галочку.
он же $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 и есть ваш текст с капчи.
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
Ниже приведены ссылки на описание объектов содержащих функционал, позволяющий воспользоваться API сервисов для распознования капч.
http://humanemulator.net/objects/WEB/anticaptcha.php
Взломщик captcha на Python
Когда я разрабатывал набор скриптов для взлома, у меня не было никаких знаний об используемых алгоритмах при обработке изображений. Только спустя какое-то время я занялся изучением этого.
Когда я начинал, я предполагал примерно следующее:
- Изображение представляет собой матрицу с пикселями, расположенных в отдельных ячейках
- Цветное изображение имеет значения красного, зеленого и синего цветов для каждого пикселя (RGB). А черно-белое изображение имеет одно значение, которое варьируется от 0 до 255
- Каждый символ в captca четко определен
Итак, вот как выглядит страничка входа на университетский сайт:
Начнем с моих замечаний по поводу самой картинки капчи (именно на этом сайте):
- Расстояние между символами было везде одинаковым
- На изображении много рассеянных темных пикселей и линий, проходящих через символы на изображении
- Количество символов в капче всегда равно 6 и это изображение в градациях черного
Затем я загрузил одно такое изображение с капчи и с помощью этого инструмента визуализировал изображение в двоичном формате (0 для черного и 1 для белого пикселя).
Мои предположения подтвердились! На изображении размером 45х180 каждому символу выделено по 30 пикселей, что делает их равномерно распределенными! Таким образом, первым моим шагом стало:
- Обрезать изображение капчи на 6 равномерных частей, по 30 пикселей в ширину каждая.
Я выбрал Python в качестве языка прототипирования, так как его библиотеки проще всего использовать и реализовывать. Затем я без труда нашел подходящую библиотеку — PIL. (прим. ред.: Python Imaging Library — библиотека языка Python, предназначенная для работы с растровой графикой). Я решил использовать модуль Image, поскольку моя операция ограничивалась только обрезкой и загрузкой изображения в виде матрицы.
Итак, согласно документации, синтаксис для обрезки изображения следующий:
Изображение, которое будет получено в итоге:
Я написал простой скрипт и завернул все это дело в цикл, который извлекает 500 изображений captcha с сайта и сохраняет все обрезанные символы в папку.
Теперь переходим к моему третьему наблюдению — каждый символ четко определен. Чтобы «очистить» отрезанный символ (удалить ненужные строки и точки), я использовал следующий метод:
- Все пиксели в символе являются черными (0). Я использовал простую логику — если пиксель не совсем черный — он белый. Следовательно, для каждого пикселя, который имеет значение больше 0, я переназначил значение до 255 (сделал белым). Изображение преобразуется в матрицу 45×180 с использованием функции load(), а затем обрабатывается.
Для проверки моего метода, я применил код к оригинальному изображению:
Как вы можете видеть, все пиксели, которые были не совсем черными, были удалены. Включая темные линии, которые проходят через все изображение. Только после того, как проект был завершен, я узнал, что вышеупомянутый метод называется порогом обработки изображений.
Теперь поговорим о следующем моем замечании,точнее о том, что на изображении много рассеянных темных пикселей и линий, проходящих через символы на изображении. Создадим специальный цикл, который будет проверять следующее: если соседний пиксель белый и пиксель, противоположный тому соседнему пикселю тоже белый, а центральный пиксель черный, то по условию цикла, центральный пиксель также станет белым!
Что получилось в итоге:
Итак, как вы видите, на изображении остались только необходимые нам символы! Хотя может показаться, что некоторые из символов потеряли несколько своих пискелей, тем не менее, они послужат отличной “базой” для их сравнения с другими изображениями. В конце концов, главная причина, по которой мы так оптимизируем изображение, состоит в том, чтобы создать наиболее точное изображения для каждого возможного символа капчи.
Я применил описанный выше цикл ко всем обрезанным символам и сохранил их в отдельной папке. Следующей задачей было назвать каждый символ из списка «ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789» и назначить ему соответствующее изображение. Когда я закончил, получился следующий “скелет”:
Я использовал несколько различных скриптов, для того чтобы отобрать наилучшие изображения среди всех изображений символов. Изображение, с наименьшим количеством темных пикселей наилучшим образом подходит для изображений нашего “скелета”. Таким образом, получилось два скрипта:
- Один для группировки изображений, отсортированных по символу (ограничения: нет темных пикселей и совпадений с уже имеющимися >= 90–95%)
- Второй для отбора лучшего изображения для каждого символа
Таким образом, у нас уже были созданы изображения библиотеки. Затем мы преобразовали их в пиксельные матрицы и сохранили в виде файла JSON.
И наконец, вот алгоритм, который решает/взламывает любое новое изображение captcha:
- Каждый символ в новом изображении captcha, я принудительно прогонял через изображения JSON, которые я сгенерировал. Сходство рассчитывается на основе расположения темных пикселей на изображении.
Сам алгоритм взлома был примерно следующим:
Например, если пиксель был черным и находился в условных позициях 4 и 8 на изображении капчи и в нашем изображении “скелета” находилось совпадение, то счет увеличивался на 1. Этот подсчет сравнения количества темных пикселей в изображении скелета используется для вычисления итогового совпадения в процентах.
Затем выбирается символ(изображение символа), который имеет наивысший процент совпадения:
Как распознать и обойти капчу онлайн
Капча — тест на человечность, используемый для защиты ресурса от спама и роботов. Но честным людям она мешает, например, проверить позиции сайта. Поэтому ее взламывают с помощью инструментов, основанных на слабых местах технологии. Сегодня расскажем, как противостоять капче.
Кому нужно обходить капчу
Ее обходят не только спамеры для создания большого количества новых ящиков, комментариев на форумах, страниц в социальных сетях для дальнейшего распространения спама. Защиту нужно обходить и честным компаниям для получения результатов в автоматическом режиме. Например, владельцу сайта для проверки позиций в поисковой системе или ресурсам, занимающимся автоматическим сбором тематической информации.
Грубый перебор всех вариантов
Еще когда создавались капчи, вопросы и ответы придумывали вручную и их было ограниченное количество. Это значит, что побыв некоторое время на сайте и собрав все возможные ответы, их можно было собрать в базу данных и использовать для взлома.
Как защититься: генерировать варианты автоматически, чтобы их нельзя было предугадать или собрать все возможные ответы. Сейчас это уже не вызывает проблем, буквы и символы собираются автоматически, как и арифметические примеры.
Получение имени поля
Как взломать: достаточно взять имя поля капчи из кода и с помощью программы перехватывать его значение, если оно никогда не меняется.
Как защититься: использовать динамическое имя поля, то есть каждый раз изменяемое. Оно обязательно должно быть зашифровано, чтобы другие программы не могли его считать и получить ответ. Ключ к расшифровке будет находиться на сервере, получить его нельзя без доступа к серверному скрипту.
Например, капча хранится в поле Captcha. Тогда очень просто создать программу, которая будет читать значение из него. Подобрать имя можно вручную или использовать базы наиболее популярных, которые хранятся в открытом доступе. Однако, если имя постоянно называется по-иному и не просто словом, а например, последовательностью букв «fghtn» или «qpvbn», то отследить это будет сложнее. И наиболее безопасный вариант: зашифровать эту последовательность.
Обход капчи с помощью OCR
OCR — технология распознавания текста для преобразования в цифровой вид, доступный для редактирования. Пример популярной программы — ABBYY FineReader. Из бесплатных, но менее известных: gocr. Все что нужно: настроить необходимые параметры и загрузить картинку.
Метод также используется для распознавания капчи онлайн. Программа считывает картинку и вводит значения в поле. Как работает алгоритм внутри:
- Изображение с буквами или цифрами очищается от шумов для четкого распознавания символов.
- Оно разбивается на отдельные фрагменты с одним знаком.
- Каждый символ сравнивается с оригиналами, заранее загруженными в базу.
- В конце выводится итоговое значение.
Для защиты от взлома с помощью OCR, создаются специальные капчи с большим количеством шума, непонятными символами. Знаки могут быть так искажены, что даже человек с первого раза не найдет правильный ответ.
Для обхода нужно найти разные оригиналы, чтобы в большинстве случаев система смогла правильно определить символ. Нужны разные шрифты и кодировки.
Как защищают капчу от OCR:
- накладывают на изображение шумы того же цвета, что и основные символы;
- добавляет лишние знаки и отдельно текстом просят ввести лишь некоторые из них, а не все подряд (как сделает это робот);
- буквы и цифры располагают на разном уровне;
- используют уникальное, нестандартное оформление.
Применяемые меры препятствуют автоматическому вводу символов.
Написанные скрипты
Этот способ не является полноценным для обхода. Его используют как вспомогательный, что система OCR могла максимально четко опознать символы.
Программист пишет с использованием специальных библиотек скрипт, который:
- предварительно очищает картинку от шума, лишних знаков, фона;
- работает с цветами, чтобы они не мешали процессу распознавания;
- обрезает ненужные области, оставляя только знаки;
- выравнивает текст.
Далее изображение отправляется на распознавание другими методами.
Использование прокси
Прокси-сервисы позволяют пользователю находится в сети анонимно. Таким образом, он скрывает свой настоящий IP-адрес, местоположение и другую информацию о себе. Отследить его становится невозможным без специального оборудования, поэтому блокировка по IP не совсем удачна.
Для обхода нужно иметь доступ к базам прокси-сервисов. Они могут быть как бесплатными, там и распространяться коммерчески на закрытых сайтах. Основной алгоритм состоит в постоянной смене IP. В этом случае сайт может и не выдавать капчу, потому что одни и те же действия совершаются разными адресами.
Этот способ обхода был придуман одним из первых.
Как с помощью Google взломать его же капчу
В 2017 году один разработчик выложил в своем блоге способ обхода reCaptcha от Google, детально описав весь процесс.
Этот вид капчи отличается от остальных тем, что пользователю показывается изображение, деленное на несколько частей. Его просят указать все фрагменты, на которых изображен предмет X. Он отмечает их галочками, и если все верно, ответ засчитывается. У нее есть также аудио-аналог, когда робот называет цифры, и текстовый с тестом, который решит может только человек.
Основной алгоритм был следующим. Нужно было скачать аудиофайл и переконвертировать его в формат WAV, который распознает Google Speech Recognition API. В результате он получал цифровую последовательность, которую загружал на сайт и получал готовую капчу. Если попадался именно текстовый вариант, то страница просто обновлялась до тех пор, пока не будет именно аудиоформат.
Рекомендации по выбору инструментов
- Ориентируйтесь на соотношение цены и объема работы. Для распознавания нескольких тысяч капч в день выбирают более дорогие варианты программ, способных обрабатывать много информации. Если цели меньше, подойдут онлайн-сервисы, большинство которых бесплатны.
- При выборе бесплатного сервиса, проверяйте на наличие дополнительных ограничений. В идеале, их не должно быть. Например, лимиты на распознавание или триал-время.
- Если вы останавливаетесь на бирже с исполнителями, проверьте ее репутацию, прочитав отзывы на различных источниках. Некоторые разводят не только исполнителей, но и заказчиков.
- Скачивайте программы с проверенных источников. Сейчас на рынке становится меньше программ, их вытесняют серверы, которые не нужно устанавливать на компьютер и работают они круглосуточно.
Программы и сервисы для распознавания капчи
Из программ по распознаванию капч можно выделяется CapMonster 2. Она основана на технологии OCR. Стоимость зависит от количества поток — 1, 5 и 20, и соответственно, 37$, 57$, 97$.
- высокая производительность — миллионы капч за сутки;
- большая база поддерживаемых капч;
- обучение новым типам капч как со стороны разработчиков, так и со стороны пользователя;
- покупка дополнительных поток для профессионального тарифа.
Вернуть программу можно в течение 14 дней после покупки, а абонентская плата вносится ежегодно.
Биржи с исполнителями — универсальное решение. Во-первых, капчи распознаются за естественное время. Роботы работают быстрее человека в несколько раз, поэтому сайт, использующих защиту, увидит по статистике взлом. Но если капчу вводит человек, то аналитика будет в пределах нормы.
Во-вторых, доступны все виды капч, которые можно распознать человеком. Это не гарантирует 100% обхода, потому что все могут ошибаться.
В-третьих, это дешево. Обычно до 50 рублей за 1.000 штук, но за сложные может быть и 150.
Примеры бирж с исполнителями:
Уточняйте правила работы с сервисами в правилах пользовательского соглашения.
Подводим итоги
Программисты могут допускать ошибки из-за невнимательности, из-за недостаточного тестирования либо просто из-за незнания. Хакеры пользуются изъянами в безопасности и находят способы разрушить систему. Создаются специальные программы для автоматического распознавания капчи и сервисы онлайн, которые работают и платно, и бесплатно.