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

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 190
Баллы
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 = $@"
    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 или ZennoDroid.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...

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

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

RoyalBank

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

amyboose

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

RoyalBank

Client
Регистрация
07.09.2015
Сообщения
557
Благодарностей
547
Баллы
93

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 683
Баллы
113

volody00

Client
Регистрация
06.09.2016
Сообщения
792
Благодарностей
810
Баллы
93

amyboose

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

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

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 683
Баллы
113

amyboose

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

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 683
Баллы
113
добавил пояснительный скрин
так выделил же нужное. загружать скрипт при загрузки страницы, а не при создании окна.
так то вроде оба режима работают, но загрузка страницы логически понятна :bk:
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 758
Благодарностей
2 392
Баллы
113
Все хорошо! Но... всё же исходники бро на конкурсе - это святое!
 
  • Спасибо
Реакции: dmitrii.l

SHILY

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

Carty

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

volody00

Client
Регистрация
06.09.2016
Сообщения
792
Благодарностей
810
Баллы
93
@amyboose , не знаешь, в чём может быть проблема (это при добавлении библиотеки в ссылках из GAC)?
1.png
 

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 190
Баллы
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
Сообщения
792
Благодарностей
810
Баллы
93
К сожалению, решение не вышло универсальным. Так, на рамблере сабмит не отправляет (а может у меня руки кривые). Никак я не могу понять, как же его всё-таки отправлять. Сколько раз подступался, так и не смог понять эту кухню до конца. Но всё равно спасибо за статью
 

amyboose

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

volody00

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

Sardol

Client
Регистрация
23.09.2020
Сообщения
189
Благодарностей
42
Баллы
28
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
Сообщения
164
Благодарностей
11
Баллы
18
При выполнении на 7.5.0.0

82775
 

amyboose

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

Dendi

Client
Регистрация
20.11.2018
Сообщения
164
Благодарностей
11
Баллы
18

amyboose

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

Dendi

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

amyboose

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

Dendi

Client
Регистрация
20.11.2018
Сообщения
164
Благодарностей
11
Баллы
18

amyboose

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

steklarul

Client
Регистрация
07.09.2016
Сообщения
164
Благодарностей
7
Баллы
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
Сообщения
164
Благодарностей
11
Баллы
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
Сообщения
164
Благодарностей
7
Баллы
18
Надо в Кубике "Получаем токен CapMonsterCloud", поменять PageUrl и SiteKey, после этого кубик с Callback выполняется корректно
привет по пробовал что рекомендовали таже самая ошибка
 

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