Я видел, как некоторые captchas декодируются с использованием javascript, php и т. Д. Как они это делают?
Например, также был расшифрован очень популярный captcha сайт megaupload .
Видеть:
OCR и нейронные сети в JavaScript
Здесь Джон Ресиг (создатель javascript-библиотеки 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.
Что вы должны знать перед запуском:
Основы обработки изображений
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
Вы также можете прочитать « Нарушение визуального 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