Автосабмит hCaptcha / Autosubmit hCaptcha

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 187
Благодарностей
1 032
Баллы
113
Добрый день всем

Часто на форуме ищут hCaptcha, особенно она мешает на сайтах с Cloudflare.
Сам я не знаю javascript, поэтому этот шаблон стал возможен благодаря моей совместной работе с rucaptcha.com.

82417

1) В первую очередь при создании окна страницы выполняется следующий javascript (добавляем javascript, выполнить - при создании окна, количество - один раз):
JavaScript:
window.myInterval = setInterval(() => {
    if (window.hcaptcha) {
        console.log('hcaptcha available, lets redefine render method')
        // if hcaptcha object is defined, we save the original render method into window.originalRender
        window.originalRender = hcaptcha.render
        // then we redefine hcaptcha.render method with our function
        window.hcaptcha.render = (container, params) => {
            console.log(container)
            console.log(params)
            // storing hcaptcha callback globally
            window.hcaptchaCallback = params.callback
            // returning the original render method call
            return window.originalRender(container, params)
        }
        clearInterval(window.myInterval)
    } else {
        console.log('hcaptcha not available yet')
    }
}, 10)
Скрин для тех, кто не совсем понял:
82450

2) Далее надо открыть страницу с сайтом

3) Получаем токен hCaptcha. Можете использовать любой удобный вам способ

В шаблоне я привел 2 примера кубиков - для rucaptcha.com и для Capmonster.Cloud.
В настройках при отправке запроса на решение токена поддерживаются следующие функции, помимо основных:
  • отправка прокси
  • параметр data
  • выбор типа - invisible или нет
  • отправка юзерагента
Для подключения моей библиотеки в свой шаблон не нужно создавать проект в проекте, только выполните следующие действия:
A. Копируем библиотеки (файлы .dll) в папку ExternalAssemblies
B. Добавляем библиотеки через "Добавить -> Ссылки из GAC" и далее нажимаем на иконку и поочередно добавляем все библиотеки с пункта 1 из папки ExternalAssemblies в свой проект
C. Нажимаем "Добавить -> Директивы using и общий код" и в них на вкладке "Директивы using" вставляем следующие директивы:
C#:
using NSED.RecognitionServices.Rucaptcha;
using NSED.RecognitionServices.CaptchaSettings;
using NSED.Proxy;
D. Создаем кубик C# кода и вставляем туда следующий код:
C#:
//Настраиваем параметры hCaptcha
string proxyString = instance.GetProxy();
WebProxy proxy = proxyString == "" ? null : new WebProxy(proxyString);

hCaptchaSettings settings = new hCaptchaSettings()
{
    //Раскомментировать следующую строку, если нужно отправлять задание вместе с прокси
    //Proxy = proxy,
    Data = null,
    PageUrl = new Uri("https://lessons.zennolab.com/captchas/hcaptcha/nosubmit.php?level=moderate"),
    Invisible = false,
    SiteKey = "d391ffb1-bc91-4ef8-a45a-2e2213af091b",
    //Юзерагент тоже можете раскомментировать при желании
    //У меня разгадка CloudFlare cработала без отправки юзерагента
    //UserAgent = project.Profile.UserAgent,
};
string apiKey = NSED.Browser.Support.SupportClass.GetServiceApiKey("Rucaptcha");
if (apiKey == null)
    throw new Exception("Ключ для сервиса Rucaptcha не найден");
RucaptchaService hc = new RucaptchaService(apiKey);
hCaptchaTask task = new hCaptchaTask(settings, hc);

//Получаем токен
task.Recognize();
project.Variables["token"].Value = task.Token;
4) Выполняем финальный callback
C#:
string token = project.Variables["token"].Value;

//устанавливаем значения токена в текстовые поля
instance.ActiveTab.FindElementByXPath("//textarea[@name='g-recaptcha-response']", 0)
    .SetValue(token, "None");
HtmlElement heHcaptchaTB = instance.ActiveTab.FindElementByXPath("//textarea[@name='h-captcha-response']", 0);
if (heHcaptchaTB.IsVoid)
    throw new Exception("Не найдено поле для вставки токена");
heHcaptchaTB.SetValue(token, "None");


//Выполняем callback функцию
string script = [email protected]"
    hcaptcha.getResponse = () => '{token}';
    window.hcaptchaCallback('{token}');";
instance.ActiveTab.MainDocument.EvaluateScript(script, true);
Важные замечания:
1) К шаблону идет библиотека около 80 Mb, меньше сделать по размеру я её не могу, так как это целый комплекс из различного функционала для работы с Zennoposter и не только
2) Rucaptcha использует тот же код в своем расширении и расширение работает без проблем.
3) В Cloudflare тоже работает, но не всегда. Всё зависит от токена - иногда у меня приходил неверный токен, когда я слал запрос с юзерагентом в рукапчу. Как только отключил отправку юзерагента, то Cloudflare пропустил.
4) Если хотите использовать мой метод получения токена, не забывайте добавлять библиотеки в папку ExternalAssemblies, ссылки в GAC и директивы using. В противном случае достаточно просто скопировать первый и последний кубики шаблона.
 

Вложения

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

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

Последнее редактирование:

RoyalBank

Client
Регистрация
07.09.2015
Сообщения
448
Благодарностей
421
Баллы
63
  • Спасибо
Реакции: Samoylov_83

RoyalBank

Client
Регистрация
07.09.2015
Сообщения
448
Благодарностей
421
Баллы
63

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 187
Благодарностей
1 032
Баллы
113
хороший шаблон, да видимо не для всех :bk:

Посмотреть вложение 82445
Там достаточно добавить первый и последний кубики вставить в свой шаблон, код предоставлен.
Ещё в тему я добавил шаблон с поддержкой старых версий Zennoposter. Не уверен, что открывается
есть повод обновиться =)
Возможно старая версия поможет кому-то
 

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 187
Благодарностей
1 032
Баллы
113

Phoenix78

Client
Регистрация
06.11.2018
Сообщения
6 950
Благодарностей
3 201
Баллы
113
добавил пояснительный скрин
так выделил же нужное. загружать скрипт при загрузки страницы, а не при создании окна.
так то вроде оба режима работают, но загрузка страницы логически понятна :bk:
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
982
Благодарностей
1 258
Баллы
93
Все хорошо! Но... всё же исходники бро на конкурсе - это святое!
 

SHILY

Client
Регистрация
05.06.2016
Сообщения
181
Благодарностей
160
Баллы
43
Отличная работа, осталось потестить!:-)
 

Carty

Client
Регистрация
16.06.2021
Сообщения
12
Благодарностей
17
Баллы
3
@BAZAg в исходниках по сути лишь отправка капчи на разгадывание. Ничего интересного, одним словом. Вся фишка статьи в js функции, которая перехватывает callback и достает его "наружу".
 

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 187
Благодарностей
1 032
Баллы
113
@amyboose , не знаешь, в чём может быть проблема (это при добавлении библиотеки в ссылках из GAC)?
Посмотреть вложение 82678
1) Ошибка Zennoposter. Проверить можно установкой версии 7.4.0.2. Также причина может быть в том, что Zennoposter использует новые библиотеки ZennoLab.CommandCenter.dll и ZennoLab.InterfacesLibrary.dll. Решение есть - надо перекомпилировать под новые библиотеки, но пока версия 7.5 содержит кучу багов я не могу перекомпилировать и у самого нет обновы на 7.5 пока ещё
2) Твои библиотеки конфликтуют с моими, от которых зависит ZennoEmulator. Проверить можно путем временного перемещения всех библиотек из папки External Assemblies и помещения в External Assemblies только моих библиотек.
 
  • Спасибо
Реакции: volody00

volody00

Client
Регистрация
06.09.2016
Сообщения
444
Благодарностей
473
Баллы
63
К сожалению, решение не вышло универсальным. Так, на рамблере сабмит не отправляет (а может у меня руки кривые). Никак я не могу понять, как же его всё-таки отправлять. Сколько раз подступался, так и не смог понять эту кухню до конца. Но всё равно спасибо за статью
 

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 187
Благодарностей
1 032
Баллы
113
К сожалению, решение не вышло универсальным. Так, на рамблере сабмит не отправляет (а может у меня руки кривые). Никак я не могу понять, как же его всё-таки отправлять. Сколько раз подступался, так и не смог понять эту кухню до конца. Но всё равно спасибо за статью
Попробуй в пункте выполнять изменить "один раз" на "всё время"
 

volody00

Client
Регистрация
06.09.2016
Сообщения
444
Благодарностей
473
Баллы
63
Попробуй в пункте выполнять изменить "один раз" на "всё время"
Не помогло (ошибка на последней строке "hcaptcha is not defined"). Но может рамблер сам по себе кривой, ибо даже руками не даёт зарегаться. Больше сайтов не припомню. Как попадется попробую. На zennolab всё отлично гадает
 

Sardol

Client
Регистрация
23.09.2020
Сообщения
118
Благодарностей
15
Баллы
18
1) Ошибка Zennoposter. Проверить можно установкой версии 7.4.0.2. Также причина может быть в том, что Zennoposter использует новые библиотеки ZennoLab.CommandCenter.dll и ZennoLab.InterfacesLibrary.dll. Решение есть - надо перекомпилировать под новые библиотеки, но пока версия 7.5 содержит кучу багов я не могу перекомпилировать и у самого нет обновы на 7.5 пока ещё
2) Твои библиотеки конфликтуют с моими, от которых зависит ZennoEmulator. Проверить можно путем временного перемещения всех библиотек из папки External Assemblies и помещения в External Assemblies только моих библиотек.
Версия 7.4.0.0 тоже самое :( ZennoEmulator.dll тупо не добавляется в GAC
 
Последнее редактирование:

Dendi

Client
Регистрация
20.11.2018
Сообщения
121
Благодарностей
6
Баллы
18
При выполнении на 7.5.0.0

82775
 

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 187
Благодарностей
1 032
Баллы
113

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 187
Благодарностей
1 032
Баллы
113
отправил в личку, так как телегу не нашел
В зеннопостере 7.5.0.0 изменилась как минимум одна библиотека в плане внутренних параметров. Просто перекомпилировать не получится, изменения займут некоторое время
 

Dendi

Client
Регистрация
20.11.2018
Сообщения
121
Благодарностей
6
Баллы
18
В зеннопостере 7.5.0.0 изменилась как минимум одна библиотека в плане внутренних параметров. Просто перекомпилировать не получится, изменения займут некоторое время
хорошо, ожидаем
 

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 187
Благодарностей
1 032
Баллы
113
закинул файлы с архива в родную папку зенки, зенка перестала работать (открываться)
Проверь этот пункт
A. Копируем библиотеки (файлы .dll) в папку ExternalAssemblies
 
  • Спасибо
Реакции: Dendi

steklarul

Client
Регистрация
07.09.2016
Сообщения
161
Благодарностей
5
Баллы
18
Добрый день amyboose у меня вопрос по поводу вашего решение hcaptcha в чем может быть причина что на сайте каторый я хочу пройти капчу выдает последний кубик вот такую ошибку у меня ZP 7.5
Выполнение действия CSharp OwnCode: Выполняем callback. EvaluateScriptAsync: Uncaught TypeError: window.hcaptchaCallback is not a function
Сбойное действие: Выполняем callback
Сайт https://bigbtc.win/
 

Dendi

Client
Регистрация
20.11.2018
Сообщения
121
Благодарностей
6
Баллы
18
Добрый день amyboose у меня вопрос по поводу вашего решение hcaptcha в чем может быть причина что на сайте каторый я хочу пройти капчу выдает последний кубик вот такую ошибку у меня ZP 7.5
Выполнение действия CSharp OwnCode: Выполняем callback. EvaluateScriptAsync: Uncaught TypeError: window.hcaptchaCallback is not a function
Сбойное действие: Выполняем callback
Сайт https://bigbtc.win/
Надо в Кубике "Получаем токен CapMonsterCloud", поменять PageUrl и SiteKey, после этого кубик с Callback выполняется корректно
 

steklarul

Client
Регистрация
07.09.2016
Сообщения
161
Благодарностей
5
Баллы
18
Надо в Кубике "Получаем токен CapMonsterCloud", поменять PageUrl и SiteKey, после этого кубик с Callback выполняется корректно
привет по пробовал что рекомендовали таже самая ошибка
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)