Расшифровка капчи – Лучшие сервисы автоматического распознавания капчи для приложений

Содержание

что это такое простыми словами

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

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

Что такое капча

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

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

Что такое капча

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

Что такое капча при регистрации

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

Что такое капча при регистрации

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

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

капча

Неверная капча: что это такое

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

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

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

Неверная капча: что это такое

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

Сегодня мы разобрались в том, что такое капча и для чего она нужна. Узнать, как от неё избавиться можно на примере нашего рассказа о том, как убрать капчу в Яндекс Вордстат и будет ли это эффективно. Будьте внимательны и не попадайтесь на уловки интернет-мошенников.

pro-promotion.ru

Тестируем универсальную распознавалку CAPTCHA — «Хакер»

Содержание статьи

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

 

Решить CAPTCHA

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

Схема анализа CAPTCHA-изображений с помощью TesserCap

 

Первый взгляд на 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 тега изображения

. Например, в случае с xakep.ru это адрес www.xakep.ru/common/rateit/captcha.asp?name=xakep.ru. Рядом со строкой адреса находится элемент, задающий количество капч, которые нужно загрузить для тестирования. Так как приложение может одновременно показывать только 12 изо

xakep.ru

Декодирование капчи на Python / Habr

Это перевод и форма повествования от первого лица сохранена. Автор — Бен Бойтер, бакалавр информационных технологий в Университете Чарльза Стерта (CSU).

Большинство людей не в курсе, но моей диссертацией была программа для чтения текста с изображения. Я думал, что, если смогу получить высокий уровень распознавания, то это можно будет использовать для улучшения результатов поиска. Мой отличный советник доктор Гао Джунбин предложил мне написать диссертацию на эту тему. Наконец-то я нашел время написать эту статью и здесь я постараюсь рассказать о всем том, что узнал. Если бы только было что-то подобное, когда я только начинал…

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

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

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

При своем исследовании я не нашел никаких материалов, которые помогли бы мне. Да, статьи есть, но в них опубликованы очень простые алгоритмы. На самом деле я нашел несколько нерабочих примеров на PHP и Perl, взял из них несколько фрагментов и получил неплохие результаты для очень простой капчи. Но ни один из них мне особо не помог, т. к. это было слишком просто. Я из тех людей, которые могут читать теорию, но ничего не понять без реальных примеров. А в большинстве статей писалось, что они не будут публиковать код, т. к. боятся, что его будут использовать в плохих целях. Лично я думаю, что капча – это пустая трата времени, т. к. ее довольно легко обойти, если знать как.

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

Давайте начнем. Вот список того, что я собираюсь осветить в этой статье:

  • Используемые технологии
  • Что такое капча
  • Как найти и извлечь текст из изображений
  • Распознавание изображения с использованием ИИ
  • Обучение
  • Собираем все вместе
  • Результаты и выводы
Используемые технологии

Все примеры написаны на Python 2.5 с использованием библиотеки PIL. Должно работать и в Python 2.6 (под Python 2.7.3 отлично запускается, прим. перев.).

Установите их в указанном выше порядке и вы готовы к запуску примеров.

Отступление

В примерах я буду жестко задавать множество значений прямо в коде. У меня нет цели создать универсальный распознаватель капч, а только показать как это делается.
Капча, что это такое в конце концов?

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

Они используются для предотвращения спама на многих интернет-сайтах. Например, капчу можно найти на странице регистрации в Windows Live ID.

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

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

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

Как найти и извлечь текст из изображений

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

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

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

  • Белый (фон)
  • Серый (шум)
  • Красный (текст)

На Python это будет выглядеть очень просто.

Следующий код открывает изображение, преобразует его в GIF (облегчает нам работу, т. к. в нем всего 255 цветов) с печатает гистограмму цветов.

from PIL import Image

im = Image.open("captcha.gif")
im = im.convert("P")

print im.histogram()

В итоге мы получим следующее:

[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0
, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 2, 0, 1, 0, 0, 1,
0, 2, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 3, 1, 3, 3, 0,
 0, 0, 0, 0, 0, 1, 0, 3, 2, 132, 1, 1, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 15, 0
, 1, 0, 1, 0, 0, 8, 1, 0, 0, 0, 0, 1, 6, 0, 2, 0, 0, 0, 0, 18, 1, 1, 1, 1, 1, 2,
 365, 115, 0, 1, 0, 0, 0, 135, 186, 0, 0, 1, 0, 0, 0, 116, 3, 0, 0, 0, 0, 0, 21,
 1, 1, 0, 0, 0, 2, 10, 2, 0, 0, 0, 0, 2, 10, 0, 0, 0, 0, 1, 0, 625]

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

from PIL import Image
from operator import itemgetter

im = Image.open("captcha.gif")
im = im.convert("P")
his = im.histogram()

values = {}

for i in range(256):
  values[i] = his[i]

for j,k in sorted(values.items(), key=itemgetter(1), reverse=True)[:10]:
  print j,k

И получаем такие данные:

Цвет Количество пикселей
255 625
212 365
220 186
219 135
169 132
227 116
213 115
234 21
205 18
184 15

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

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

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

from PIL import Image

im = Image.open("captcha.gif")
im = im.convert("P")
im2 = Image.new("P",im.size,255)

im = im.convert("P")

temp = {}

for x in range(im.size[1]):
  for y in range(im.size[0]):
    pix = im.getpixel((y,x))
    temp[pix] = pix
    if pix == 220 or pix == 227: # these are the numbers to get
      im2.putpixel((y,x),0)

im2.save("output.gif")

Запуск этого фрагмента кода дает нам следующий результат.

Оригинал Результат

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

Слышу, как спрашиваете: «А что, если на капче текст написан разными цветами?». Да, наша техника все еще сможет работать. Предположите, что наиболее распространенный цвет – это цвет фона и тогда вы сможете найти цвета символов.

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

for each binary image:
  for each pixel in the binary image:
    if the pixel is on:
      if any pixel we have seen before is next to it:
        add to the same set
      else:
        add to a new set

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

from PIL import Image

im = Image.open("captcha.gif")
im = im.convert("P")
im2 = Image.new("P",im.size,255)

im = im.convert("P")

temp = {}

for x in range(im.size[1]):
  for y in range(im.size[0]):
    pix = im.getpixel((y,x))
    temp[pix] = pix
    if pix == 220 or pix == 227: # these are the numbers to get
      im2.putpixel((y,x),0)

# new code starts here

inletter = False
foundletter=False
start = 0
end = 0

letters = []

for y in range(im2.size[0]): # slice across
  for x in range(im2.size[1]): # slice down
    pix = im2.getpixel((y,x))
    if pix != 255:
      inletter = True
  if foundletter == False and inletter == True:
    foundletter = True
    start = y

  if foundletter == True and inletter == False:
    foundletter = False
    end = y
    letters.append((start,end))

  inletter=False
print letters

В результате у нас получалось следующее:

[(6, 14), (15, 25), (27, 35), (37, 46), (48, 56), (57, 67)]

Это позиции по горизонтали начала и конца каждого символа.

ИИ и векторное пространство при распознавании образов

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

Чуть ли ни первой вещью, с которой сталкиваются при знакомстве с ИИ в распознавании образов являются нейронные сети. Лично я никогда не имел успеха с нейронными сетями при распознавании символов. Я обычно обучаю его 3-4 символам, после чего точность падает так низко, что она была бы на порядок выше, отгадывай я символы случайным образом. Сначала это вызвало у меня легкую панику, т. к. это было тем самым недостающем звеном в моей диссертации. К счастью, недавно я прочитал статью о vector-space поисковых системах и посчитал их альтернативным методом классификации данных. В конце концов они оказались лучшем выбором, т. к.

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

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

Если хотите понять, как работает векторное пространство, то советую почитать Vector Space Search Engine Theory. Это лучшее, что я нашел для начинающих.

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

Уже вернулись? Хорошо. Теперь мы должны запрограммировать наше векторное пространство. К счастью, это совсем не сложно. Приступим.

import math

class VectorCompare:
  def magnitude(self,concordance):
    total = 0
    for word,count in concordance.iteritems():
      total += count ** 2
    return math.sqrt(total)

  def relation(self,concordance1, concordance2):
    relevance = 0
    topvalue = 0
    for word, count in concordance1.iteritems():
      if concordance2.has_key(word):
        topvalue += count * concordance2[word]
    return topvalue / (self.magnitude(concordance1) * self.magnitude(concordance2))

Это реализация векторного пространства на Python в 15 строк. По существу оно просто принимает 2 словаря и выдает число от 0 до 1, указывающее как они связаны. 0 означает, что они не связаны, а 1, что они идентичны.

Обучение

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

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

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

from PIL import Image
import hashlib
import time

im = Image.open("captcha.gif")
im2 = Image.new("P",im.size,255)
im = im.convert("P")

temp = {}

print im.histogram()

for x in range(im.size[1]):
  for y in range(im.size[0]):
    pix = im.getpixel((y,x))
    temp[pix] = pix
    if pix == 220 or pix == 227: # these are the numbers to get
      im2.putpixel((y,x),0)
    

inletter = False
foundletter=False
start = 0
end = 0

letters = []


for y in range(im2.size[0]): # slice across
  for x in range(im2.size[1]): # slice down
    pix = im2.getpixel((y,x))
    if pix != 255:
      inletter = True

  if foundletter == False and inletter == True:
    foundletter = True
    start = y

  if foundletter == True and inletter == False:
    foundletter = False
    end = y
    letters.append((start,end))
  inletter=False

# New code is here. We just extract each image and save it to disk with
# what is hopefully a unique name
  
count = 0
for letter in letters:
  m = hashlib.md5()
  im3 = im2.crop(( letter[0] , 0, letter[1],im2.size[1] ))
  m.update("%s%s"%(time.time(),count))
  im3.save("./%s.gif"%(m.hexdigest()))
  count += 1

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

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

Собираем все вместе

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

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

Здесь мы просто загружаем обучающее множество, чтобы иметь возможность сравнивать с ним:

def buildvector(im):
  d1 = {}
  count = 0
  for i in im.getdata():
    d1[count] = i
    count += 1
  return d1
v = VectorCompare()

iconset =  
['0','1','2','3','4','5','6','7','8','9','0','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t',' 
u','v','w','x','y','z']

imageset = []

for letter in iconset:
  for img in os.listdir('./iconset/%s/'%(letter)):
    temp = []
    if img != "Thumbs.db":
      temp.append(buildvector(Image.open("./iconset/%s/%s"%(letter,img))))
    imageset.append({letter:temp})

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

count = 0
for letter in letters:
  m = hashlib.md5()
  im3 = im2.crop(( letter[0] , 0, letter[1],im2.size[1] ))

  guess = []

  for image in imageset:
    for x,y in image.iteritems():
      if len(y) != 0:
        guess.append( ( v.relation(y[0],buildvector(im3)),x) )

  guess.sort(reverse=True)
  print "",guess[0]
  count += 1
Выводы

Теперь у нас есть все, что нужно и мы можем попробовать запустить нашу чудо-машину.

Входной файл – captcha.gif. Ожидаемый результат: 7s9t9j

python crack.py
 (0.96376811594202894, '7')
 (0.96234028545977002, 's')
 (0.9286884286888929, '9')
 (0.98350370609844473, 't')
 (0.96751165072506273, '9')
 (0.96989711688772628, 'j')

Здесь мы видем предполагаемый символ и степень уверенности в том, что это действительно он (от 0 до 1).

Похоже, что у нас действительно все получилось!

На самом деле на тестовых капчах данный скрипт будет выдавать успешный результат примерно в 22% случаев (у меня получилось 28.5, прим. перев.).

python crack_test.py
  Correct Guesses -  11.0
  Wrong Guesses -  37.0
  Percentage Correct -  22.9166666667
  Percentage Wrong -  77.0833333333

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

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

Выполнение этого кода на Core 2 Duo E6550 дает следующие результаты:

real	0m5.750s
user	0m0.015s
sys	0m0.000s

От переводчика. У меня на Dual Core T4400 получились следующие результаты:

real	0m0.176s
user	0m0.160s
sys	0m0.012s

В нашем каталоге находится 48 капч, из чего следует, что на разгадывание одной уходит примерно 0.12 секунд. С нашими 22% процентами успешного разгадывания мы можем разгадывать около 432 000 капч в день и получать 95 040 правильных результатов. А если использовать многопоточность?

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

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

habr.com

Что такое капча – recaptcha, captcha и другие виды, зачем нужна

С понятием «Captcha», ее типами «ReCaptcha» и другими сталкивается практически все пользователи компьютера и интернета.

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

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

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

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

Что такое капча и для чего нужна?

Капча (captcha) — это тест, который разработан в 2000 году и подаваемый нам, компьютерным пользователям, чтобы отличить нас от роботов (ботов), обычно для защиты сайтов от спама.

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

Ниже пример капчи. Думаю, многие встречали такое при регистрации где-либо (в этом примере — на Яндекс):

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

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

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

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

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

Виды капчи

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

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

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

Поэтому просто разгруппируем их на 3 больших типа, отделив наиболее часто используемые от остальных: captcha, ReCaptcha и другие, например, FunCaptcha.

Что такое captcha

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

Что такое recaptcha

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

То есть нам подставляется, как правило, 2 слова из источников, которые мы должны ввести:

Ну а когда рекапчу купила корпорация Google, стали распознавать изображения даже из google карт и аналогичных приложений. Тем самым появился еще один тип рекапчи (версия 2), представляющая собой следующее…

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

Пример: «отметьте все изображения, где есть автобусы».

Ну и в 2015 году, появилась капча Recaptcha v3 «Я не робот», которая сейчас считается самой простой, удобной и надежной. Нужно только поставить галочку и она либо сразу будет пройдена, либо при подозрениях у системы защиты, нужно будет решить задачу в виде картинок (версия 2).

Другие виды капчи в интернете

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

Поэтому некоторые роботам-спамерам обойти крайне сложно, либо вовсе невозможно, ведь пока что еще компьютер не обрел интеллект как у человека 🙂

Вот несколько примеров:

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

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

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

Заключение

Что такое капча и ее виды, например, ReCaptcha или FunCaptcha, надеюсь объяснил это доходчиво и вы разобрались в вопросе, а если нет, спросите в комментариях, поясню и заодно статью пополню информацией 😊

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

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

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


На этом все, если по теме заметки остались у вас вопросы, то можете задать их ниже в комментариях, и я вам все растолкую 🙂

Хорошего вам дня и прекрасного настроения! 😉

vladimirbelev.ru

Самые удобные сервисы для распознания капчи – Лайфхакер

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

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

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

Критерии выбора программы для распознавания капчей

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

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

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

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

Смотрите видео – Как включить распознавание капчи через antigate, rucaptcha, captcha24, captchabot на DelphiXE5

Заработок 💰 онлайн на вводе капчиВсё, что вам нужно — это правильно ввести текст с картинки (с капчи).

Вы получаете деньги 💵 за каждый ввод капчи.

Зарегистрироваться>>>

Перечень бесплатных программ для обхода капч и их отличия

Итак, начнем рассмотрение имеющихся бесплатных вариантов, на очереди онлайн сервис Google Диск. Для того чтобы воспользоваться рассматриваемой программой, необходимо будет зарегистрироваться, такой ход событий ожидает пользователя практически во всех сервисах аналогичного назначения. В том случае. Если вы когда-либо уже создавали. К примеру, блог на blogspot, тогда регистрация вам в данном случае не понадобится. Здесь возможно автоматический ввод такой капчи: PDF, JPG, PNG и GIF. Необходимо отметить, что объем файлов для распознания должен быть не больше 2-3 Мб.

Онлайн-сервис OCR Convert. Здесь регистрации пользователю не понадобится. Форматы капчи, которые поддерживаются, следующие: JPEG, GIF, BMP. Нужно отметить, что сохраненные файлы имеют вид URL ссылки, расширение которых в формате TXT. Здесь пользователь сможет одновременно поставить на загрузку 5-7 документов.

Сервис i2OCR.  Для того чтобы распознать капчи, необходимо для начала зарегистрироваться. Одновременно загруженных файлов и документов может быть не больше 10. Пользоваться данным сервисом удобно и просто. Форматы, которые он распознает следующие: GIF, PBM, PGM, PPM.

Андрей Меркулов

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

lifeha.ru

что это такое и какая она бывает

Что такое капча?

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

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

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

Зачем нужно вводить CAPTCHA?

Обратите внимание, что слово «капча» пошло от английской аббревиатуры CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) – полностью автоматизированный публичный тест Тьюринга для различения компьютеров и людей. Эта эффективная программка-тест была придумана учеными из исследовательского центра Карнеги, расположенного в США, а именно в штате Пенсильвания.

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

Допустим, у вас есть веб-страница, где пользователи комментируют определенную тему, предварительно заполняя поля «имя», «

webmasterie.ru

Как правильно вводить капчу – Лайфхакер

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

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

Как начать зарабатывать на вводе капчи

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

  • Выбрать сервис, который предлагает заработать на вводе капч. Три самых популярных среди пользователей: Antigate.com, Kolotibablo.com и RuCaptcha.
  • Зарегистрироваться
  • Преступить к работе, вводить правильно капчу.

Как правильно вводить капчу

Заработок 💰 онлайн на вводе капчиВсё, что вам нужно — это правильно ввести текст с картинки (с капчи).

Вы получаете деньги 💵 за каждый ввод капчи.

Зарегистрироваться>>>

Набор капчи

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

Схема простая: чем легче задание – тем оно дешевле, чем сложнее – тем больше денег.

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

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

Виды капч

Как правильно вводить капчу

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

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

Разгадай капчу

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

  • Перейти на выбранную вами поисковую систему.
  • Выбрать регион, в котором выдается задание. Это можно сделать, нажав на кнопку «настройки» в любой поисковой системе.
  • Скопировать поисковый запрос, указанный в выполняемом задании, после чего необходимо нажать кнопку – найти.
  • Зайти на нужный сайт, открыть страницу контакты и посмотреть первый контактный телефон.
  • В окне капчи выбрать правильный вариант, выбрав телефон, который вы смогли найти на сайте.

Как правильно разгадывать капчу

Заработок 💰 онлайн на вводе капчиВсё, что вам нужно — это правильно ввести текст с картинки (с капчи).
Вы получаете деньги 💵 за каждый ввод капчи.
Зарегистрироваться>>>

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

Резюме

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

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

 

Андрей Меркулов

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

lifeha.ru

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *