- Регистрация
- 21.04.2016
- Сообщения
- 2 311
- Реакции
- 1 192
- Баллы
- 113
Добрый день всем
Часто на форуме ищут hCaptcha, особенно она мешает на сайтах с Cloudflare.
Сам я не знаю javascript, поэтому этот шаблон стал возможен благодаря моей совместной работе с rucaptcha.com.
1) В первую очередь при создании окна страницы выполняется следующий javascript (добавляем javascript, выполнить - при создании окна, количество - один раз):
Скрин для тех, кто не совсем понял:
2) Далее надо открыть страницу с сайтом
3) Получаем токен hCaptcha. Можете использовать любой удобный вам способ
В шаблоне я привел 2 примера кубиков - для rucaptcha.com и для Capmonster.Cloud.
В настройках при отправке запроса на решение токена поддерживаются следующие функции, помимо основных:
A. Копируем библиотеки (файлы .dll) в папку ExternalAssemblies
B. Добавляем библиотеки через "Добавить -> Ссылки из GAC" и далее нажимаем на иконку и поочередно добавляем все библиотеки с пункта 1 из папки ExternalAssemblies в свой проект
C. Нажимаем "Добавить -> Директивы using и общий код" и в них на вкладке "Директивы using" вставляем следующие директивы:
D. Создаем кубик C# кода и вставляем туда следующий код:
4) Выполняем финальный callback
Важные замечания:
1) К шаблону идет библиотека около 80 Mb, меньше сделать по размеру я её не могу, так как это целый комплекс из различного функционала для работы с Zennoposter и не только
2) Rucaptcha использует тот же код в своем расширении и расширение работает без проблем.
3) В Cloudflare тоже работает, но не всегда. Всё зависит от токена - иногда у меня приходил неверный токен, когда я слал запрос с юзерагентом в рукапчу. Как только отключил отправку юзерагента, то Cloudflare пропустил.
4) Если хотите использовать мой метод получения токена, не забывайте добавлять библиотеки в папку ExternalAssemblies, ссылки в GAC и директивы using. В противном случае достаточно просто скопировать первый и последний кубики шаблона.
Часто на форуме ищут hCaptcha, особенно она мешает на сайтах с Cloudflare.
Сам я не знаю javascript, поэтому этот шаблон стал возможен благодаря моей совместной работе с rucaptcha.com.
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)
Скрин для тех, кто не совсем понял:
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;
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. В противном случае достаточно просто скопировать первый и последний кубики шаблона.
- Номер конкурса шаблонов
- Восьмой конкурс шаблонов
- Уровень сложности
- Продвинутый
- Категория
- Другое
Вложения
Последнее редактирование:



ZennoEmulator.dll тупо не добавляется в GAC