Обсуждение версии 5.11.2.0

  • Автор темы Автор темы VladZen
  • Дата начала Дата начала

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 831
Реакции
6 040
Баллы
113
Вопросы, комментарии и предложения по новой версии 5.11.2.0.
 
[+] Добавлено ручное редактирование HTML кода BotUI.
Это означает возможность добавления и JS кода? То есть можно ли уже сейчас построить ту самую банальную зависимость во входящих настройках о которых вторит молва, когда выбрано одно значение - другое меню скрывается и т.д.

[+] Добавлена возможность подмены содержимого запросов и ответов с помощью методов ChangeRequest и ChangeResponse.
Верно ли я понимаю, что это то о чём я когда-то писал, но только без брейкпоинтов?
То есть теперь перед отправкой определенного запроса браузером, можно подменить отправляемые данные?
Если это действительно так, то это...

[+] Улучшенная обработка подключений подробности читайте в этой статье.
Спасибо!
 
Это означает возможность добавления и JS кода? То есть можно ли уже сейчас построить ту самую банальную зависимость во входящих настройках о которых вторит молва, когда выбрано одно значение - другое меню скрывается и т.д.


Верно ли я понимаю, что это то о чём я когда-то писал, но только без брейкпоинтов?
То есть теперь перед отправкой определенного запроса браузером, можно подменить отправляемые данные?
Если это действительно так, то это...


Спасибо!
А как это юзать?
 
Это означает возможность добавления и JS кода? То есть можно ли уже сейчас построить ту самую банальную зависимость во входящих настройках о которых вторит молва, когда выбрано одно значение - другое меню скрывается и т.д.


Верно ли я понимаю, что это то о чём я когда-то писал, но только без брейкпоинтов?
То есть теперь перед отправкой определенного запроса браузером, можно подменить отправляемые данные?
Если это действительно так, то это...


Спасибо!
Добавлять JS можно. Да, новые методы реализуют то, о чем вы писали без брейкпоинтов.

А как это юзать?
Ссылки на методы даны в описании.
 
  • Спасибо
Реакции: ibred
Добавлять JS можно. Да, новые методы реализуют то, о чем вы писали без брейкпоинтов.
Это просто бомба! Я в восторге!
Огромная благодарность всей команде разработчиков и администрации.
 
  • Спасибо
Реакции: VladZen
Ещё один вопрос: если я создал шаблон с BotUI в котором у меня размещен скрипт или свое оформление через правку HTML в ручном режиме, и скинул его клиенту с версией ниже, чем 5.11.2.0, но поддержкой BotUI. Будут ли работать и корректно отображаться все то, что я прописал в BotUI?
 
[+] Добавлена возможность подмены содержимого запросов и ответов с помощью методов ChangeRequest и ChangeResponse.
Ура сделали, то что я года 2 назад предлагал, но пришлось делать через Proxomitron, правда без https поддержки :(
 
Ещё один вопрос: если я создал шаблон с BotUI в котором у меня размещен скрипт или свое оформление через правку HTML в ручном режиме, и скинул его клиенту с версией ниже, чем 5.11.2.0, но поддержкой BotUI. Будут ли работать и корректно отображаться все то, что я прописал в BotUI?

Логично предположить что нет
 
Ещё один вопрос: если я создал шаблон с BotUI в котором у меня размещен скрипт или свое оформление через правку HTML в ручном режиме, и скинул его клиенту с версией ниже, чем 5.11.2.0, но поддержкой BotUI. Будут ли работать и корректно отображаться все то, что я прописал в BotUI?
Должны отображаться, но не гарантируем.
 
Логично предположить что нет
В прошлых версиях BotUI просто закрыт для ручного редактирования, а сейчас его открыли. Поэтому Ваше "логично" не логично :)
Должны отображаться, но не гарантируем.
Буду проверять, спасибо.
 
[+] Добавлена возможность подмены содержимого запросов и ответов с помощью методов ChangeRequest и ChangeResponse.
Ура сделали, то что я года 2 назад предлагал, но пришлось делать через Proxomitron, правда без https поддержки :(
это значит что с яндекс или ВК и т.д. такая подмена не прокатит?
 
Я там не понимаю ничего
Открываете окно Траффик в ProjectMaker. в браузере заходите на сайт с которым работаете и смотрите контент запросов в браузере.
Вот пример замены контента запроса:
Код:
Развернуть Свернуть Копировать
instance.ChangeRequest(@"(?<=https://mc\.yandex\.ru/webvisor/).*", new List<string> { @"(?<=wv-data=).*" }, new List<string> { "NODATA" }, true);
Здесь в первом параметре ищется URL запроса, во втором ищутся данные запроса, в третьем подставляются новые данные вместо найденных.
А затем при навигейте на страницу контент подменяется.
Код:
Развернуть Свернуть Копировать
Tab tab = instance.ActiveTab;
if ((tab.IsVoid) || (tab.IsNull)) return -1;
if (tab.IsBusy) tab.WaitDownloading();
tab.Navigate("lessons.zennolab.com", "");
if (tab.IsBusy) tab.WaitDownloading();
 
  • Спасибо
Реакции: vovain
  • Спасибо
Реакции: Sanekk
Господа, подскажите нубу, как запустить BotUI?
Я сделал небольшой UI из нескольких элементов, но не могу понять, как теперь его запустить и как оно может менять пепеменные (и может ли?)?
 
Открываете окно Траффик в ProjectMaker. в браузере заходите на сайт с которым работаете и смотрите контент запросов в браузере.

А можно какие-то пару примеров для чего можно или нужно использовать подмену контента запросов и ответов?
 
Сделайте пожалуста instance.ChangeRequest более универсальным:
instance.ChangeRequest(string Regexp, Action<string, string> requestBodyAction), где requestBodyAction (string requestBody) возвращает тело запроса.
Точно так же и с ChangeResponse.
 
Господа, подскажите нубу, как запустить BotUI?
Я сделал небольшой UI из нескольких элементов, но не могу понять, как теперь его запустить и как оно может менять пепеменные (и может ли?)?
BotUI запускается двойным кликом по проекту в ZennoPoster или из контексного меню, которое открывается по правому клику на проекте.

Сделайте пожалуста instance.ChangeRequest более универсальным:
instance.ChangeRequest(string Regexp, Action<string, string> requestBodyAction), где requestBodyAction (string requestBody) возвращает тело запроса.
Точно так же и с ChangeResponse.
Поясните пожалуйста, что значит более универсальным. Заголовки запроса не меняются.
 
Поясните пожалуйста, что значит более универсальным. Заголовки запроса не меняются.
Заголовки? Что? Хотя... Заголовки тоже не помешало бы )
Сейчас этот метод работает только на изменение. Что делать если нужно что-то взять-вытащить? Что делать если нужны более сложные условия изменения? Если не понимаете, ну и ладно, забейте.
 
я достаточно ясно сформулировал мысль, грамотно описал метод и входящие данные для него. Если не понимаете, забейте точно так же.
Отличный способ объяснить свою мысль, которую не можешь сформулировать.
 
Заголовки? Что? Хотя... Заголовки тоже не помешало бы )
Сейчас этот метод работает только на изменение. Что делать если нужно что-то взять-вытащить? Что делать если нужны более сложные условия изменения? Если не понимаете, ну и ладно, забейте.
Взять- вытащить - это просто распарсить запрос. Причем ту подмена контента? Просто поясните на примере, что хотите предложить и мы попробуем сделать. а не возмущайтесь.
 
Взять- вытащить - это просто распарсить запрос. Причем ту подмена контента? Просто поясните на примере, что хотите предложить и мы попробуем сделать. а не возмущайтесь.
Пример на аудиокапче рекапчи2 которая уже у всех забанена но все таки:
Когда прогружается капча, аудио уже есть в ответе от сервера и не нужно нажимать на кнопку "скачать". При нажатии на кнопку сервер уже понимат что аудио слушать не будут, а только скачивают.
Возвращаемся к первому запросу - этот запрос выходит из ифрейма, то есть его перехвататить на стороне javascript нельзя, но можно перехватить черезе mitm proxy со своим сертификатом, что не есть особо удобно так как он еще должен хендлить внешний прокси исходящий от инстанса.
Есть ли в Зенопостере методы которые могут перехватить это запрос по регулярке как в instance.ChangeRequest, чтобы можно было вытащить из этого запроса аудиодорожку?
 
Еще пример, попроще:
Есть тело изходящего запроса, тип данных - json. Его нужно десериализовать, поменять, сериализовть, и выдать серверу как будто так и было. Есть ли в Зенопостере метод который это сможет сделать? (без использования js-иньекций)
 
  • Спасибо
Реакции: vitorrio и Dmffmd
Пример на аудиокапче рекапчи2 которая уже у всех забанена но все таки:
Когда прогружается капча, аудио уже есть в ответе от сервера и не нужно нажимать на кнопку "скачать". При нажатии на кнопку сервер уже понимат что аудио слушать не будут, а только скачивают.
Возвращаемся к первому запросу - этот запрос выходит из ифрейма, то есть его перехвататить на стороне javascript нельзя, но можно перехватить черезе mitm proxy со своим сертификатом, что не есть особо удобно так как он еще должен хендлить внешний прокси исходящий от инстанса.
Есть ли в Зенопостере методы которые могут перехватить это запрос по регулярке как в instance.ChangeRequest, чтобы можно было вытащить из этого запроса аудиодорожку?
Еще пример, попроще:
Есть тело изходящего запроса, тип данных - json. Его нужно десериализовать, поменять, сериализовть, и выдать серверу как будто так и было. Есть ли в Зенопостере метод который это сможет сделать? (без использования js-иньекций)
Это как раз более сложные и частные вещи. У нас скорее общий функционал. Подумаем над реализацией такого.
По JSON хотелось бы конкретный пример такого запроса, который нужно обработать и выдать.
 
По JSON хотелось бы конкретный пример такого запроса, который нужно обработать и выдать.
Зачем привязываться к примеру? Я написал метод который нужен, он универсальный
instance.ChangeRequest(string Regexp, Action<string, string> requestBodyAction), где requestBodyAction (string requestBody) возвращает тело запроса.
в requestBodyAction происходят все манипуляции с телом запроса\ответа, и возвращается это самое тело изменненое либо нет (когда нужно что-то взять из тела и положить в зп переменную, например).
 
Появление данной фичи, пусть даже в таком урезанном виде - уже прогресс. Реально хотелось бы иметь полный контроль над запросами, что-то вроде этого.
Код:
Развернуть Свернуть Копировать
public CefReturnValue OnBeforeResourceLoad(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IRequestCallback callback)
{
    if (!callback.IsDisposed)
    {
        using (callback)
        {
            if (request.Method == "POST" && Regex.IsMatch(request.Url, @"del"))
            {
                using (var postData = request.PostData)
                {
                    if (postData != null)
                    {
                        var elements = postData.Elements;
                        var charSet = request.GetCharSet();

                        foreach (var element in elements)
                        {
                            if (element.Type == PostDataElementType.Bytes)
                            {
                                var body = element.GetBody(charSet);
                                if (body.Contains("del") && body.Contains("del"))
                                {
                                    body = Regex.Replace(body, @"del", "del");
                                    body = Regex.Replace(body, @"del", "del");

                                    element.Bytes = Encoding.Default.GetBytes(body);

                                    var headers = request.Headers;

                                    if (headers["Cookie"] != null)
                                    {
                                        var cookie = headers["Cookie"];
                                        if (Regex.IsMatch(cookie, @"del"))
                                        {
                                            cookie = Regex.Replace(cookie, @"del", "del");
                                            headers["Cookie"] = cookie;
                                        }
                                    }

                                    request.Headers = headers;
                                }
                            }
                        }
                    }
                }
            }
        }
    }

    return CefReturnValue.Continue;
}
 
Подмена запросов и ответов радует.
 
Последнее редактирование:
Ребят, подскажите. Раньше когда щенка зависала при старте из за, того что много было источников и самих проксей, можно было удалить файл и проблема решалась. Сейчас это пофиксили.
Но я бывало удалял этот файл для того что бы прокси чекер встроенный мог заново добавлять старые источники которые я удалил.
А то на одном х проектах удалишь, а потом для других проектов не более 200 источников из них 10-20% с более менее прокси. Удалял файл и он искал куда больше источников.
Где есть эта база с источниками?
Или я ошибаюсь?
 

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