Содержание

Как работает индустрия по распознаванию CAPTCHA / Хабр

Ни одна CAPTCHA не выстоит в противостоянии с армией низкооплачиваемых юзеров, которые готовы сутками распознавать «каптчи» Google и Myspace за скромное вознаграждение $2 за 1000 картинок. В Индии сформировалась целая индустрия «дата-процессинга», которая специализируется именно на этом, там работают тысячи и тысячи индусов.

Эти люди сидят за дисплеями и решают «каптчи» в реальном режиме времени. Их рабочий интерфейс выглядит примерно так.


Подробности о тонкостях бизнеса таких фирм опубликовал Данчо Данчев в блоге ZDNet Zero Day. Их бизнес процветает. Более того, в последнее время отмечаются признаки консолидации крупнейших игроков на этом рынке. Они начинают совместно разрабатывать новые рабочие инструменты, предпринимают шаги по снижению оплаты труда и даже начинают предоставлять бизнес по франшизе зарубежным партнёрам.

У них уже есть стандартный веб-инструментарий, они начали публиковать API и запустили тысячи прокси-серверов, чтобы вывести своё дело на реально промышленные масштабы.

Например, несколько франшиз в Бангладеше имеют общий штат из 1000 сотрудников (этих «леммингов» ищут через интернет, в том числе в странах СНГ) и гарантируют взлом 250 000 «капчей» в сутки по цене $2 за тысячу. Некоторые фирмы гарантируют заказчикам точность распознавания 90% и максимальную скорость 10 секунд на каждое изображение.

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

Больше скриншотов в лучшем разрешении можно найти здесь.

Распознавание KCaptсha | Капча | IntSystem.org

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

Когда то давным-давно (наверное полгода-год назад) я обещал опубликовать эту статью. И вот наконец — свершилось! Я ее публикую 🙂

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

Так kcaptcha — довольно известная реализация капчи на PHP, гуглится на первой странице по запросу «капча», и выглядит следующим образом:

2

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

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

Содержание

Введение
1) Приведение к черно белому виду
2) Выделение фрагмента с кодом
3) Предварительная обработка
4) Разбиение картинки на фрагменты
5) Поиск ключевых узлов
6) Сравнение с базой масок
Заключение

Итак, поехали… (далее очень много букаф и картинок)

Введение

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

Весь алгоритм состоит из следующих шагов:

  1. Приведение картинки к черно белому виду
  2. Выделение фрагмента с кодом из всей картинки
  3. Предварительная обработка
  4. Разбиение картинки на отдельные фрагменты с отдельными цифрами
  5. Поиск «ключевых» точек (узлов) на каждом фрагменте
  6. Сопоставление масок ключевых узлов с имеющимися в базе

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

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

В качестве примера возьмем следующую капчу:

(Здесь и далее картинка увеличена в два раза для наглядности)

1) Приведение к черно белому виду

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

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

При этом естественно закрашивать стоит с учетом небольшой погрешности, в пару десятков единиц для каждого канала цвета. То есть любой цвет от #FFFFFF до #EBEBEB должен закраситься как фоновой.

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

2) Выделение фрагмента с кодом

Также является довольно простым шагом в данном алгоритме. Для определения границ слева и справа

kcaptcha_1_3

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

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

Для определения границ сверху и снизу алгоритм должен анализировать уже соответственно строки, в основном принцип тот же.

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

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

К примеру, рассмотрим поиск левой границы картинки. Для начала прикидываем ее возможное «расположение», логично будет предположить, что она может находиться от первого столбца, до столбца посередине (конечно в реальности есть смысл сузить стартовый диапазон, но это всего лишь демонстрации оптимизации):

kcaptcha_1_4

Анализируем средний столбец в этом диапазоне:

И так как данный столбец уже содержит черные пиксели, значит граница текста находится левее анализируемого столбца:

Следующий шаг сузит диапазон поиска в два раза до такого:

kcaptcha_1_7

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

В общем, так или иначе, в конце данного шага вы должны получить следующую картинку:

kcaptcha_1_8

3) Предварительная обработка

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

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

Для этого проходим все черные точки, которые расположены как бы «сверху»:

Распознавание KCaptcha

И если представить то, что обведено красным на данном рисунке в виде отдельного графика,

kcaptcha_1_10

то локальными максимумами данного графика будут являться вершины цифр, т.е. следующие точки:

kcaptcha_1_11

Точно такие же точки мы ищем и снизу картинки:

kcaptcha_1_12

И в итоге получаем те линии, от которых мы сможем рассчитать степень кривизны по вертикали. Если «растянуть» за эти точки изображение до его границ, мы получим следующее:

kcaptcha_1_13

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

4) Разбиение картинки на фрагменты

Один из самых сложных и ответственных шагов в алгоритме.

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

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

Соответственно локальные минимумы ищем как сверху:

kcaptcha_2_1

Вот так будет выглядеть график:

kcaptcha_2_2

Так и снизу:

kcaptcha_2_3

И соответственно график:

kcaptcha_2_4

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

kcaptcha_2_5

Этот метод будет работать идеально для любых шрифтов, в которых верхняя и нижняя часть символов имеет скругление. Либо на всех остальных шрифтах и надписях, в которых есть хоть какой-нибудь отступ между символами. Хотя конечно такой метод может давать ошибки:

kcaptcha_2_6

(здесь отрезается лишняя часть нуля и лишняя часть четверки)

Также следует учесть ситуации, когда количество «минимумов» сверху и снизу не совпадает. В таких случаях  надо пытаться дорисовывать недостающие точки минимумов по известным точкам с одной из сторон. К сожалению, пример не могу привести, но, я думаю, смысл понятен.

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

В исходной капче (kcaptcha), в самый высокий символ – 27 пикселей, а самый широкий – 17 пикселей. Следовательно, изменять размер каждого фрагмента стоит именно до этой ширины и высоты (растягивая или уменьшая исходный фрагмент).

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

kcaptcha_2_9

5) Поиск ключевых узлов

Теперь самая сложная и ответственная часть. Этот метод был разработан мной, но на данный момент пока не имеет практической реализации. Все остальные методы: сравнение с маской, нейронные сети – на данной капче работать не будут из-за довольно сильных искажений.

5.1) Теория

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

  1. kcaptcha_3_1 — Быть фоновой
  2. kcaptcha_3_2 — Лежать на линии
  3. kcaptcha_3_3 — Быть «концом» линии
  4. kcaptcha_3_4 — Быть вершиной угла (острого или тупого)
  5. kcaptcha_3_5 — Лежать на примыкании еще одной линии
  6. kcaptcha_3_6 — Быть центром пересечения двух линий

Остальные случаи нас не интересуют, так как все цифры описаны только с помощью этих точек:

kcaptcha_3_7

Как видно, каждая цифра имеет свой уникальный «отпечаток», именно этот «отпечаток» (далее маска) будет сравниваться с уже имеющимися масками в базе.

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

5.2) Поиск конечных точек

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

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

kcaptcha_3_8

Как вы поняли, мы анализируем все пиксели, лежащие на некоем радиусе (данный радиус надо будет подобрать экспериментально) от каждой точки. Дуга без черных пикселей определяет так называемый «чистый» сектор – сектор, в котором данная точка не имеет продолжения в виде закрашенных пикселей.

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

В итоге имеем вот такой вот набор узлов для каждой цифры:

kcaptcha_3_9

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

5.3) Векторизация

Может быть само понятие «векторизация» здесь не уместно, так как здесь используются направленные лучи, а не вектора, но как такового термина «лучезация», насколько мне известно не существует :D

 Можно попытаться векторизировать каждый фрагмент изображения.

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

Для каждой точки можно определить направление линии, которую эта точка «заканчивает». Началом вектора будет служить сама конечная точка, а направление для него мы сможем узнать, разделив второй сектор пополам, ну в общем как то так:

kcaptcha_3_10

Если прикинуть маски некоторых символов, то это будет выглядеть так:

kcaptcha_3_11

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

5.4) Группировка точек

В капче каждая линия нарисована толщиной больше чем один пиксель. Следовательно, конечных точек будет определяться больше:

kcaptcha_3_12

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

kcaptcha_3_13

И именно эта точка будет использоваться как ключевая точка.

6) Сравнение с базой масок

База масок должна содержать маски для каждой цифры. Возьмем, к примеру, шрифт «calisto» (он больше всего похож на используемый в данной капче) из набора в kcaptcha:

(Приблизительно так должны выглядеть цифры без искажений)

Попробуем представить, как должна выглядеть маска для цифры шесть. Для этого вырезаем, растягиваем и немного огрубляем изображение:

Затем находим ключевые точки:

Такая точка здесь одна. И с этой цифрой все просто.

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

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

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

Конкретно для единицы я бы создал четыре маски (примеры ищите выше на картинке):

Два узла сверху, два узла снизу

  • Два узла сверху, один узел снизу
  • Один узел сверху, два узла снизу
  • Один узел сверху, один узел снизу

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

6.1) Сравнение с масками

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

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

6.2) Частные случаи при сравнении масок

kcaptcha_4_5Вспомним нашу изначальную капчу. Конкретно на ней, у нас присутствует два частных случая:

  • Два фрагмента без ключевых точек. Значит на них изображены либо «ноль», либо «восемь» так как это единственные символы без ключевых узлов. Отличить их просто. Достаточно пройти середину фрагмента сверху вниз и подсчитать количество «черных полос» (переходов белое – черное – белое), если их всего две – значит это ноль, если их три значит это восьмерка.
  • Два фрагмента с одной ключевой точкой. Значит это, скорее всего, либо «шесть», либо «девять». Отличить их очень просто. Для шестерки ключевая точка находится выше середины фрагмента, для девятки – наоборот ниже.

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

6.3) Погрешность при сравнении масок

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

Так как капча имеет искажения, то, как направление, так и сама точка может быть смещена. Это надо учесть, и добавить диапазон погрешности:

kcaptcha_4_6

Возможно, погрешность может быть больше (надо подбирать экспериментально). А так как направление может рассчитываться довольно грубо, то задать его погрешность следует где-то в 120-160 градусов (это на мой взгляд, возможно практика подскажет, что это число должно быть меньше).

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

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

kcaptcha_4_7

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

6.4) Бальная система.

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

S=Val1 + Val2 + … + Valn

S – Сумма штрафных баллов

Val1 … Valn – Штрафные баллы за каждый параметр

Каждый параметр мы оцениваем по шкале от 0 до 100 баллов, где 0 соответственно – очень хорошо, а 100 – очень плохо. Попробуем прикинуть какие параметры мы можем оценить:

  • Количество узлов в маске и на фрагменте – за каждый не найденный узел мы добавляем по 100 баллов к общей сумме
  • Расстояние узла на маске до ближайшего узла на фрагменте – пробуем задать формулой Val=(L / R) * 100, (где L – расстояние между узлом на маске и реальным положением узла на фрагменте, R – допустимый радиус погрешности). То есть чем больше расстояние, тем больший штрафной бал мы начисляем.
  • Разница между направлениями лучей узлов – так же задаем формулой:Val=(|AжелаемыйAреальный |/ Aпогрешность)*100, (где Aжелаемый – угол заданный в маске, Aреальный – реальный угол на фрагменте, Aпогрешность – допустимый угол погрешности)

Соответственно чем больший штрафной бал получил какой-либо узел, тем дальше он стоит от узла в маске, и тем сильнее он «повернут» в другую сторону.

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

Заключение

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

Спасибо за внимание!

Captcha Solver (распознавание кода с картинки) |

Дополнение Captcha Solver для NVDA, предназначенное для
удобного распознавания капчей на web-страницах посредством сервиса rucaptcha.com.

Что нужно в начале?

Для начала требуется завести аккаунт на сайте rucaptcha.com и пополнить баланс
любым удобным способом. Описывать это не требуется, там всё интуитивно понятно.

Как настроить?

Далее следует на
Странице скопировать ваш
32-х значный ключ API.
Следом открываем:

  • 1. Меню NVDA
  • 2. Сервис
  • 3. Настройки Captcha Solver

В поле «Ключ API» вставляем полученный ключ.
Также в настройках необходимо обратить внимание на следующие флажки:

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

Чтобы сохранить настройки, нажимаем кнопку «OK».

Как пользоваться?

Для начала необходимо открыть меню NVDA, Параметры, жесты ввода и назначить сочетания клавиш для необходимых вам действий.
Теперь находясь на web-странице с капчей, следует:

  • 1. Используя объектную навигацию NVDA установить навигатор на соответствующий графический объект
  • 2. нажать сочетание клавиш, которое вы назначили на действие «Начать процесс распознавания» для отправки вашей капчи. Если установлен флаг «Сообщать размер изображения», то сочетание клавиш необходимо будет нажать дважды быстро.
  • Дождаться сообщения о результате распознавания, и если капча была распознана, вставить результат из буфера обмена в необходимое поле на странице.

Какие капчи можно распознавать?

Дополнение предназначено для распознавания классической капчи с одной
строкой символов на изображении. Кириллические капчи также распознаются
без проблем.

Как узнать баланс?

Для получения информации о балансе аккаунта следует Открыть меню NVDA, Сервис, Captcha Solver и выбрать пункт «Баланс аккаунта…»
Также вы можете назначить сочетание клавиш на это действие в диалоге жесты ввода.

Скачать

Автор дополнения: Kvark.
Языки: Русский и английский.
Версия: 2019.09.05
Размер: 13.1 KB
Скачать CaptchaSolver 2019.09.05

Капча — Википедия

Материал из Википедии — свободной энциклопедии

smwm

Искаженная строка smwm

Ка́пча (от CAPTCHA — англ. Completely Automated Public Turing test to tell Computers and Humans Apart — полностью автоматизированный публичный тест Тьюринга для различения компьютеров и людей) — компьютерный тест, используемый для того, чтобы определить, кем является пользователь системы: человеком или компьютером. Термин появился в 2000 году. Основная идея теста: предложить пользователю такую задачу, которая с лёгкостью решается человеком, но крайне сложна и трудоёмка для компьютера. По состоянию на 2013 год, каждый день пользователями по всей планете вводится примерно 320 миллионов «капчей»[1].

CAPTCHA — товарный знак университета Карнеги — Меллона, разработавшего данный тест.

Варианты реализации

В наиболее распространённом варианте капчи пользователь вводит символы, изображённые на рисунке (зачастую с добавлением помех или полупрозрачности), но так, чтобы было очень затруднительно машинное распознавание текста. По общепринятым нормам доступности интернета для людей со слабым зрением, такая капча должна дополняться вариантом, основанным на распознавании речи (аудио-капча). Также есть капчи, где нужно выбрать правильную картинку из списка[2].

Могут также применяться другие плохо алгоритмизуемые задачи: например, узнать, что находится на картинке, отметить все картинки с кошками, или ответить на вопрос, связанный со знаниями или менталитетом именно людей (например, загадка: «висит груша, нельзя скушать»). Тем не менее, стандартом стало именно распознавание символов: оно не привязано ни к какой культуре (основная помеха — слабое зрение), работает даже на мобильных браузерах, и пользователь со стажем быстро опознаёт картинку как капчу. Возможны также комбинированные капчи.

Недостатки

Главным[источник не указан 1058 дней] недостатком капчи является то, что её не всегда можно разобрать. Из-за этого иногда приходится вводить капчу несколько раз.

Способы прохождения капчи роботом

Использование уязвимостей

Уязвимость в CAPTCHA

Предположим, картинка с цифрами 1234 вызывается кодом.

<img src="/captcha.php?code=1234" />

Вместо того, чтобы проходить капчу, машина считывает URL и вводит ответ 1234.

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

Угадывание

Применяется в первую очередь для «нетрадиционных» капч с небольшим количеством вариантов ответа (1000 и меньше). Робот «гадает», посылая случайные ответы, и некоторые из них оказываются верными.

Увеличьте скорость распознавания капчи с опцией 100% распознавания

Один из наших пользователей решил протестировать нашу опцию 100% распознавания и написал статью о своем расследовании. Мы перевели его с русского на английский, чтобы поделиться с вами:

Недавно компания 2Captcha опубликовала статью о своей «возможности 100% распознавания»: https://2captcha.com/blog/for_webmaster/100percenten

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

Со следующими настройками:

  • Минимальное количество попыток = 2
  • Минимальное количество совпадений = 1

Settings

captcha будет отправлено двум воркерам одновременно, и будет возвращен первый ответ.

Поскольку я хочу получить ответ как можно быстрее, я решил протестировать 100% распознавание с различными настройками и проверить, ускорит ли это процесс, а также проверить, упадет ли точность.

Гипотез:

Мне нужно было проверить две гипотезы:

  1. Если я увеличиваю минимальное количество попыток (большее количество рабочих решает капчу одновременно), то мой шанс, что капча будет решена быстрым рабочим , будет выше, и капча будет решена быстрее.

  2. Количество правильных ответов будет падать, поскольку fast worker может давать неправильные ответы.

Метод испытаний:

Я написал скрипт на PHP, который каждую секунду отправляет капчу из папки с изображениями в API, а затем каждую секунду пытается получить ответ.Получив ответ, я записываю результаты в файл журнала CSV: имя файла, идентификатор капчи, ответ, время распознавания. Затем я запускал скрипт 5 раз с разными настройками 100% распознавания, используя те же изображения. Первый запуск был сделан с отключенным 100% распознаванием, затем я увеличивал минимальное количество попыток каждый раз с 2 до 5.

Наконец, я объединил все результаты в таблицу EXCEL, чтобы получить сводную статистику для каждого запуска.

Я использовал набор из 100 изображений решения капчи, так как я думаю, что это самая сложная капча, которую я встречал.Примеры изображений:

Captcha example Captcha example

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

Результатов:

Таблица EXCEL со статистикой

Скриншот таблицы статистики: Statistics

  1. Гипотеза первая: скорость подрастет. Подтверждено!

Когда больше рабочих решают одну и ту же капчу, время распознавания уменьшается. Для моих задач наилучшие результаты достигаются, когда минимальное количество попыток установлено равным 3.Цена увеличена в 3 раза, но время решения на 32,5% меньше, и я предпочитаю скорость.

  1. Вторая гипотеза: точность упадет. Не подтверждено!

Вероятно, для более точных результатов мне пришлось использовать более крупный набор изображений, например 1000 изображений. Так как на 100 изображениях один неверный ответ дает 1% потери точности. Но в целом точность остается достаточно хорошей.

  1. Меньше капчи остаются неразрешимыми.

Также я обнаружил, что получил менее неразрешимые результаты.Нельзя утверждать, что установка минимального количества попыток на 2 приведет к решению 100% ваших капч. Когда я готовился к своему тесту, я попытался отправить действительно сложные капчи, и эти капчи не были решены, даже если я установил минимальное количество попыток на 4 или 5. Вот примеры:

Captcha example Captcha example Captcha example

Комментарии от 2Captcha.com

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

Если вы хотите выполнить те же тесты, уменьшайте время ожидания между запросами к нашему API. Если вы отправите 20 каптчей с минимальным количеством попыток, установленным на 10, то есть вероятность, что мы не сможем сразу найти 200 бесплатных рабочих, и это вызовет задержку для следующей отправленной вами капчи. Вот почему мы просим делать таймауты между вашими запросами.

CapMonster Cloud — сервис автоматического распознавания капчи

До 2-3 раз дешевле, чем сервисы ручного распознавания

В разгадывании капч не участвуют люди.
Вот почему мы можем гарантировать самую низкую цену на рынке.

Совместимость

CapMonster.cloud работает с API популярных сервисов ручного распознавания капчи.
Для начала просто введите ключ в свою программу.

Распознавать 1000+ капч в минуту

Среднее время распознавания капчи короче 1 секунды, независимо от дневного времени или нагрузки.

Без рисков

Вы платите только за решенные капчи.Загрузка сервера на цену не влияет.

Услуга разгадывания

капчи. Обход reCAPTCHA, FunCaptcha, image captcha, GeeTest, hCaptcha.

Служба распознавания капчи


Самая низкая цена на рынке

Начиная с 0.5 долларов США за 1000 изображений, в зависимости от вашего ежедневного объема загрузки

Плати по факту

Плата за каждую капчу. Минимальная сумма пополнения составляет 1 доллар США, без периодических платежей

99,99% времени безотказной работы с 2007 г.

Огромное количество сотрудников и инфраструктура премиум-класса позволяют нам предоставлять высоконадежные услуги 24/7/365

Вы можете полностью положиться на наше стабильное решение и забыть об эмуляции браузера

Создать учетную запись

Зона клиентов

Как это работает:

1

Ваше приложение загружает капчу на наш сервер

Неограниченное количество одновременных загрузок

Высокоскоростная обработка запросов

2

Назначаем воркера для вашей капчи

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

Ознакомьтесь с некоторыми из их историй здесь.

3

Типы работников отвечают, и мы отправляем их в ваше приложение

Неограниченное количество одновременных загрузок

Высокоскоростная обработка запросов

100% капчи решаются людьми со всего мира.Вот почему с помощью нашего сервиса вы помогаете тысячам людей прокормить себя и свои семьи.

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

Ознакомьтесь с некоторыми из их историй здесь.

Среднее время решения

15 сек

Рабочие забанили

Итого

25 587 569

24 часа

2 589

Ошибки

1%

4

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

Капчи изображений

$ Цена за 1000

Рабочие

Скорость решения

Свободная емкость

Рекапча v2 / v3

$ Цена за 1000

Рабочие

Скорость решения

Свободная емкость

чКапча

$ Цена за 1000

Рабочие

Скорость решения

Свободная емкость

  • Стоимость Recaptcha (v2, v2 invisible, v3): от 1.5 долларов за 1000 токенов.
  • hCaptcha, Geetest, Funcaptcha: 2 доллара за 1000.
  • Вам не нужно эмулировать браузер и запускать javascripts.
  • Вы отправляете нам значение «ключ сайта» или «открытый ключ».
  • Мы даем вам «g-recaptcha-response», и вы просто отправляете с ним форму.

Решайте рекапчи и изображения с помощью наших плагинов.
— Не требует взаимодействия с пользователем.
— Легко интегрируется с iMacros.
— Помогает тысячам слабовидящих людей по всему миру.
— Вашей бабушке это тоже понравится!

Отслеживайте свои капчи и траты в нашей новой клиентской зоне:

Услуга разгадывания

капчи. Обход reCAPTCHA, FunCaptcha, image captcha, GeeTest, hCaptcha.

Служба распознавания капчи


Самая низкая цена на рынке

Начиная с 0.5 долларов США за 1000 изображений, в зависимости от вашего ежедневного объема загрузки

Плати по факту

Плата за каждую капчу. Минимальная сумма пополнения составляет 1 доллар США, без периодических платежей

99,99% времени безотказной работы с 2007 г.

Огромное количество сотрудников и инфраструктура премиум-класса позволяют нам предоставлять высоконадежные услуги 24/7/365

Вы можете полностью положиться на наше стабильное решение и забыть об эмуляции браузера

Создать учетную запись

Зона клиентов

Как это работает:

1

Ваше приложение загружает капчу на наш сервер

Неограниченное количество одновременных загрузок

Высокоскоростная обработка запросов

2

Назначаем воркера для вашей капчи

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

Ознакомьтесь с некоторыми из их историй здесь.

3

Типы работников отвечают, и мы отправляем их в ваше приложение

Неограниченное количество одновременных загрузок

Высокоскоростная обработка запросов

100% капчи решаются людьми со всего мира.Вот почему с помощью нашего сервиса вы помогаете тысячам людей прокормить себя и свои семьи.

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

Ознакомьтесь с некоторыми из их историй здесь.

Среднее время решения

15 сек

Рабочие забанили

Итого

25 587 569

24 часа

2 589

Ошибки

1%

4

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

Капчи изображений

$ Цена за 1000

Рабочие

Скорость решения

Свободная емкость

Рекапча v2 / v3

$ Цена за 1000

Рабочие

Скорость решения

Свободная емкость

чКапча

$ Цена за 1000

Рабочие

Скорость решения

Свободная емкость

  • Стоимость Recaptcha (v2, v2 invisible, v3): от 1.5 долларов за 1000 токенов.
  • hCaptcha, Geetest, Funcaptcha: 2 доллара за 1000.
  • Вам не нужно эмулировать браузер и запускать javascripts.
  • Вы отправляете нам значение «ключ сайта» или «открытый ключ».
  • Мы даем вам «g-recaptcha-response», и вы просто отправляете с ним форму.

Решайте рекапчи и изображения с помощью наших плагинов.
— Не требует взаимодействия с пользователем.
— Легко интегрируется с iMacros.
— Помогает тысячам слабовидящих людей по всему миру.
— Вашей бабушке это тоже понравится!

Отслеживайте свои капчи и траты в нашей новой клиентской зоне:

Документ API

для изображения captcha и recaptcha php c # imacros — служба автоматического решения кода Captcha и поставщик услуг дешевого обхода кодов

AZcaptcha — это сервис автоматического распознавания изображений и CAPTCHA.Основная цель AZcaptcha — быстрое и точное решение ваших CAPTCHA сотрудниками AI, но услуга не ограничивается только решением CAPTCHA. Вы можете преобразовать в текст любое изображение, которое может распознать ИИ.

Введение

Мы предоставляем API, который позволяет автоматизировать процесс и интегрировать ваше программное обеспечение с нашим сервисом.

Есть несколько простых шагов, чтобы решить вашу капчу или распознать изображение:

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

Тарифы

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

Последние изменения

18 августа 2020

Добавлена ​​поддержка Hcaptcha для Hcaptcha

.

Добавлена ​​поддержка data-ов, куки и userAgent для ReCaptcha V2

Тип капчи / метод Ставка за 1000 Описание
Обычная капча

0 руб.4 Ставка гибкая и зависит от текущей загрузки услуги. Вы можете увидеть текущую ставку и предельную максимальную ставку в настройках своей учетной записи.
ReCaptcha V2, V3 … $ 1,8 Ставка применяется к Google ReCaptcha, решенному с помощью токена.
Hcaptcha 1,8 Ставка применяется к Hcaptcha, решенному через токен.

Решение капч

Процесс решения капч с помощью AZcaptcha действительно прост и в основном одинаков для всех типов капч:

  1. Получите ключ API на странице настроек вашей учетной записи. Каждому пользователю предоставляется уникальный токен аутентификации, мы называем его ключом API . Это строка из 32 символов, которая выглядит так:
    2abc234de56fab7c89012d34e56f6789
    Этот ключ будет использоваться для всех ваших запросов к нашему серверу.
  2. Отправьте запрос HTTP POST на наш URL-адрес API: http://azcaptcha.com/in.php с параметрами, соответствующими типу вашей капчи.
    Сервер вернет идентификатор капчи или код ошибки, если что-то пошло не так.
  3. Сделайте таймаут: 20 секунд для ReCaptcha, 5 секунд для других типов капч.
  4. Отправьте запрос HTTP GET на наш URL-адрес API: http://azcaptcha.com/res.php , чтобы получить результат.
    Если капча уже решена, сервер вернет ответ в формате, соответствующем типу вашей капчи.
    По умолчанию ответы возвращаются в виде обычного текста, например: OK | Ваш ответ . Но ответ также может быть возвращен как JSON {«status»: 1, «request»: «TEXT»} if json

44 Captcha API (2020) | ProgrammableWeb

MTCaptcha MTCaptcha — это интеллектуальный сервис ввода кода, который соответствует требованиям GDPR и WCAG, обеспечивая конфиденциальность и доступность.Адаптивная невидимая noCaptcha обеспечивает беспроблемную проверку для реальных … Captcha 20 REST v1.0
ruCaptcha API ruCaptcha предоставляет услуги автоматического распознавания изображений для решения капчи и преобразования изображений, удобочитаемых человеком, в текст. Captcha и задачи преобразования изображения в текст выполняются реальными людьми. Конец … Captcha 40 REST
Captcha.guru The Captcha.guru API предоставляет услуги reCAPTCHA и antiCAPTCHA. С помощью API разработчики могут использовать изображение, содержащее искаженный, но понятный человеку текст. Чтобы разгадать капчу, пользователь должен ввести … Captcha 24 REST v2
CAPTCHAs.IO API CAPTCHAs.IO обеспечивает RESTful доступ ко всем методам решения капчи CAPTCHAs.io . Разработчики могут выбрать получение ответов API в формате JSON или в виде обычного текста. Ключи API доступны с … Captcha 71 REST v1.1
ProxyCrawl API ProxyCrawl позволяет разработчикам очищать любой веб-сайт с помощью реальных веб-браузеров. Это означает, что даже если страница создана с использованием только JavaScript, ProxyCrawl может сканировать ее и предоставлять HTML … Data Mining 15 REST
AZcaptcha AZcaptcha — это автоматическая служба распознавания изображений и CAPTCHA. . Основная цель AZcaptcha — быстрое и точное решение ваших CAPTCHA сотрудниками ИИ, но услуга не ограничивается только этим… Captcha 59 REST
Solve Recaptcha API Solve Recaptcha автоматически решает капчи Google recaptcha2 с помощью data-sitekey. API является платным и зависит от количества потоков в месяц. Captcha 75 REST v1.0
Captcha Coin Captcha Coin API позволяет разработчикам интегрировать биткойн-кошелек и сервисы биткойн-капчи в свои веб-сайты и приложения.Платежная капча — это альтернативная форма капчи, которая принимает … Биткойн 20 REST v7.89
Text Captcha Decoder Text Captcha Decoder стремится предоставить разработчикам декодер текста captcha. API позволяет разработчикам разрешать приложениям декодировать капчу. Услуга доступна по нескольким тарифным планам OCR 16 REST
Защита от ботов ShieldSquare API ShieldSquare предназначен для разработчиков, которые хотят блокировать плохих ботов на своем веб-сайте или в мобильном приложении.Основной метод API — интеграция с веб-сайтами и приложениями. ShieldSquare предоставляет … Боты 4 REST
Anti Captcha Anti Captcha — это сервис для решения Captcha, управляемый человеком. API Anti Captcha интегрирует решения аутентификации в приложения через HTTP POST и API Key. Ресурсы позволяют загружать captcha … Captcha 106 REST
Captcha Solutions Этот RESTful Captcha Solutions API разработан для решения большого количества задач captcha для широкого спектра приложений.Captcha Solutions — это веб-сервис декодирования капчи, предлагающий … Captcha 54 REST
Captchatronix Captchatronix стремится решить ReCAPTCHA и более 2000 Captchas с точностью. Документация по API доступна для разработчиков программного обеспечения и приложений, которые планируют интегрировать функции Capctha в свои … Captcha 11 REST
Captcha Bot Detect Captcha Bot Detect предлагает услуги интеграции для пользователей, которые работают с PHP , ASP.NET и Java. Bot Detect позволяет настроить различные параметры для настройки дизайна Captcha. Примеры включают в себя Captcha с … Captcha 11 REST
Key Captcha Уникальность Key Captcha заключается в авторизации веб-сайта, решающей простые головоломки. Примером может быть сборка кусочка пазла в изображение яблока, которое отсутствует. Ключ Captcha может … Captcha 13 REST
2Captcha API 2Captcha в архитектуре REST возвращает данные распознавания изображений с помощью человека для авторизации онлайн-пользователей.Начиная с ключа API, разработчики могут применять доступный алгоритм, который включает … Captcha 68 REST v2
Submitia Captcha Solver API Submitia Captcha Solver предоставляет разработчикам доступ для интеграции Submitia de- функциональность капчи. Некоторые примеры методов API включают декодирование капчи на веб-сайтах, загрузку изображений и … Captcha 14 REST v2.0
Обход службы Captcha API службы обхода Captcha позволяет пользователям отправлять отправленные изображения назад в виде текста капчи.Используя HTTP-запросы, пользователи получают идентификаторы изображений, соответствующие их тексту captcha, который может… . Это также сервис, предотвращающий посещение веб-страниц ботами. Благодаря этим функциям будет заметна … Captcha 2 REST
HiCaptcha HiCaptcha — это сервис для распознавания капчи на английском языке.Разработчики интегрируют API и отправляют Captcha для решения, а HiCaptcha возвращает текст в течение 30 секунд. Они также предлагают прибыль … Captcha 56 REST
CaptchaCoin CaptchaCoin — это сервис для решения капчи, который позволяет пользователям как использовать сервис, чтобы решать свои собственные капчи, так и пользователи могут решать капчи. и получите оплату за услугу в биткойнах. … Безопасность 12 REST
9кВт.eu 9kw.eu — это сервис для решения капчи, который может решить практически любую капчу за 30 секунд или меньше. Пользователи могут зарабатывать кредиты, разгадывая капчи, а затем тратить их, отправляя капчи на решение. Пользователи … Инструменты 15 REST
CaptchaBot CaptchaBot — это служба распознавания капчи, которая автоматически расшифровывает изображение. Сервисы используют аналитиков по всему миру, которые просматривают и расшифровывают изображения в среднем за 5-14 секунд.Captchabot … Инструменты 16 REST
Ringcaptcha Ringcaptcha — это сервис, который обеспечивает проверку по телефону для любого веб-сайта и мобильного приложения. Ringcaptcha можно использовать для аутентификации, маркетинга, подтверждения владения и многого другого.
The …
Security 6 REST
Pixodrom Pixodrom — это сервис декодирования изображений (captcha) для текста в реальном времени, в котором используются люди со всего мира.API Pixodrom позволяет пользователям загружать изображения (CAPTCHA), устанавливать параметры, получать … Безопасность 4 REST

.