Неможливі капчі. Позбавляємося настирливої ​​captcha у Вконтакті

Масштабне оновлення програми XRumer, в якому значно еволюціонувала логіка реєстрації профілів на різних платформах, покращена робота з платформами Bitrix, Joomla, WordPress Forum, MyBB, VBulletin, XenForo, доданий механізм модифікації тексту, що відправляється, залежно від тематики сайту-реципієнта (новий макрос # theme), оновлено та збільшено бази, що додаються - загальний обсяг перевищив 8 мільйонів сайтів, покращено роботу з HTTPS та Google ReCaptcha-2, та багато іншого.

26 січня 2019

XRumer 16.0.18 + SocPlugin 4.0.63

Бази, що додаються, перевірені та оновлені, загальний обсяг збільшений до 8 (!) мільйонів підтримуваних ресурсів - блогів, форумів, гостьових книг, дощок, BBS, CMS, та інших платформ. База відомих тексткапч збільшена більш ніж на 2000 нових відповідей на антибот-питання і тепер складає 324 000 тексткапч. Істотно підвищено стабільність та швидкість роботи, оптимізовано витрату ресурсів: стеля досягає до 500 і більше потоків (залежно від режиму роботи). Поліпшено роботу з HTTPS. І основне, ключове покращення: багаторазово підвищено ефективність розсилок особистих повідомлень – режим MassPM. Плюс, багато інших покращень та виправлень:)

14 вересня 2018

XRumer 16.0.17

Важливе оновлення XRumer, що істотно оптимізує витрати ресурсів. Підвищена стабільність та швидкість роботи, збільшена стеля потоків. Тепер прохід по багатомільйонних базах більш комфортний! Також покращено роботу з HTTPS, JavaScript, покращено роботу з платформою Joomla K2, та багато іншого.

05 липня 2018

Необхідно включити JavaScript для того, щоб сайт працював коректно

Розпізнавання капчі / автоматичне введення капчі

Напевно, вже майже кожен стикався з написом при реєстрації на якому-небудь сайті: "Введіть число, яке Ви бачите" та спотворена картинка. Це капча (CAPTCHA, піктокод, тикет) - графічний захист, призначений для розрізнення людей та програм.

У процесі роботи програма XRumer здатна розпізнавати капчі, автоматично завантажуючи картинку і розшифровуючи її. Як показала практика, на розшифровку такого роду капчів йде не більше 1-1,5 секунди, а зазвичай того менше на комп'ютері з процесором з робочою частотою 1 ГГц. Траффіка цього йде зовсім небагато, т.к. такі картинки "важать" трохи більше 3-5 Кб.

Але це ще не все! новий XRumer 18.0.1 Eliteтепер здатний розпізнавати та обходити навіть такі види капчі, як ReCaptcha та DLE! А загальний список типів, що розпізнаються, збільшився більш ніж удвічі в порівнянні з XRumer 5.0:

І це далеко не всі види, тут не наведені зовсім тривіальні капчі, які використовувалися в ранніх версіях форумів і залишилися на багатьох з них. XRumer автоматично розпізнає тип капчі та використовує відповідний для цього типу алгоритм.

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

Antigate - це сервіс для автоматичного розпізнавання капчі. Якщо ми підключаємо його до сценарію, то при знаходженні капчі Datacol не видаватиме її для введення користувачеві, а відправить у сервіс для розпізнавання. Antigate зазвичай обробляє зображення від 7 до 15 секунд, після чого повертає результат обробки.

Не хочете щоразу вводити капчу вручну? Подивившись цю відеоінструкцію, ви зможете автоматизувати процес обробки капчі і значно прискорити швидкість парсингу.


Нагадаємо, що в Datacol Ви також знайдете вже готові парсера:

    Для інтернет магазинів:

    Змінимо раніше створений сценарій, щоб підключити Antigate до нього. Вибираємо дію обробки капчі. Встановлюємо метод розпізнавання Antigate. Тепер дуже важливо встановити властивості поточної капчі. Завдяки цьому процес автоматичного розпізнавання буде явно швидшим, а головне коректнішим. Капча у нас російська. Крім того, капча чутлива до регістру символів.

    Тепер залишилося запровадити ключ від API сервісу антигейт. Він задається у параметрі сценарію antigate_key. Нагадаємо, цей параметр був автоматично створений при додаванні стандартного блоку обробки капчі. Ключ від сервісу можна отримати в панелі користувача сервісу.

    Рекомендую збільшити налаштування максимальної ставки хоча б до 10$ за 1000 розпізнавань. Докладніше про цю та інші налаштування сервісу можна почитати в панелі користувача. Та й не забудьте поповнити свій баланс.

    Залишилось протестувати створений сценарій. Нагадаю, що для розпізнавання каптчі сервісу знадобиться якийсь час. Все відпрацювало чудово! Зауважте, що в деяких випадках сервіс може некоректно розпізнати капчу. Однак, завдяки умовам повторення, які ми налаштували у сценарії, розпізнавання кожної сторінки може запускатися до 3 разів.

    Збережемо сценарій. Запустимо кампанію. Бачимо, що капча була автоматично оброблена, і ми отримали потрібні дані. Зауважимо, що на більшості сайтів після введення правильної капчі вона не з'являється ще тривалий час.

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

Вирішити CAPTCHA

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

Перший погляд на 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 тега зображення ..сайт/common/rateit/captcha.asp?. Поряд із рядком адреси знаходиться елемент, що задає кількість капч, які потрібно завантажити для тестування. Так як програма може одночасно показувати тільки 12 зображень, в ньому передбачені елементи керування для посторінкового перегортання завантажених капч. Таким чином, при масштабному тестуванні ми зможемо перегортати завантажені капчі та переглядати результати їхнього розпізнавання. Кнопки Start та Stop запускають та зупиняють тестування відповідно. Після тестування потрібно оцінити результати розпізнавання зображень, відзначивши кожен із них як коректний чи некоректний. Ну і остання, найбільш Значна функціяслужить передачі будь-якого зображення до системи попередньої обробки, у якій задається фільтр, який видаляє із зображення шуми і спотворення. Щоб передати зображення в систему попередньої обробки, потрібно клацнути на потрібному зображенні правою кнопкою миші і в контекстному меню вибрати Send To Image Preprocessor.

Інтерфейс. Вкладка Options

Вкладка опцій містить різні елементи керування для конфігурації TesserCap. Тут можна вибрати OCR-систему, задати параметри веб-проксі, увімкнути переадресацію та попередню обробку зображень, додати HTTP-заголовки, а також вказати діапазон символів для системи розпізнавання: цифри, літери в нижньому регістрі, літери у верхньому регістрі, спеціальні символи.

Тепер про кожну опцію детальніше. Насамперед, можна вибрати OCR-систему. За замовчуванням доступна лише одна - Tesseract-ORC, так що морочитися з вибором не доведеться. Ще одна дуже цікава можливість програми – вибір діапазону символів. Візьмемо, наприклад, капчу з сайту - видно, що вона не містить жодної літери, а складається тільки з цифр. То навіщо нам зайві символи, які тільки збільшать ймовірність некоректного розпізнавання? Але якщо вибрати Upper Case? Чи зможе програма розпізнати капчу, що складається з великих букв будь-якої мови? Ні, не зможе. Програма бере список символів, що використовуються для розпізнавання, з конфігураційних файлів, що знаходяться в Program FilesFoundstone Free ToolsTesserCap 1.0tessdataconfigs. Поясню на прикладі: якщо ми вибрали опції Numerics та Lower Case, то програма звернеться до файлу lowernumeric, що починається з параметра tessedit char whitelist. За ним слідує список символів, які будуть використовуватися для розв'язання капчі. За промовчанням у файлах містяться лише літери латинського алфавіту, так що для розпізнавання кирилиці потрібно замінити або доповнити список символів.

Тепер трохи про те, для чого потрібне поле Http Request Headers. Наприклад, на деяких веб-сайтах потрібно залогінитись, щоб побачити капчу. Щоб TesserCap змогла отримати доступ до капчі, програмі необхідно передати в запиті HTTP такі заголовки, як Accept, Cookie і Referrer і т.д. Використовуючи веб-проксі (Fiddler, Burp, Charles, WebScarab, Paros і т.д.) перехопити заголовки запиту, що посилаються, і ввести їх у поле введення Http Request Headers. Ще одна опція, яка напевно стане в нагоді, - це Follow Redirects. Справа в тому, що TesserCap за умовчанням не слід переадресації. Якщо тестова URL-адреса повинна переадресовуватися для отримання зображення, потрібно вибрати цю опцію.

Ну і залишилася остання опція, що включає/вимикає механізм попередньої обробки зображень, який ми розглянемо далі. За замовчуванням попередня обробка зображень вимкнена. Користувачі спочатку налаштовують фільтри попередньої обробки зображень відповідно до тестованих CAPTCHA-зображень і потім активують цей модуль. Всі зображення CAPTCHA, що завантажуються після включення опції Enable Image Preprocessing, проходять попередню обробку і вже потім передаються в OCR-систему Tesseract для вилучення тексту.

Інтерфейс. Вкладка Image Preprocessing

Ну от ми й дісталися найцікавішої вкладки. Саме тут налаштовуються фільтри для видалення з капч різних шумів та розмиття, які намагаються максимально ускладнити завдання системі розпізнавання. Процес налаштування універсального фільтра гранично простий і складається із дев'яти етапів. На кожному етапі попередньої обробки зображення зміни відображаються. Крім того, на сторінці є компонент перевірки, який дозволяє оцінити правильність розпізнавання капчі при накладеному фільтрі. Розглянемо докладно кожен етап.

Етап 1. Інверсія кольору

На цьому етапі інвертуються кольори пікселів CAPTCHA-зображень. Нижче наведений код демонструє, як це відбувається:

For(each pixel in CAPTCHA) ( if (invertRed is true) new red = 255 - current red if (invertBlue is true) new blue = 255 - current blue if (invertGreen is true) new green = 255 - current green

Інверсія одного або декількох кольорів часто відкриває нові можливості для перевірки CAPTCHA-зображення, що тестується.

Етап 2. Зміна кольору

На цьому кроці можна змінити компоненти кольорів для всіх пікселів зображення. Кожне числове поле може містити 257 (від 1 до 255) можливих значень. Для RGB-компонентів кожного пікселя в залежності від значення в полі виконуються такі дії:

  1. Якщо значення дорівнює -1, відповідний колірний компонент не змінюється.
  2. Якщо значення не дорівнює -1, всі знайдені компоненти вказаного кольору (червоний, зелений або синій) змінюються відповідно до введеного значення. Значення 0 видаляє компонент, значення 255 встановлює його максимальну інтенсивність і т.д.

Етап 3. Градація сірого (Шкала яскравості)

На третьому етапі всі зображення конвертуються зображення в градаціях сірого. Це єдиний обов'язковий етап перетворення зображень, який не можна пропустити. Залежно від вибраної кнопки виконується одна з наступних дій, пов'язаних із колірною складовою кожного пікселя:

  1. Average -> (Red + Green + Blue)/3.
  2. Human -> (0.21 * Red + 0.71 * Green + 0.07 * Blue).
  3. Середня кількість мінімальних і максимальних кольорових компонентів -> (Мінімум (Red + Green + Blue) + Maximum (Red + Green + Blue))/2.
  4. Minimum -> Minimum (Red + Green + Blue).
  5. Maximum -> Maximum (Red + Green + Blue).

Залежно від інтенсивності та розподілу колірної складової CAPTCHA будь-який з цих фільтрів може покращити вилучене зображення для подальшої обробки.


Етап 4. Згладжування та різкість

Щоб ускладнити вилучення тексту з CAPTCHA-зображень, додають шум у формі однопіксельних або багатопіксельних точок, сторонніх ліній і просторових спотворень. При згладжуванні зображення зростає випадковий шум, усунення якого потім використовуються фільтри Bucket чи Cutoff. У числовому полі Passes слід вказати скільки разів потрібно застосувати відповідну маску зображення перед переходом на наступний етап. Давай розглянемо компоненти фільтра для згладжування та підвищення різкості. Доступні два типи масок зображення:

  1. Фіксовані маски. За замовчуванням TesserCap має шість найпопулярніших масок зображення. Ці маски можуть згладжувати зображення або збільшувати різкість (перетворення Лапласа). Зміни відображаються відразу після вибору маски за допомогою кнопок.
  2. Користувальницькі маски зображення. Користувач також може налаштувати маски обробки зображень, вводячи значення в числові поля і натискаючи кнопку Save Mask. якщо сума коефіцієнтів у цих віконках менша за нуль, видається помилка і маска не застосовується. При виборі фіксованої маски не потрібно використовувати кнопку Save Mask.

Етап 5. Вводимо відтінки сірого

На цьому етапі обробки зображення пікселі можуть бути пофарбовані в широкий діапазон відтінків сірого. Цей фільтр відображає розподіл градацій сірого у 20 бакетах (bucket)/діапазонах. Відсоток пікселів, пофарбованих у відтінки сірого в діапазоні від 0 до 12, вказаний у бакеті (bucket) 0, відсоток пікселів, пофарбованих у відтінки сірого в діапазоні від 13 до 25, - у бакеті (bucket) 1 і т. д. вибрати одну з наступних дій для кожного діапазону значень, що відповідають відтінкам сірого:

  1. Залишити без зміни (Leave As Is).
  2. Замінити білим (White).
  3. Замінити чорним (Black).

Завдяки цим опціям можна контролювати різні діапазони відтінків сірого, а також скорочувати/вилучати шум шляхом, змінюючи відтінки сірого у бік білого або чорного.

Етап 6. Налаштування відсікання (cutoff)

Цей фільтр будує графік залежності значення рівня сірого від частоти народження і пропонує вибрати відсікання. Принцип роботи фільтра, що відсікає, показаний нижче в псевдокоді:

If (pixel's grayscale value<= Cutoff) pixel grayscale value = (0 OR 255) ->в залежності від того, яка опція обрана (<= или =>: Set Every Pixel with value<=/=>Threshold to 0. Remaining to 255)

Графік показує докладний розподіл пікселів CAPTCHA за кольорами та допомагає видалити перешкоди за допомогою відсікання значень рівня сірого.

Етап 7: Обтісування (chopping)

Після застосування згладжуючого, відсікаючого, bucket- та інших фільтрів CAPTCHA-зображення все ще можуть бути зашумлені однопіксельними або багатопіксельними точками, сторонніми лініями та просторовими спотвореннями. Принцип роботи фільтра обтісування полягає в наступному: якщо кількість суміжних пікселів, пофарбованих у цей відтінок сірого, менше величини в числовому полі, фільтр обтісування надає їм значення 0 (чорний) або 255 (білий) на вибір користувача. У цьому CAPTCHA аналізується як і горизонтальному, і у вертикальному напрямі.

Етап 8: Зміна ширини кордону

Як стверджує автор утиліти, в ході початкових досліджень та розробки TesserCap він неодноразово зазначав, що коли CAPTCHA-зображення мають товсту граничну лінію і її колір відрізняється від основного фону CAPTCHA, деякі системи OCR не можуть розпізнати текст. Цей фільтр призначений для обробки граничних ліній та їх зміни. Граничні лінії з шириною, яка вказана у числовому полі, забарвлюються у чорний або білий на вибір користувача.

Етап 9: Інверсія сірого відтінку

Цей фільтр проходить кожен піксель і замінює його значення рівня сірого на новий, як показано нижче в псевдокоді. Інверсія сірого проводиться для припасування зображення під колірні налаштування OCR-системи.

For(each pixel in CAPTCHA) new grayscale value = 255 – current grayscale value

Етап 10: Перевірка розпізнавання капчі

Мета даного етапу – передати попередньо оброблене CAPTCHA-зображення OCR-системі для розпізнавання. Кнопка Solve бере зображення після фільтра сірого інверсії, відправляє в OCR-систему для вилучення тексту і відображає повернутий текст у графічному інтерфейсі. Якщо розпізнаний текст збігається з текстом на капчі, то ми правильно задали фільтр для попередньої обробки. Тепер можна перейти на вкладку опцій та увімкнути опцію попередньої обробки (Enable Image Preprocessing) для обробки всіх наступних завантажених капч.

Розпізнаємо капчі

Ну що ж, мабуть, ми розглянули всі опції цієї утиліти, і тепер непогано було б протестувати якусь капчу на міцність.


Результат аналізу капчі сайт із попередньою
обробкою зображень. Судячи з результатів, фільтр
підібрати не вдалося

Отже, запускаємо утиліту та йдемо на сайт журналу. Бачимо список свіжих новин, заходимо в першу-ліпшу і прогортаємо до місця, де можна залишити свій коментар. Ага, комент так просто не додати (ще б пак, а то б давно вже все спам'яли) - потрібно вводити капчу. Ну що ж, перевіримо, чи це можна автоматизувати. Копіюємо URL картинки та вставляємо його в адресний рядок TesserCap. Вказуємо, що потрібно завантажити 12 капч, та натискаємо Start. Програма слухняно завантажила 12 картинок та спробувала їх розпізнати. На жаль, усі капчі виявилися або не розпізнаними, про що свідчить напис -Failed-під ними, або розпізнані неправильно. Загалом, не дивно, оскільки сторонні шуми та спотворення були видалені. Цим ми зараз і займемося. Тиснемо правою кнопкою миші на одну з 12 завантажених картинок і відправляємо її в систему попередньої обробки (Send To Image Preprocessor). Уважно розглянувши всі 12 капч, бачимо, що вони містять лише цифри, тому йдемо на вкладку опцій та вказуємо, що розпізнавати потрібно лише цифри (Character Set = Numerics). Тепер можна перейти на вкладку Image Preprocessing для налаштування фільтрів. Відразу скажу, що погравшись із першими трьома фільтрами («Інверсія кольору», «Зміна кольору», «Градація сірого») я не побачив жодного позитивного ефекту, тому залишив там все по дефолту. Я вибрав маску Smooth Mask 2 і встановив кількість проходів рівним одному. Фільтр Grayscale buckets я пропустив і перейшов одразу до налаштування відсікання. Вибрав значення 154 і вказав, що ті пікселі, яких менше, потрібно встановити в 0, а ті, яких більше, в 255. Щоб позбавитися від точок, що залишилися, включив chopping і змінив ширину кордону до 10. Останній фільтр включати не було сенсу, тому я одразу натиснув на Solve.

На капчі я мав число 714945, але програма розпізнала його як 711435. Це, як бачиш, зовсім неправильно. Зрештою, як я бився, нормально розпізнати капчу мені так і не вийшло. Довелося експериментувати із pastebin.com, які без проблем вдалося розпізнати. Але якщо ти виявишся посидючішим і терплячим і зумієш отримати коректне розпізнавання капч з сайт, то відразу заходь на вкладку опцій і включай попередню обробку зображень (Enable Image Preprocessing). Потім переходь на Main і, клікнувши на Start, завантажуй свіжу порцію капч, які тепер будуть попередньо оброблятися твоїм фільтром. Після того, як програма відпрацює, познач коректно/некоректно розпізнані капчі (кнопки Mark as Correct/Mark as InCorrect). З цього моменту можна переглядати зведену статистику розпізнавання за допомогою Show Statistics. Загалом це своєрідний звіт про захищеність тієї чи іншої CAPTCHA. Якщо стоїть питання про вибір того чи іншого рішення, то за допомогою TesserCap можна провести своє власне тестування.

Результат перевірки CAPTCHA на популярних сайтах

Веб-сайт та частка розпізнаних капч:

  • Wikipedia > 20–30 %
  • Ebay > 20-30%
  • reddit.com > 20-30%
  • CNBC > 50%
  • foodnetwork.com > 80-90%
  • dailymail.co.uk > 30%
  • megaupload.com > 80%
  • pastebin.com > 70-80%
  • cavenue.com > 80%

Висновок

CAPTCHA-зображення є одним із найефективніших механізмів захисту веб-додатків від автоматизованого заповнення форм. Однак слабкі капчі зможуть захистити від випадкових роботів і не встоять перед цілеспрямованими спробами їх вирішити. Як і криптографічні алгоритми, CAPTCHA-зображення, ретельно протестовані та забезпечують високий рівеньбезпеки, є найбільш найкращим способомзахисту. На основі статистики, яку навів автор програми, я вибрав для своїх проектів reCaptcha і рекомендуватиму її всім своїм друзям - вона виявилася найстійкішою із протестованих. У будь-якому випадку не варто забувати, що в Мережі є багато сервісів, які пропонують напівавтоматизоване рішення CAPTCHA. Через спеціальний API ти передаєш сервісу зображення, а через нетривалий час повертає рішення. Вирішує капчу реальна людина (наприклад, з Китаю), отримуючи за це свою копійчину. Тут уже жодного захисту немає. 🙂

Доброго часу доби, пані та панове.

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

При великих обсягах того ж тексту або запитів, ви можете зіткнутися з тим, що запит на введення капчі вилітатиме кожні 10 секунд. Не дуже зручно, правда? Антикапча позбавляє вас необхідності вводити ці цифри і літери вручну. Це роблять інші люди, які заробляють на їхньому розгадуванні. Вам потрібно лише сплатити послуги сервісів, які пропонують автовведення капчі.

Більшість програм, яка співпрацює з онлайн-сервісами (Вордстат, Google Аналітика і т. д.), вимагає постійного введення капчі. Таким онлайн-проектам не вигідно, щоби з ними працювали боти, тому вони всіма силами намагаються з цим боротися.

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

Капчу розгадують реальні люди, отримуючи за цю винагороду. Вони працюють у спеціальному вікні, скрипт якого перенаправляє капчу з вашої програми прямо до них. При правильному введенні відбувається автозаповнення. Ваша програма працює без перебоїв і вам більше не треба турбуватися з цього приводу.

Сайти розпізнавання капчі пропонують своїм працівникам фіксовану ставку за капчу. Вам як клієнтам потрібно внести певну суму на баланс. Потроху вона зменшуватиметься.

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

За допомогою спеціальних кодів або даних від облікового запису на такому сайті, ви зможете інтегрувати потрібну програму з сервісом.

Список онлайн-сервісів для розпізнавання капчі

Якщо ви хочете, щоб ваші утиліти працювали в режимі “авто”, то вам потрібно ознайомитися з цим списком. Тут я представлю на ваш суд найпопулярніші сайти, які допоможуть позбавитися потреби вводити капчу вручну.

RuCaptcha

RuCaptcha – популярний проект, який вирішує проблему роботи з багатьма програмами. Ціни тут вище, ніж в інших, на 10 рублів, але якість і швидкість роботи цьому відповідає.

Вміє працювати з усіма типами перевірки на робота, тому ви можете не турбуватися, якщо раптом вискочить нова капча від Гугла, де потрібно вибрати якісь дорожні знаки тощо, користувачі РуКапчі легко з цим впораються за кілька хвилин.

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

2Captcha

Англомовний ресурс дуже схожий на РуКапчу. Середня ціна за 1000 розгадувань – півбаксу. Виходячи з цього можна дійти висновку, що ціни, як на ринку СНД.

2Captcha відмінно працює з Гуглом. Як правило, там англомовні працівники, які спеціалізуються суто на гуглівських капчах. З російськими варіантами (від того ж Яндекса) може виникнути проблема. Але, гадаю, свій виконавець знайдеться і там.

Anti Captcha

Anti Captcha – сучасний сервіс (колишній Антигейт), який надає послуги автоматичного розгадування символів. Проект відрізняється максимально спрощеним API, великою кількістю виконавців та низькими цінами.

Порівняльне дешеві розцінки та якісне виконання послуги точно не залишить вас байдужими. Сайт відомий у Рунеті, тому середній час розгадування символів складає всього 10 – 15 секунд. Тобто вам взагалі майже не доведеться чекати, доки саме вашу капчу розгадають.

Проект придатний для розпізнавання у браузері. Взаємно корисний варіант, який може допомогти заробити новачкам, і водночас полегшити роботу професіоналам.

Який із сервісів вибрати – вирішуйте самі. Кожен має свої переваги та недоліки. Можна сказати одне: кожен проект працює досить тривалий час. Ви можете не турбуватися, що вас обдурять, вкрадуть ваші гроші або надішлють якісь віруси на ПК. Такого точно не буде, проте цього не скажеш про інших.

Будьте уважні під час вибору сервісу антикапчі. У Рунеті повним-повнісінько фейків, які займаються шахрайством. Якщо ви раптом вирішили спробувати дешевший невідомий проект, то краще вам перед використанням перевірити відгуки про нього. Цілком можливо, що це фішинговий ресурс, який займається збиранням грошей із довірливих користувачів.

Інструкція по роботі з сервісами

Після того, як ви оберете онлайн-сервіс антикапчі, вам потрібно буде якось його використовувати. Зазвичай у таких сервісах є спеціальні ключі – їх ви отримуєте у своєму акаунті, після чого вводите у спеціальне поле програми. У рамках сучасного матеріалу я розгляну РуКапчу.

Переходимо до розділу “API вебмайстру”, де бачимо приблизно таку картину.

Тут є поле "captcha KEY" - воно нам і потрібно. Копіюємо цей ключик і йдемо в налаштування антикапчі нашої програми.

Ставимо галочку "Використовувати сервіс антикапчі", вибираємо сервіс зі списку, що випадає, і вставляємо ключ. Готово! Тепер наша програма автоматично “розгадуватиме” капчу за допомогою відповідного сервісу. Більше ніяких дій вам не потрібно. Лише своєчасно поповнюйте рахунок на сайті.

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

Висновок

Тепер ви знаєте, як обійти введення символів та різні перевірки "Ви не робот?" за допомогою онлайн-сервісів. Зручна практика та проста реалізація. Ви можете назавжди прибрати капчу зі свого життя, лише зрідка поповнюючи баланс. Як правило, на такі проекти йде дуже мало грошей, але скільки користі.

У тому ж Кей Колекторі ця капча може часто вилітати, заважаючи вам виконувати свою роботу. А так підключили програму до сервісу, запустили збір семантичного ядра і можна зайнятися своїми справами. Те саме стосується інших утиліт, які вимагають постійного введення символів.

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

Вкотре бачачи картинку з цифрами - наважився. У голові вже давно проносилися думки, зламати якусь капчу:)

Ставлю собі завдання: Написати скрипт, який розшифровуватиме показану капчу і випльовуватиме дорогоцінні циферки

Назва сайту спеціально не наводжу - самі здогадаєтеся:)

Тож поїхали!

Аналізуємо картинку

Для початку треба переглянути якнайбільше таких капч, щоб виявити подібності/відмінності, якісь закономірності. Для цього я скачав близько 50 капч. Серед них можна вибрати основні, які містять максимум відмінностей:

Взагалі люблю вдивлятисяу числа, оскільки свого часу багато часу присвятив вивченню математики:)

Розглядаємо і розуміємо:

  • картинка чорно-біла, у форматі gif
  • розмір картинки може змінюватися, але цифри завжди стоять по центру (правда, вертикально вони вирівняні не дуже по центру)
  • використовується градієнт, його напрям може змінюватися в 2 сторони
  • крім градієнта є, " кутовий градієнт" (так я його обізвав, не штовхайте:)), який йде з кута під кутом 45 ( ще раз не штовхайте :)) це просто лінія-діагональ, в моєму розумінні
  • всього я виявив 6 різних шрифтів написання (точніше 3, інші 3 є їх похилими версіями)
  • пікселі всіх цифр не темніші за кольори #606060, але не одного кольору
  • цифр 3-5 у капчі, висотою не вище 14px

Шукаємо рішення

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

Прийшов до такого рішення:

  • заводимо масив з відбитками
  • обрізаємо картинку з усіх боків, зайве треба викинути
  • видаляємо зайві кольори - це градієнті кутовий градієнт
  • проходимо по всіх пікселях зліва-направо зверху-вниз, і якщо колір пікселя відповідає кольору цифри (>= #606060), то звіряємо з відбитками, з усіма по порядку

Реалізація

Результати

Тестування

Для тестування я скачав 200 таких капч, на моєму домашньому ПК скрипт розібрав їх ~ за 19 секунд.
Це приблизно 10 капч за секунду.

З цих 200 не було виявлено жодної помилки, скрипт відмінно відпрацював:)

Підсумки

Я написав клас CapCrack, котрий розбирає капчу.

Якщо є бажання детальніше розібратися в алгоритмі, або протестувати на своєму ПК, можете поглянути на код: cap_crack.zip

На цьому успіху я не зупинився і вирішив спробувати написати скрипт для скачки файлів із сайту, в автоматичному режимі, але це вже зовсім інша історія:) варта окремої статті.