Ответ 1
См:
OCR и нейронные сети в JavaScript
Здесь John Resig (создатель java-библиотеки JQuery) объясняет, как именно это было сделано.
Я видел, как некоторые captchas декодируются с использованием javascript, php и т.д. Как они это делают?
Например, очень популярный megaupload сайт captcha также был декодирован.
См:
OCR и нейронные сети в JavaScript
Здесь John Resig (создатель java-библиотеки JQuery) объясняет, как именно это было сделано.
Я специалист по обработке изображений и декодер CAPTCHA, раньше я делал много разрешающих проектов CAPTCHA.
ОК, пусть начнутся шаги разрешения CAPTCHA!
Декодирование любого вида CAPTCHA имеет 3 основных шага:
Очистите CAPTCHA от любого шума (используя любые методы обработки изображений).
Примечание для истребителя декодирования captcha: если вы хотите иметь хороший CAPTCHA, вы должны добавить более сильный шум. Используйте случайный фоновый фон с похожим цветом символов.
Легкий шаг, когда они являются отдельными и очень тяжелыми, когда они не являются.
* Примечание для истребителя декодирования captcha: если вы хотите иметь хороший CAPTCHA, не оставляйте персонажа отдельно! Сделайте их перекрывающимися, НЕ используйте разные цвета для символов, декодеры могут легко разбить символы! (большинство разработчиков не знают об этом и думают, что лучше использовать красочный CAPTCHA!), лучший из них делает перекрывающуюся строку с черным цветом. Для опытного декодера CAPTCHA это не проблема для декодирования красочной CAPTCHA! Это просто красиво и не полезно!:) Используйте случайные кривые линии, которые соединяют все символы друг с другом. *
После разделения у нас есть набор символов (теперь у нас нет ни одной строки, просто есть изображения и пиксели), мы должны преобразовать изображения символов в строку, Но как?! Есть несколько способов, если они не вращаются и имеют фиксированный шрифт и размер (например, freeglobes CAPTCHA), вы можете определить набор шаблонов, ваша программа должна зацикливать шаблоны, чтобы найти наилучшее соответствие для каждого изображения, если символы очень отличается и требует большого шаблона, который вы должны использовать "нейронную сеть" для распознавания персонажа. Нейронная сеть для разрешения CAPTCHA примет персонажа, и мы говорим сети, что этот персонаж, например, мы дадим ему образ "А", и мы поместим NN: это "А"!, то он будет "УЧИТЬ" этого символа и сохранит свое обучение в базе данных. Эта процедура называется "ПОДГОТОВКА КАДРОВ". Итак, когда мы снова попросим обученную сеть для нового персонажа, она вернет нам наилучшее совпадение с ней, изучая базу данных. Обычно специалисты-декодеры используют CAPTCHA для обучения нейронной сети. Быть осторожен! Использование соответствующих данных для обучения может сделать или нарушить ваши результаты.
Примечание для истребителя декодирования captcha: если вы хотите иметь хороший CAPTCHA, используйте любой метод, при котором декодер не сможет распознать символы даже в нейронной сети. Деформируйте символы случайным образом, используйте много шрифтов вместо одного, а также поверните символы и т.д.
Наконец, мы объединяем все одиночные символы в один и возвращаем его как результат.
К сожалению, нет никакого фиксированного алгоритма для решения любой CAPTCHA, это означает, что новый CAPTCHA нуждается в новом анализе и обучении. Вы не можете сделать декодер CAPTCHA для декодирования всех CAPTCHA.
Что вы должны знать перед запуском:
1- Основы обработки изображений
2- Общее понимание нейронной сети
3- Простые функции обработки изображений (на любом языке)
Для PHP:
imagecreate()
imagecreatetruecolor()
imagecolorat()
imagecolorsforindex()
imagesetpixel()
.
.
.
Для .NET:
Bitmap type,
getPixel()
setPixel()
.
.
.
Для JavaScript и HTML5:
You should know the Canvas very well.
Наконец: Примечание для истребителя декодирования captcha: если вам интересно, как кто-то может декодировать CAPTCHA и хочет предотвратить его декодирование, вы должны сначала быть декодером CAPTCHA самостоятельно или нанять кого-то, кто знает слабость и алгоритм атаки очень хорошо!
Надеюсь помочь!;)
Взгляните на PWNtcha
Вы также можете прочитать Нарушение Visual CAPTCHA
Я участвовал в проекте, чтобы обходить изображения Captcha на веб-сайте TicketMaster около 8-9 лет назад для стороннего продавца билетов. Когда мероприятие поступило в продажу, как в концерте, наша сеть машин использовала бы несколько кредитных карт и почтовых адресов для покупки любого места в первых 10 рядах.
Вместо того, чтобы генерировать новую капчу каждый раз, ТМ имела ограниченный пул изображений, которые они могли повторно использовать. Мы создали бы уникальный цифровой отпечаток (контрольную сумму) для каждого изображения, а затем просто атакуем его некоторыми инструментами визуализации (LEADTOOLS.com) (чтобы удалить посторонние элементы, улучшить контрастность и т.д.), А затем использовать инструменты OCR. Это было удивительно эффективно.
Мы смогли запрограммировать большое количество программ, и мы сохранили те, которые мы не могли взломать для обработки человеком. Иногда у них будет пул из 20K изображений, поэтому сначала мы получим, может быть, 60-70% автоматически, но в итоге мы получим 100% -ный успех, потому что мы могли бы идентифицировать изображения, обработанные нашими людьми (в автономном режиме) на основе поиска их хэш в нашей базе данных. (То есть мы могли бы проверить изображение captcha на нашей базе данных на основе хеша, который мы создали, и если у нас уже было решение, мы могли бы просто сразу отправить ответ.)
Иногда они сбрасывали и заменяли свой пул изображений изображения captcha новым набором, но опять же, нам потребовалось бы немного времени, чтобы вернуться к ставке 100%. Фатальным недостатком этой конкретной системы было то, что они перерабатывали изображения, а не программно генерировали новые образы captcha каждый раз.
Но факт заключается в том, что, если финансовый стимул взломать capthcha достаточно высок, для создания распределенной платформы не требуется много места, где низкооплачиваемые неквалифицированные рабочие могут сидеть вокруг зарабатывания карманных изменений, чтобы взломать их весь день.
Внутри Индии CAPTCHA решает экономику http://www.zdnet.com/blog/security/inside-indias-captcha-solving-economy/1835