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

Содержание

Мой первый скрипт по разгадыванию капчи / Хабр

Предисловие:

Есть у меня один знакомый который держит интернет магазин. Балует меня иногда довольно-таки нестандартными задачами в программировании. Всё началось с того что, подумав, он решил что для его пользователей — будет очень удобно получать информацию о том где сейчас его посылка (товары с магазина он отправляет почтой России). Благо на сайте почты есть функция слежения за отправлением.

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

Не успел я пропить деньги за написанный мною скрипт — как на почте стали твориться странные вещи. Мой скрипт перестал работать и причиной тому стало то что сайт «Почты России» поставил хитрый блок — который при пустой сессии редиректил страницу таким образом что мой скрипт зацикливался. К слову — даже обычный посетитель их сайта с первого раза не может зайти к ним на сайт.

Решение проблемы заключалось в том чтобы скрипт при обращении к сайту почты следовал его пере направлению (CURLOPT_FOLLOWLOCATION), для убедительности я также заполнил CURLOPT_REFERER и CURLOPT_USERAGENT. После первого соединения можно было заново послать запрос и работа скрипта по получению информации по трекеру — продолжалась в штатном режиме. За свои не хитрые манипуляции мне выписали премию и я со спокойной душей занялся другими проектами.

Глава 1 — Удар со спины

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

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

Глава 2 — Подготовка к сражению

В первую очередь я начал смотреть на сам скрипт который выводит эту капчу


Увидел что в $_GET[‘Id’] странные цифры, но связи я к сожалению не обнаружил, зато я узнал что одна и таже картинка по одному адресу остаётся доступной только в течении 2х минут.

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

Для начала я сохранил себе около 20-ти разных вариантов капчи (с разными цифрами) — выяснилось что скрипт который выводит эти цифры меняет не только их x и y координаты, но и размер (от 1 до 4х пикселей) — Значит мне нужно было научить скрипт разгадывать ~40 разных чисел.

Теперь прощупав объём предстоящей работы начинаем кодить.


Наша капча размером width:70px; height:23px;. Циклом пробегаемся по всей картинке и узнаем цвет пикселя (белый = 0, не белый = 1) Информацию забиваем в массив. Теперь чтобы проверить всё ли правильно я делаю, для наглядности я рисую в соседнем цикле функцию — которая рисует таблицу и выставляет ячейке соответствующий цвет


Сохраняем проверяем.


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

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


И так — взяв одну опорную точку (в данном случае макушку цифры 1) я отсчитал несколько пикселей по оси X и Y и если они были черного цвета то скрипт говорил что это единица. Запустив тест я увидел что скрипт называет единицей числа 3,4,7 и 9 — логично что условий проверки должно быть больше. Для каждой цифры я добавил по 9 точек проверки и спустя 3 часа запустил скрипт который должен был разгадать капчу с цифрами 70039


И вот оно чудо! Скрипт уверено разгадал первую капчу (зная только цифры 7,0,3,9) — для убедительности я загрузил капчу в которой были те же цифры, но к моему сожалению скрипт не сработал т.к цифры отличались по высоте. Посмотрев на часы я решил что нужно больше опорных точек и что-то для автоматизации обучения.

Зная не только PHP, но и JavaScript сделал функцию которая по клику на ячейку заносила её в массив координат — позволяя мне выставлять для проверки — максимальное количество опорных точек


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


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

Глава 3 — Ответный удар

Зайдя ещё раз на сайт почты и загрузив для проверки ещё несколько вариантов капчи я убедился в том что скрипт абсолютно верно угадывает капчу с точностью в 100% — не плохо для первого раза!


Даже я оказался менее зорким чем мой скрипт.


На выходе получился php скрипт — размером 45 КБ. Который принимал id капчи на сайте «Почты России»


и в ответ отправлял код — который изображен на картинке. С легкостью подключил свою антикапчу к предыдущему скрипту (парсеру) и всё снова заработало!

На всё ушло порядка 8-ми часов и 10 кружек кофе. Знакомый был несказанно рад, за что снова выписал мне премию.

Эпилог

Уверен что вскоре «Почта России» снова ответит мне новым вызовом, который я с удовольствием приму.

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

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

Как обойти капчу, используя распознавание звука / Хабр

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


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

Подготовка

«Забегаешь в офис к конкурентам, у которых голосовое управление на компах, кричишь «Судо эрэм минус эрэф хоум» и убегаешь.» Из комментов.

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

Озвучивают они как буквы (причем русские), так и цифры.

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

Пока эти знания не сильно помогают. Как это все затолкать в пакет Сфинкса?

Установка Pocketsphinx, русской звуковой модели

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

Установка самого Pocketsphinx на windows (да и на linux) не сильно замысловата — скачать, установить.

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

Скачаем русский вариант — ссылка.

После распаковки русской модели в структуре файлов можно попробовать тестовый .wav файл decoder-text.wav cо следующим кодом на python:

import os
from pocketsphinx import AudioFile, get_model_path, get_data_path
#from pocketsphinx import Pocketsphinx

model_path = get_model_path()
data_path = get_data_path()

config = {
    'verbose': False,
    'audio_file': os.path.join(data_path, 'C://python3//decoder-test.wav'),
    'buffer_size': 2048,
    'no_search': False,
    'full_utt': False,
    'hmm': os.path.join(model_path, 'C://python3//zero_ru_cont_8k_v3//zero_ru.cd_cont_4000'),
    'lm': os.path.join(model_path, 'C://python3//zero_ru_cont_8k_v3//ru.lm'),
    'dict': os.path.join(model_path, 'C://python3//zero_ru_cont_8k_v3//ru.dic')    
    
}

audio = AudioFile(**config)
for phrase in audio:
    print(phrase)

Должно вывести в строку содержание аудиофайла: «илья ильф евгений петров золотой телёнок».
Если не вывело (как и в моей ситуации), то необходимо сконвертировать decoder-test.wav в другой аудиоформат.

Для этого понадобится ffmpeg.

Ffmpeg

После скачивания утилиты ffmpeg, положим decoder-test.wav в C:\python3\ffmpeg\bin.
Далее в командной строке конвертируем:

ffmpeg -i decoder-test.wav -ar 16000 decoder-test-.wav

Далее исправим в коде python ссылку на исходный аудиофайл:

'audio_file': os.path.join(data_path, 'C://python3//decoder-test-.wav'),

Теперь, после отработки кода:

Правда надо ждать как до второго пришествия, код очень медленно работает — около 20 сек.

Сконвертируем аудио капчи по тому же принципу из mp3 в wav и скормим аудио от капчи. Взглянем на работу кода:

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

Посмотрим как улучшить результат и одновременно его ускорить.

Словарь

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

Все символы надо поместить в обычный текстовый файл по одному в каждой строке в кодировке UTF-8.

Теперь надо сконвертировать словарь.

Понадобится установка perl (он нужен для работы конвертатора).

Далее скачаем проект для конвертации ru4sphinx.

И конвертируем ранее созданный словарь:

 C:\ru4sphinx-master\ru4sphinx-master\text2dict> perl dict2transcript.pl my_dictionary.txt my_dictionary_out.txt.

На выходе получаем словарь для работы:

Расширение словаря надо переименовать из .txt в формат .dic, а сам файл положить в доступное место.

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

#'dict': os.path.join(model_path, 'C://python3//zero_ru_cont_8k_v3//ru.dic')
    'dict': os.path.join(model_path, 'C://python3//my_dict.dic')

Прогоним через программу и посмотрим результат:

Лучше, но так же медленно и не все буквы правильно определились.

Создадим собственную модель

Это позволит в разы увеличить скорость работы и немного точность результата.

Пойдем коротким путем из инструкции.

Зайдем по ссылке и загрузим на сайт наш словарь, ранее созданный в формате .txt (не .dic!):

Нажмем «Compile…». На выходе можно скачать полученный пакет в архиве .tgz (он содержит все необходимые файлы):

Далее из архива возьмем файл с расширением .lm (наша модель).

Поправим python скрипт распознавания, заменив модель на вновь изготовленную:

#'lm': os.path.join(model_path, 'C://python3//zero_ru_cont_8k_v3//ru.lm'),
'lm': os.path.join(model_path, 'C://python3//my_model//1896.lm'),

Пробуем:

Работает заметно быстрее — менее секунды, кроме того, все буквы определены.

Но тут необходима небольшая ремарка.

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

Например, вместо буквы а, выводит э. Необходимо взять строку из словаря э:
э r y

и перенести(удалив старую) ее, поменяв букву:
а r y

Но так как буква «а» уже есть в словаре, то к букве надо добавить «(2)» (или 3,4), вообщем, порядковый номер, в зависимости сколько звуков уже есть в словаре:
a(2) r y

Заново конвертировать словарь не нужно. Таким нехитрым способом можно «подобрать» фонемы всех букв, почти.

Cherchez la femme

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

Если при запуске программы ничего не распознало — значит мы имеем дело с женским голосом, так можно фильтровать «женские» капчи.

Но что с ними делать?

Здесь надо поработать с конвертацией.

Например, с «мужской» капчей частота была 16000, а для женской «подойдет» 24000:

ffmpeg -i acap(3).mp3 -ar 24000 acap(3)2.wav

Все звуки определились (в каждой строке по звуку), но их соответствие хромает.

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

Однако, это для самостоятельного изучения.

Полезные ссылки:

1. home-smart-home.ru/raspberry-pi-pocketsphinx-offlajn-raspoznavanie-rechi-i-upravlenie-golosom

2.https://itnan.ru/post.php?c=1&p=351376

3. ru.wikipedia.org/wiki/Cherchez_la_femme

Файлы:

1. Программа.

2. Модель.

3. Русская модель.

4. Словарь.

5.Тестовые капчи.

6. ffmpeg.

7. Пачка капч.

Как включить автоматический ввод капчи в вордстате – Лайфхакер

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

Содержание

  • 1 Что такое капча?
  • 2 Почему капча появляется в вордстате и как от нее можно избавиться?
  • 3 Можно ли сделать ввод капчи автоматическим?
  • 4 Лучший метод избавления от капчи в вортстате
  • 5 Советы по отключению капчи от Яндекса

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

С этим видом проверки вы наверняка не раз сталкивались в интернете при поиске информации, регистрации на сайтах, распространении объявлений. Капча позволяет провести небольшую проверку и установить – пользователь на сайте настоящий или робот? Обычно капча представляет собой изображение с зашифрованными символами и поле для ввода ответа. Для человека разгадать капчу не представляет труда, однако для бота такая проверка чаще всего оказывается непреодолимой.chto takoe kapcha1 3 e1473146574938 - Как включить автоматический ввод капчи в вордстатеКапчи бывают разные, но чаще всего они представляют собой смесь букв и цифр, которые немного искажены для предотвращения сканирования роботом.

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

Почему капча появляется в вордстате и как от нее можно избавиться?

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

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

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

Можно ли сделать ввод капчи автоматическим?

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

Антикапча-сервис ручного распознаванияНад распознаванием капчи работают живые люди, поэтому сервису подвластно все, что способен распознать человек:

текстовые капчи, графические капчи: ReCaptcha V2, KeyCaptcha, FunCaptcha и др.

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

Лучший метод избавления от капчи в вортстате

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

Смотрите видео – Как подбирать ключевые слова на Wordstat.Yandex без капчи:

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

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

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

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

Советы по отключению капчи от Яндекса

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

как головоломки мешали людям / Блог компании Mail.ru Group / Хабр

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

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

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

Captcha — это автоматизированный публичный тест Тьюринга, который может пройти человек, но не компьютер. Изначально капча полагалась на способность человека определять и понимать визуальные / звуковые сигналы, которые ботам было крайне трудно разобрать. Такие механизмы были несовершенны: сами пользователи не всегда понимали, что от них требуется. Компьютеры, в свою очередь, учились распознавать объекты даже на сильно зашумленных изображениях.

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

Канадский стартап NuCaptcha демонстрировал видеокапчу: бегущие по искривленной линии символы, из которых человеку предлагалось распознать последние три. Исследовательская группа из Стенфордского университета быстро создала алгоритм для взлома этой видеотехнологии. Они также обходили защиту обычной капчи и проекта audioCAPTCHA, направленного на работу со слабовидящими или слепыми пользователями.

Стартап Are You a Human с помощью технологии PlayThru предлагает сыграть в мини-игру, в которой человеку необходимо выбрать нужный объект из ряда присутствующих и поместить его в определенное место. Хотя такой способ казался пользователю более понятным (и логичным), его также периодически подвергают попыткам взлома. Эта капча неэффективна, потому что не имеет достаточного количества элементов, чтобы предотвратить возможность перебора вариантов. Кроме того, высока вероятность получить правильный ответ, просто случайно угадав нужную последовательность действий. Каждый раз, когда капча пытается сделать что-то «приятное» и увлекательное для пользователя, возникает дыра в безопасности.

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

Пережив бурный расцвет, математическая капча быстро сошла в ноль, поскольку ответить на вопрос, сколько будет «3 + 3» для ботов не составляет никакого труда. Хитрость здесь в том, чтобы найти головоломку, которая оказалась бы трудна для ботов, но решаема для людей. Капчу, как на примере выше, можно решить, имея под рукой учебник по математическому анализу или доступ к WolframAlpha, но сколько людей готовы тратить свое личное время на поиски ответа?

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

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

Пример китайской капчи с сайта 12306.com, на которой нужно отметить картинку (или картинки) с изображением агата. Сложность в том, что картинка имеет низкое качество и размер — на иллюстрации выше можете оценить в оригинальном виде.

Капча с ныне умершего радиотехнического форума flyback.org.ru использовалась при регистрации нового пользователя. В капче предлагается решить задачу на определение энергии, накопленной в конденсаторе. Описание задачи: трансформатор имеет коэффициент трансформации Ом, Ом и Ом. Все элементы схемы идеальны, падение напряжения на диоде равно нулю. Входное напряжение: синусоидальное 50 Гц, с действующим значением 58 В. Определите, сколько Дж энергии будет накоплено в конденсаторе ?

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

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

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

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

Эта геометрическая капча примерно на одном уровне с математической — одинаково сложные задачи для человека и в равной степени неэффективные перед ботами. Если вы отвечаете случайным образом, у вас 15-процентная вероятность (1 шанс из 6) дать правильный ответ, что, конечно, не позволяет обеспечить хороший уровень безопасности. Для того чтобы ответить на вопрос капчи, у вас есть только 30 секунд.

Капча с сайта sveit.com (ныне заброшен) была основана на смешении сразу нескольких языков.

А вот капча hidden-3d.com живее всех живых. Вам всего лишь нужно найти скрытый код в изображении.

3D капча. На самом деле ничего сложного, если вы знаете программирование.

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

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

Музыкальная капча для сайта музыкантов. На сервере генерируется картинка из (псевдо)случайно выбранных четырех картинок нот и пауз. Имена картинок — цифры от 0 до 13 — соответствуют номеру позиции ноты на нотном стане, начиная от нижней добавочной. Ключ тоже случайный — басовый или скрипичный.

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

Эволюция капчи — это свидетельство прогресса ИИ. Первые надежные головоломки, которые использовались для защиты от ботов десять лет назад, теперь могут быть решены автоматически с помощью компьютеров в 99,8 % случаев. В то время как компьютеры становятся все лучше и лучше в решении головоломок, люди могут доказать свою человечность, выполняя другие типы задач.

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

В свое время в Mail.Ru Group пришли к тому же выводу: так появился сервис интеллектуальной капчи, не требующий от человека прохождения проверки. У нас более 100 млн пользователей, причем большая часть из них авторизована. А это значит, что с запросом на наши домены передаются сессионные куки, по которым мы определяем пользователя, а затем достаем его профиль, статистику, спам-рейтинг и т.д. Вся эта информация подается на вход алгоритма-классификатора, и на выходе мы получаем предположение о том, кем является пользователь — человеком или спам-ботом.

Софт: Наука и техника: Lenta.ru

Некоторое время назад компания Vicarious заявила, что научила компьютер разгадывать 90 процентов тестов CAPTCHA (по-русски просто «капча»). Капча — хорошо известный всем «тест на человечность», изображение, информацию в котором способен распознать лишь пользователь из плоти и крови. Обычный вид капчи — несколько букв и цифр в искаженном виде, размещенные на неоднородном фоне, чтобы предотвратить считывание компьютером.

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

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

В итоге разгадывание капчи — это многомиллионный бизнес, в котором заняты тысячи жителей Индии, Китая и многих других стран. Тамошние пользователи приспособились проходить тесты за небольшую плату. Специальные биржи по продаже рутинных заданий (например, Amazon Mechanical Turk) предлагают купить десятки разгаданных капч за несколько центов.

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

Алгоритм, разработанный Vicarious, справляется только с латинскими буквами, причем — контринтуитивно — внесение шума на качество распознавания не влияет. Единственное, что способно сломать алгоритм — фон в шахматную клетку. Но шахматной клетки нет ни у Google, ни у Yahoo!, ни у PayPal, чьи капчи, судя по ролику изобретателей, пали под натиском чудо-программы. Про компанию написали крупные научные журналы, что придало ее заявлению веса, а вечной паранойе специалистов по безопасности — оснований.

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

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

Но разгадка тайны конкретной капчи — одно, а вера в универсальность алгоритма — совсем иное. Многие ученые сомневаются в работоспособности решения Vicarious. Их скепсис понятен. Капча является частным случаем распознавания символов вообще. Тот, кто заявляет, будто умеет разгадывать 90 процентов капч, фактически утверждает, что умеет распознавать 90 процентов алфавитно-цифровых символов, понятных человеку. В этом смысле попытка решить капчу — амбициозная задача. И тот, кто с ней справится, облагодетельствует не только науку, но и культуру.

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

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

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

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

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

Для тех кому лень разгадывать капчу. или как разгадывать капчу на автомате!

Перейти к содержимому

  • Главная
  • Свежие темы
  • Спросить
  • Поиск
  • Правила
  • Новости zismo
  • Магазин

Diggernaut: документация для метаязыка | Captcha

Обход Captcha

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

Существует множество сервисов и программных продуктов, которые позволяют веб-мастеру внедрять на сайте капчу. Самый известный
— это сервисы Google ReCaptcha и Funcaptcha. Если Captcha сложная, а наша функция OCR
не поможет вам обойти это, то к вам придут специализированные сервисы с ручным решением CAPTCHA
помощь.Мы реализовали интеграцию с двумя такими сервисами, и ваши диггеры могут легко передать капчу
разрешить эти службы и получить в ответ специальный жетон или распознанные вручную письма
и цифры с картинки в автоматическом режиме.

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

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

2Captcha — сервис для решения изображения и капчи Google ReCaptcha v2.Для Google ReCaptcha v2 можно использовать режим «без прокси» (в обычном режиме вы должны использовать собственный защищенный паролем прокси
для парсинга, поскольку работникам 2Captcha потребуется доступ к веб-сайту с помощью captcha, используя ваш прокси-сервер).
Этот режим может быть полезен тем, кто не имеет собственных прокси-серверов и не хочет их использовать,
предпочитая использовать нашу прокси-сеть для парсинга. Пока это единственный сервис для решения Google ReCaptcha v3.

AntiCaptcha — сервис для разгадывания изображения и капчи Google ReCaptcha v2. Для Google ReCaptcha
v2 можно использовать режим «без прокси» (в обычном режиме вы должны использовать собственный защищенный паролем прокси
для парсинга, так как работникам AntiCaptcha потребуется доступ к веб-сайту с помощью captcha, используя ваш прокси-сервер).
Этот режим может быть полезен тем, кто не имеет собственных прокси-серверов и не хочет их использовать,
предпочитая использовать нашу прокси-сеть для парсинга.

DeathByCaptcha — может делать почти то же самое, что и AntiCaptcha, за исключением режима «без прокси». Также
для этого провайдера мы интегрировали только сервис для Google ReCaptcha v2. Следовательно, если
вы хотите использовать режим «без прокси» или разгадывать графическую капчу — воспользуйтесь сервисом AntiCaptcha.

Команда для разрешения капчи
captcha_resolve может использоваться в контекстах блока или страницы.Процесс полностью автоматизирован
для вас, но поскольку это ручная работа (сторонний процесс разрешения капчи), процесс может длиться
от 20 секунд до 2 минут. По завершении команды результат распознавания (или жетон
для ReCaptcha v2) будут сохранены в
переменная captcha.

Затем эта переменная может быть считана в регистр и отправлена ​​с формой проверки или с запросом на сервер.Ниже
мы даем вам пример того, как правильно закодировать логику работы для разрешения ReCaptcha v2 и
стандартная графическая капча.

Команда использует следующие параметры:

Параметр Описание
провайдер Обязательный параметр.Указывает провайдера, которого вы собираетесь использовать для разгадывания капчи. В
на данный момент поддерживаются следующие провайдеры:
deathbycaptcha.com, антикапча и 2капча.
тип Тип капчи. На данный момент поддерживаются следующие опции:
изображение для разрешения капчи изображения (работает только для провайдера AntiCaptcha),
recaptchav2 для разрешения Google ReCaptcha v2,
proxyless_recaptchav2 для разрешения Google ReCaptcha v2 в режиме «без прокси» (работает только с провайдерами AntiCaptcha и 2Captcha) и
recaptchav3 для разрешения Google ReCaptcha v3 (работает только с поставщиком 2Captcha).
При использовании провайдера Diggernaut в этом поле необходимо указать один из поддерживаемых идентификаторов веб-сайтов: amazon.
изображение Если тип captcha image или amazon, этот параметр используется для передачи изображения с captcha, закодированного в base64
формат.
имя пользователя Если вы используете поставщика Death By Captcha, этот параметр должен иметь имя пользователя для вашей учетной записи.
на deathbycaptcha.com платформа.
пароль Если вы используете провайдера Death By Captcha, этот параметр должен иметь пароль для вашей учетной записи.
на платформе deathbycaptcha.com.
апики Если вы используете провайдер AntiCaptcha или 2Captcha, этот параметр должен содержать ваш ключ API для AntiCaptcha / 2Captcha.
Платформа.
ключ сайта Ключ сайта — уникальный идентификатор сайта, на котором используется ReCaptcha v2 или v3. Обычно он извлекается автоматически, но если его нельзя извлечь
по какой-то причине вы можете установить его вручную как параметр.
действие Параметр специального действия, который используется для ReCaptcha v3.Обычно он извлекается автоматически, но если его нельзя извлечь
по какой-то причине вы можете установить его вручную как параметр.

Ниже вы можете увидеть пример того, как легко решить капчу Amazon:

                          # SET VARIABLE ДЛЯ ИСПОЛЬЗОВАНИЯ В КОМАНДЕ WALK
- набор_переменных:
    поле: «повторить»
    значение: "да"
# ОТКРЫТЬ СТРАНИЦУ В РЕЖИМЕ ПОВТОРА (КАК НАМ НУЖНО ПЕРЕЗАГРУЗИТЬ СТРАНИЦУ, ЕСЛИ ЕСТЬ CAPTCHA)
- ходить:
    на: https: // www.amazon.com
    повторение:
    делать:
    # ПЕРЕКЛЮЧИТЕ БЛОК КУЗОВА
    - найти:
        путь: тело
        делать:
        - разобрать
        # ПРОВЕРИТЬ, ЕСТЬ ли CAPTCHA
        - если:
            совпадение: введите символы, которые вы видите на этом изображении
            делать:
            # ЕСТЬ КАПЧА
            - набор_переменных:
                поле: «повторить»
                значение: "да"
            # СОБИРАЙТЕ ВСЕ НЕОБХОДИМЫЕ ПАРАМЕТРЫ СО СТРАНИЦЫ
            # СОХРАНИТЕ ИХ В ПЕРЕМЕННЫЕ
            - найти:
                путь: input [name = "amzn"]
                делать:
                - разобрать:
                    attr: value
                - нормализовать:
                    процедура: urlencode
                - набор_переменных: amzn
            - найти:
                путь: input [name = "amzn-r"]
                делать:
                - разобрать:
                    attr: value
                - нормализовать:
                    процедура: urlencode
                - набор_переменных: amznr
            # ПЕРЕЙТИ К БЛОКУ С ИЗОБРАЖЕНИЕМ CAPTCHA
            - найти:
                путь: div.подряд> img
                делать:
                # PARSE URL-адрес изображения
                - разобрать:
                    attr: src
                # ЗАГРУЗИТЬ ИЗОБРАЖЕНИЕ
                - ходить:
                    ценить, оценивать
                    делать:
                    # ПЕРЕКЛЮЧИТЬСЯ К БЛОКУ С ЗАКОДИРОВАННЫМ ИЗОБРАЖЕНИЕМ BASE64
                    - найти:
                        путь: imgbase64
                        делать:
                        # СОДЕРЖИТЕ СОДЕРЖАНИЕ И СОХРАНИТЕ ЕГО В ПЕРЕМЕННУЮ
                        - разобрать
                        - набор_переменных: capimg
                        # РЕШИТЬ CAPTCHA
                        - captcha_resolve:
                            провайдер: diggernaut
                            тип: амазонка
                            образ:
                        # ЧИТАТЬ ПЕРЕМЕННУЮ В РЕГИСТР
                        - variable_get: captcha
                        # ЕСЛИ КАПЧА РЕШЕНА
                        - если:
                            совпадение: \ S +
                            делать:
                            # ОТПРАВИТЬ НА СЕРВЕР AMAZON
                            - ходить:
                                на: https: // www.amazon.com/errors/validateCaptcha?amzn=&amzn-r=&field-keywords=
                                делать:
            еще:
            # НЕТ CAPTCHA, ВЫКЛЮЧИТЕ РЕЖИМ ПОВТОРА
            - набор_переменных:
                поле: «повторить»
                значение: "нет"
            # РАЗБОР СТРАНИЦЫ И ПОЛУЧЕНИЕ ДАННЫХ
                         
                     

Рассмотрим случай, когда на какой-то странице используется Google ReCaptcha v2. Мы будем использовать режим «без прокси»:

              # ЗАГРУЗКА СТРАНИЦЫ С CAPTCHA
- ходить:
    на: https: // www.nebraska.gov/sos/corp/corpsearch.cgi
    делать:
    # РАЗРЕШЕНИЕ CAPTCHA
    - captcha_resolve:
        провайдер: антикапча
        тип: proxyless_recaptchav2
        apikey: xxxxxxxxxxxxxxxxxxx
    - найти:
        путь: тело
        делать:
        # ПРОВЕРИТЬ, ЕСТЬ ЛИ У НАС ТОКЕН В ПЕРЕМЕННОЙ captcha
        - variable_get: captcha
        - если:
            совпадение: \ S
            делать:
            # ТОКЕН в порядке, ФОРМА ОТПРАВКИ
            - ходить:
                кому:
                    сообщение: https: // www.nebraska.gov/sos/corp/corpsearch.cgi
                    данные:
                        поиск: 1
                        keyword_type: все
                        search_type: num_search
                        corpname:
                        номер счета: 1000011010101
                        g-recaptcha-ответ:
                        отправить: отправить
                делать:
                # РАЗБОР СТРАНИЦЫ И ИЗВЛЕЧЕНИЕ ДАННЫХ
                 
         

Другой пример для изображения капчи:

                  # ЗАГРУЗИТЬ СТРАНИЦУ С CAPTCHA
- ходить:
    на: https: // eservices.cmcoh.org/eservices/home.page
    заголовки:
        Калитка-Focusedelementid: ''
        Уикет-Аякс: ''
    делать:
    # НАЙТИ ЭЛЕМЕНТ С КАПЧЕЙ ИЗОБРАЖЕНИЯ
    - найти:
        путь: img.captchaImg
        делать:
        # PARSE URL КАПЧИ ИЗОБРАЖЕНИЯ
        - разобрать:
            attr: src
        # ЗАГРУЗИТЬ ИЗОБРАЖЕНИЕ В КОДИРОВАНИИ BASE64
        - ходить:
            ценить, оценивать
            делать:
            - найти:
                путь: imgbase64
                делать:
                - разобрать
                - variable_set: изображение
                # RESOLVE CAPTCHA
                - captcha_resolve:
                    провайдер: антикапча
                    тип: изображение
                    apikey: xxxxxxxxxxxxxxxxxxx
                    образ:
        - найти:
            путь: а.anchorButton
            делать:
            - variable_get: captcha
            - если:
                совпадение: \ w +
                делать:
                # CAPTCHA, КАПЧА РАЗРЕШЕНА, ТАК МЫ МОЖЕМ ОТПРАВИТЬ ЕЕ НА СЕРВЕР С ФОРМОЙ
             
         

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

                  # ОТКРЫТЬ СТРАНИЦУ С КАПЧЕЙ
- ходить:
    на: https: // www.nebraska.gov/sos/corp/corpsearch.cgi
    делать:
    # RESOLVE CAPTCHA
    - captcha_resolve:
        провайдер: антикапча
        тип: proxyless_recaptchav2
        apikey: xxxxxxxxxxxxxxxxxxx
    - найти:
        путь: тело
        делать:
        # ПРОВЕРИТЬ, ИМЕЕТ ли переменная captcha токен
        - variable_get: captcha
        - если:
            совпадение: \ S
            делать:
            # ТОКЕН ЕСТЬ, ФОРМА ОТПРАВКИ
            - ходить:
                кому:
                    сообщение: https: //www.nebraska.gov / sos / corp / corpsearch.cgi
                    данные:
                        поиск: 1
                        keyword_type: все
                        search_type: num_search
                        corpname:
                        номер счета: 1000011010101
                        g-recaptcha-ответ:
                        отправить: отправить
                делать:
                - variable_clear: резюме
                - найти:
                    путь: тело
                    делать:
                    # ПРОВЕРИТЬ, ПРИНЯТ ЛИ ТОКЕН CAPTCHA
                    - найти:
                        дорожка: .g-recaptcha
                        делать:
                        # ЕСЛИ ДАННЫЙ БЛОК СУЩЕСТВУЕТ, ТОКЕН НЕДЕЙСТВИТЕЛЬНО
                        - разобрать:
                            attr: data-sitekey
                        - variable_set: резюме
                    - variable_get: резюме
                    - если:
                        совпадение: \ S
                        делать:
                        # CAPTCHA РАЗРЕШЕНА НЕПРАВИЛЬНО, ОТЧЕТ
                        - captcha_report
                        еще:
                        # CAPTCHA решена правильно, извлечение данных
             
         

Далее мы узнаем, как изменять изображения и сохранять их.

.

Как сэкономить на капчах?

Прежде всего. Чудес не бывает!

Эта информация будет полезна не всем, но кому-то она будет полезна благодаря лучшей настройке нашего расширения.

Второй. Мы уже оптимизируем ваши расходы

Когда есть несколько Recaptchas с одинаковым ключом sitekey (например, один для блока регистрации и один — для авторизации), мы отправляем только одну задачу на anti-captcha.com.

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

Не все типы капчи нужно решать за вас. Например, вам может не понадобиться Fancaptcha или обычные изображения с текстом на них. Вы можете сделать так, чтобы наше расширение не обращало на них внимания, сняв флажки «Решать Funcaptcha автоматически» и «Использовать предопределенные метки CAPTCHA для обычных изображений» в настройках плагина.

Также вы можете отключить автоматическое решение для видимой (обычной) reCAPTCHA 2 или невидимой reCAPTCHA (которая выглядит как небольшой значок в правом нижнем углу), сняв флажки с флажков «Решать reCAPTCHA 2 (я не робот) автоматически» и «Автоматически решать невидимую reCAPTCHA» соответственно.

Не всем нужна функция предварительного кэширования Recaptcha2

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

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

Экономия на Recaptcha

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

Не использовать повторно предыдущее решение reCAPTCHA 2 на той же веб-странице. — по умолчанию включено. Если выключено, то при появлении нового блока Recaptcah на той же веб-странице при условии, что предыдущий блок Recaptcha 2 был решен и решение еще не истекло (прошло менее 2 минут с момента его завершения), в этом состоянии новый Задача на решение рекапчи не будет создана. Это звучит как очевидная экономия, но примите во внимание, что функция обратного вызова может быть уже вызвана для старого (предыдущего) блока Recaptcha, и даже если срок действия старого решения еще не истек, он может уже использоваться целевым веб-сайтом и, следовательно, быть совершенно бесполезным для повторного использования.Поэтому не торопитесь его выключать, не зря он по умолчанию включен =)

Запускать решение reCAPTCHA 2 только при отображении окна запроса — по умолчанию отключено. Если задано, то задача решения рекапчи не будет запускаться до тех пор, пока не появится окно рекапчи, в котором вы должны отметить светофоры и витрины (то, что вы видите, когда нажимаете флажок «Я не робот»). Но эта опция задерживает время начала решения только из-за того, что вам нужно сначала нажать этот флажок «Я не робот».Во-вторых, вам нужен инструмент, который ставит этот флажок за вас. Экономия заключается в том, что рекапчи, которые вы не отметили явно, не будут решены.

Решать только представленные (не скрытые) на веб-странице reCAPTCHA 2 — по умолчанию отключено. Здесь под «скрытой» Recaptcha считается не невидимая, а та, которая существует в HTML-коде веб-страницы, но скрыта от пользователя в невидимом контейнере. Поскольку наше расширение анализирует HTML-код при поиске рекапчи, тогда, когда эта опция отключена, задача решения будет отправлена, даже если обычному пользователю не требуется решать эту рекапчу.И Invisible Recaptcha 2, на наш взгляд, не считается скрытым. Невидимый значок Recaptcha 2, который вы все еще можете видеть в правом нижнем углу, и если он не скрыт, он обрабатывается так же, как и обычный Recaptcha. Недостатком этой опции снова является задержка перед запуском процесса решения, поскольку этот блок recaptcha может быть фактически не виден для пользователя некоторое время.

Использование API

Используя API расширения AntiCaptcha, вы можете четко указать, какая капча должна или не должна решаться.Обратите внимание на методы resolveRecaptcha , resolveFuncaptcha и setImageCaptchaSelectors . Принципы их работы подробно описаны в статье по ссылке выше.

Дешевые капчи для вас!

.

новейших вопросов о капче — Stack overflow на русском

Переполнение стека

  1. Около
  2. Товары

  3. Для команд
  1. Переполнение стека
    Общественные вопросы и ответы

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

  3. Вакансии
    Программирование и связанные с ним технические возможности карьерного роста

  4. Талант
    Нанимайте технических специалистов и создавайте свой бренд работодателя

  5. Реклама
    Обратитесь к разработчикам и технологам со всего мира

  6. О компании

.

Leave a Comment

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