Выпущена 24.0.2 версия BrowserAutomationStudio



  • В новой версии был осуществлен переход на новый браузерный движок. Это означает, что архитектура проекта значительно изменилась, теперь автоматизация браузера работает так:

    1. В начале работы потока в фоне запускается экземпляр браузера.
    2. Данный экземпляр ничем не уступает обычному браузеру и не имеет тех ограничений, что раньше.
    3. Браузер управляется BAS с помощью стабильного протокола поддерживаемого Google.
    4. Действия BAS по работе с браузером не изменились.

    Что получают наши пользователи?

    Такую автоматизацию очень сложно обнаружить. Можно делать это по косвенным признакам, таким как: повторение одних и тех же действий, неправдоподобные паузы между действиями, и т. д. Но сделать это отсутствию какого-то функционала уже крайне проблематично, а система смены отпечатков затрудняет сбор информации об оборудовании.

    Старые проекты BAS легко портировать. Несмотря на то, что внутри софта поменялось очень многое, кое что было и совсем переписано с нуля, портировать старый проект просто. В некоторых случаях достаточно открыть его в новой версии, есть небольшие исключения, они описаны ниже.

    Новые возможности. Новая система управления браузером дает также и возможности добавить новые фичи. Некоторые уже добавлены сейчас, некоторые мы надеемся добавить позже.

    Поддержка расширений.

    В новой версии появилась возможность подключать расширения браузера. Для этого нужно:

    1. Скачать расширение с помощью этой утилиты. При сохранении нужно выбрать zip.
    2. Разархивировать в любую папку.
    3. Указать эту папку в действии "Настройки Браузера".

    К сожалению пока работа с интерфейсом расширения не поддерживается. Планируется реализовать это в следующих версиях.

    Обновление версии браузера в будущем.

    Очень важным фактором аутентичности браузера является наличие всех методов, классов, констант javascript. Иначе говоря, если версия движка старая - это можно обнаружить. Чтобы избежать этого, планируется обновлять браузер достаточно часто. В идеале, это будет делаться каждый месяц вместе с обновлением Chrome.

    Для обеспечения постоянных обновлений было написаны тесты для действий по работе с браузером(это делал @GhostZ), была добавлена подробная документация по каждому патчу, улучшены инструменты для внедрения патчей, в ближайшее время будут написаны тесты для изменения отпечатков.

    Переход на новый движок так же поможет в этом деле. Багов автоматизации при обновлении версии браузера в нем ожидается значительно меньше.

    Тест piхеlscan.

    Многие наши пользователи спрашивали об этом тесте, сейчас BAS успешно его проходит, для этого:

    1. Нужно сменить отпечаток с помощью сервиса FingerprintSwitcher.
    2. Разрешить получать данные canvas и webgl в действии "Настройки Браузера" ИЛИ использовать PerfectCanvas

    На момент написания статьи в тесте есть баг. Обычный браузер определяется как фреймворк для автоматизации, скрин. Происходит так потому, что совсем недавно свойство navigator.webdriver в обычном Chrome поменяло значение с undefined на false и тест не успели обновить. В данном случае, BAS также определяется как фреймворк для автоматизации, так же как и обычный Chrome.

    Еще один момент, при использовании прокси в данном тесте, нужно иметь резидентский ip.

    В новой версии "родные" данные canvas не являются уникальными, это можно проверить на странице https://browserleaks.com/canvas

    Оптимизации в работе CPU.

    Дополнительная нагрузка на процессор по сравнению с обычным Chrome может возникать при постоянной передаче изображения из браузера в BAS. Снизить ее оказалось совсем не простой задачей, для этого был переписан протокол передачи данных. Оригинальная версия тратила время на сжатие данные и передачу их по websocket, этот подход давал просто неприличные результаты при большой частоте кадров.

    Новый протокол помог, но решение все еще не было совершенным. Поэтому был добавлен адаптивное снижение частоты кадров. Если пользователь активирует браузер - fps повышается, при сворачивании браузера, он снова падает. Данный метод помогает значительно снижать нагрузку в многопотоке, а также не является опасным для выполнения скриптов, поскольку оптимизация не затрагивает никакой другой части браузера кроме передачи изображения.

    Если хотите узнать больше, рекомендую ознакомиться с видео https://www.youtube.com/watch?v=GHYMfwFJiHY&t=1279s

    Оптимизация использования жесткого диска.

    Размер профилей был значительно уменьшен по сравнению с обычным браузером.

    1. Отключен Crashpad.
    2. Отключена метрика браузера. Используется для получения сведений об удобстве использования браузера.
    3. В файл chrome_command_line.txt добавлены флаги запрещающие некоторые виды кеша. Это можно отключить отредактировав файл.

    Размер профилей сказался позитивно не только на количестве используемого дискового пространства, но и на времени запуска потока.

    Widevine

    В новой версии widevine нужно включать в настройках, либо в действии "Настройки Браузера". К сожалению, лицензирование BAS не произведено, поэтому сайты вроде spotify воспроизводить контент не будут.

    Действие "Яваскрипт"

    Добавлено новое действие "Яваскрипт", как и старое, оно может выполнять код в контексте браузера, но делает это намного качественней:

    1. Добавлена работа с переменными BAS.
    2. Ожидание асинхронных действий.
    3. Получение информации об исключениях.

    Большинство работы сделал @Oyasumi-Punpun

    Старое действие продолжит работать, но теперь оно считается устаревшим.

    Установка referrer.

    Установка referrer теперь производится через действие "Загрузить" или "Добавить вкладку". Это нужно учитывать при портировании проекта.

    Смайлики.

    В новой версии добавлена поддержка смайликов при вводе текста. Такой метод ввода все равно не является достоверным, потому что смайликов нет на клавиатуре, а следовательно события keyup, keydown и keypress не эмулируются.

    Наличие смайликов в ресурсах проекта не позволит скомпилировать проект с защитой.

    Ввод символов состоящих из 4 байт еще не реализован, сюда относятся флаги стран.

    Новые факторы отпечатка.

    Для новой версии были добавлены новые факторы отпечатка. База еще не успела обновиться, поэтому рекомендуется использовать отпечатки не старше 2 недель.

    Обновления модулей.

    Были добавлены новые модули "Строка" и "SQL". Первый расширяет возможности BAS по работе со строками, есть действия для форматирования, редактирования, поиска строк, а также для парсинга текста. Второй - позволяет работать с популярными SQL базами данных: mysql, mariadb, postgres, sqlite, mssql. Есть возможность выполнять примитивные действия не вникая в синтаксис, а также выполнять произвольные запросы к базе.

    Спасибо @GhostZ за модули.

    Ограничения новой версии.

    Некоторые вещи мы сделать не успели.

    1. Drag and Drop не поддерживается. Это значит что ползунок громкости в видео плеере перетащить можно, но перетащить файл в браузер пока нет.
    2. Запись http запросов пока не работает https://i.imgur.com/P1JxkxC.png.
    3. Отображение элементов select пока не работает https://i.imgur.com/ZkDmTBy.png. Но само значение элемента выбрать можно.
    4. HTTP аутентификация пока не работает.
    5. Отображение разных типов курсоров пока не работает https://i.imgur.com/fVAHclk.png
    6. Инструменты разработчика открываются в системном браузере в отдельном окне.
    7. Открыть инструменты разработчика для конкретного элемента пока невозможно.

    Это не самые важные вещи, поэтому откладывать выпуск версии до их завершения нецелесообразно. Тем не менее, все они будут исправлены в будущих релизах.

    Достижение максимальной аутентичности.

    Если сайту все равно удается обнаружить новую версию BAS и вы уверены, что дело не в прокси, не в номере телефона, последовательности действий, а именно в браузере, то вот список действий, которые необходимо предпринять:

    1. Убедитесь, что в хроме в режиме инкогнито или с новым профилем проблема повторяется.
    2. Отключите модуль AjaxReCaptcha2. Увы, его можно обнаружить.
    3. Отключите защиту canvas, webgl либо используйте PerfectCanvas.
    4. Попробуйте выполнить действия в режиме ручного управления(без автоматизации).

    Если ничего не помогло, используйте алгоритм в этой теме https://community.bablosoft.com/topic/12198/.

    Как портировать старый проект.

    Для этого нужно открыть старый проект в новой версии и внести такие изменения:

    1. Все действия Установить заголовок с параметром Referer нужно заменить на действия Загрузить либо "Добавить вкладку".
    2. Пересоздать действия: Сброс, Установить Значение Комбобокса, Установить Индекс Комбобокса, Выбрать Случайный Элемент Из Комбобокса, Предыдущая Страница, Добавить вкладку, Проверить Существование

    Нужно помнить, что формат cookies и профилей изменился. Если проект полагается на использование профилей старого формата, их нужно обновить.

    Дальнейшее развитие проекта.

    Планы по дальнейшему развитию браузера следующие:

    1. Обновить версию браузера до 90. Развивать инструменты ускоряющие обновление.
    2. Вернуть возможности, которые не были перенесены в новую версию. Добавить взаимодействие с интерфейсом расширений, в том числе и автоматизацию.
    3. Адаптировать PerfectCanvas для webgl, разрешить сбор данных в индивидуальном порядке.

    План может меняться со временем.

    В видео многие особенности новой версии показаны детальней https://www.youtube.com/watch?v=GHYMfwFJiHY.

    !ВАЖНО Обладатели 32-битной версии Windows не смогут обновиться в автоматическом порядке. После скачивания произойдет краш. Новую версию нужно перекачать. Для 64-битной версии проблем не будет.


    Патч 24.0.3

    В нем мы постарались исправить основные критические ошибки найденные пользователями.

    Исправлены ошибки в работе некоторых сайтов.

    Стрим на twitch мог прерваться с ошибкой 3000 на некоторых прокси и только при выборе автоматического качества.

    Страница входа в аккаунт epic games store не загружалась полностью.

    Эти проблемы исправлены. Но для авторизации в EGS нужно включить канвас/использовать отпечатки и отключить AjaxRecaptcha2.

    Данные фиксы носят универсальный характер и применимы не только к этим сайтам.

    Исправлены ошибки в работе с ssl.

    Ошибка "This site can't provide a secure connection" больше не должна появляться.

    Нам удалось воспроизвести проблему, но только одним определенным образом.

    Если проблема появляется и после апдейта, нужно предоставить подробные шаги для воспроизведения и прокси.

    Частота обновления кадров по умолчанию установлена в 30.

    Это значительно снижает нагрузку на CPU.

    На самом деле теперь новая версия в многопоточном режиме стала потреблять меньше времени CPU чем прошлая и даже меньше чем обычный Chrome.

    Спасибо одному из наших пользователей за идею.

    Этот код очень сильно зависит от железа. Если на вашем мониторе фикс не работает, обратитесь к @Fox с описанием проблемы.

    Улучшение антидетекта.

    Защита imреrva, которая определяла BAS при смене прокси теперь так не делает.

    Смена прокси на лету.

    Исправлены проблемы прошлой версии по смене прокси без перезагрузки браузера. Теперь действие "Прокси" стало работать на 3 секунды дольше.

    Отключены предустановленные расширения.

    При наличии определенных значений в реестре, в новые профили создаваемые BAS могут добавляться расширения установленные на ПК пользователя.

    Этот момент исправлен.

    https://www.chromium.org/administrators/pre-installed-extensions

    Улучшен режим плавного запуска потоков.

    Теперь поток считается запущенным только когда когда запущен и вспомогательный процесс BAS и реальный браузер, а не только вспомогательный процесс, как было раньше.

    Эти значения нужны для работы системы плавного запуска потоков.

    Ранее количество одновременно запускаемых браузеров было 1, теперь оно стало 3. Это значение можно менять в настройках.

    Модификация заголовков для всех запросов.

    Стандартные методы изменения заголовков, таких как User-Agent и Accept-Language, не меняют их для всех запросов.

    Это позволяет легко обнаружить браузеры, которые полагаются только на эти методы.

    В BAS был добавлен механизм, который позволяет осуществить замену для абсолютно всех запросов.

    Он действует похожим образом на то, как туннелирование работает для прокси, только в этом случае речь идет о заголовках.

    Ниже скриншот, на котором видно, что замене подвергаются даже внутренние запросы Chrome:

    Очень большая просьба не судить, о том, заменяются ли заголовки ли нет по инструментам разработчика.


    Патч 24.0.5

    Оптимизация.

    Появилась возможность установить максимальный FPS. Это можно сделать в настройках или через действие "Настройки Браузера". Уменьшение частоты кадров может быть полезным для снижения нагрузки на сайтах с анимацией.

    По умолчанию значение установлено в 30.

    Раньше, при создании нового профиля, браузер выполнял несколько ресурсоемких задач. Это приводило к сильной кратковременной нагрузке на CPU. Сейчас это исправлено. Нагрузка при старте потока снизилась.

    https://i.imgur.com/3gkCXxR.gif

    Исправления багов.

    • Теперь BAS работает корректно на сервере после отключения RDP сессии.
    • Исправлена потеря фокуса при работе BAS в фоне.
    • Исправлен ввод диакритических символов и символов с зажатым правым Alt.
    • Исправлено получение селекторов на некоторых сайтах.
    • Исправлены некоторые другие причины, которые приводили к ошибке ERR_SSL_PROTOCOL_ERROR.

    Патч 24.0.7

    В данном патче было добавлено множество фиксов касающихся производительности. Оптимизации подверглась нагрузка практически на все типы ресурсов ПК.

    CPU

    Были отключены множество функций интенсивно потребляющих время процессора: разнообразные метрики, некоторые функции crashpad, постоянные проверки виртуальных дисплеев, получение hwid, родительский контроль и другое.

    Функционал, который влияет на работоспособность браузера мы не убирали. Эти патчи позволяют снизить нагрузку при создании профиля в среднем на 10% процентов.

    Убрана проверка контрольных сумм для внутренних расширений и мониторинг этих файлов.

    Память.

    Размер области памяти выделяемый на передачу изображения теперь динамический. Это позволило снизить объем потребляемой памяти, особенно для экземпляров браузера с маленьким разрешением.

    Исправлена ошибка, когда размер доступной физической памяти на машине мог определяться неточно.

    Жесткий диск.

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

    Список модулей BAS кешируется чтобы не читать их при старте каждого потока.

    Плавный запуск и остановка браузеров.

    Был доработан механизм плавного запуска браузеров. Теперь ограничения на минимальный размер загруженности процессора должны соблюдаться на протяжении некоторого времени. Иначе говоря, браузер можно запустить только если процессор не был сильно занять на протяжении последних нескольких секунд.

    Несколько браузеров теперь нельзя запустить в одно мгновение, перед следующим запуском должен пройти небольшой интервал времени. Это позволяет избежать больших скачков нагрузки на CPU.

    Остановка браузеров теперь тоже происходит плавно, сразу все браузеры не будут остановлены одновременно. Такое поведение могло приводить к зависанию системы на несколько секунд.

    При остановке браузера учитывается где расположен профиль. Если он находится во временной папке, происходит аварийная остановка процесса, это быстрее, но может привести к потерям данных профиля. Если профиль не является временным, остановка происходит корректно.

    Изменить параметры плавного запуска можно в настройках.

    Зависание системы.

    Исправлено зависание системы при работе в несколько десятков потоков после открытия диспетчера задач. Спасибо пользователю, который указал на этот баг.

    При нехватке оперативной памяти разнообразные компоненты браузера начинают ее освобождать или проводить другие действия. Это тоже может приводить к зависанию системы когда объем свободной памяти уменьшается. После апдейта браузер будет считать, что памяти достаточно, даже если это не так.

    Патч 24.0.8

    Аутентичность браузера.

    Улучшен алгоритм скрытия переменных в браузере.

    Исправлены некоторые проблемы с обнаружением BAS в режиме записи.

    Модуль AjaxRecaptcha2 может быть обнаружен. Опасный код перемещен в модуль ReCaptcha, который отключен по умолчанию.

    Если старые проекты работают с рекапча, его необходимо включить здесь https://i.imgur.com/IJfINN5.png

    Улучшения работы редактора.

    Исправлена работа с любыми действиями, которые перезагружают редактор. Например, "Сброс" или "Создать или переключиться на локальный профиль". Эти улучшения касаются только режима записи.

    Точка выполнения больше не сбрасывается, а скрипт может корректно продолжить работу:

    https://i.imgur.com/LU8OgR2.gif

    Перемещения точки выполнения больше не сбрасывает стек вызовов, состояние цикла и т. д.

    https://i.imgur.com/w9MZuyd.gif

    Исправления.

    Исправлена работа вкладок на некоторых сайтах.

    В прошлых версиях при активации перетаскивания браузер зависал. Сейчас это исправлено. Полноценная поддержка перетаскивания будет добавлена после следующего обновления версии браузера.

    UDP.

    BAS умеет туннелировать UDP протокол. Но не все socks5 прокси это поддерживают. QUIC - протокол основан на UDP разработан и используется преимущественно Google. Это может приводить к некоторым проблемам там где он используется. Например, на сайтах с рекламой Google могут наблюдаться фризы, страницы могут загружаться не полностью.

    Для решения данной проблемы в BAS по умолчанию теперь отключен QUIC. Рекомендуется убедиться, что ваши прокси поддерживают UDP и включить QUIC если это так. Сделать это можно в настройках или в действии "Настройки Браузера".



  • Могу лишь только поздравить пользователей и разработчиков сего софта) Обнова шикарная! Конкуренты теперь далеко позади.
    @support а CDP можно использовать напрямую?



  • @support Была проделана просто титаническая работа, всей команде разработчиков спасибо огромное за ваш труд!



  • Кайф.



  • @marsht

    а CDP можно использовать напрямую?

    Пока нет, но в планах.



  • @support said in Выпущена 24.0.2 версия BrowserAutomationStudio:

    Пересоздать действия:

    Добавьте пункт "Загрузить" в "Пересоздать действия". Иначе в режиме запуска загружается пустая страница.



  • Большое спасибо Разработчику и всей Команде за работу!



  • @support said in Выпущена 24.0.2 версия BrowserAutomationStudio:

    Если пользователь активирует браузер - fps повышается, при сворачивании браузера, он снова падает

    А почему бы при сворачивании браузера не просто понижать fps, а убирать обновление картинки вообще? На неё всё равно в этот момент никто не смотрит, а CPU оно, может, и немного, но потребляет. А когда юзер хочет посмотреть ситуацию в браузере, то, например, пока fps приходит в норму (я смотрел вчерашнее видео, и знаю про инерционность этого процесса), выводить на экран гифку загрузки?



  • @support , огромное вам спасибо за проделанную работу, все очень круто! Браузеры работают очень плавно и быстро.

    Нагрузка на CPU по сравнению со старой версией особо не изменилась, что очень радует. Запустил в 24 потока, 20-30% на AMD Ryzen 3950X
    Screenshot_12.png

    Пару некритичных багов все же нашел. Заголовок браузера не меняется, всегда about:blank -
    Screenshot_13.png

    И ошибка Таймаут во время выполнения NavigateBack - это действие Предыдущая страница. Страницу возвращает обратно, но после этого зависает почему то, хотя заново пересоздал.
    Screenshot_14.png



  • This post is deleted!


  • @dobrok, судя по логу у вас там и не прокси, а текст Обычные



  • @GhostZ said in Выпущена 24.0.2 версия BrowserAutomationStudio:

    @dobrok, судя по логу у вас там и не прокси, а текст Обычные

    Приехал, указал не тот ресурс... и как говориться Остапа понесло )))



  • Вот это подарочек! Огромное спасибо разрабам!
    з.ы. Жду восстановления функционала



  • @spacerange А там есть где-то кнопка "Пересоздать действия"? Я думал вручную придется делать.





  • Проверить Существование - можно же пересоздавать просто открыв один сайт и не будет проблем? (ибо загружать каждый сайт и пройтись по всем действиям займет очень много времени).



  • @Bvfromru said in Выпущена 24.0.2 версия BrowserAutomationStudio:

    @spacerange А там есть где-то кнопка "Пересоздать действия"? Я думал вручную придется делать.

    В сообщении выше речь не об кнопке, а о добавлении информации в шапку темы.



  • Это что теперь можно гугл порегать? 😁



  • @FastSpace said in Выпущена 24.0.2 версия BrowserAutomationStudio:

    Это что теперь можно гугл порегать? 😁

    ооо да 😁😁😁



  • @FastSpace said in Выпущена 24.0.2 версия BrowserAutomationStudio:

    Это что теперь можно гугл порегать? 😁

    Ага, через неделю будут у всех по 5р стоять ))


Log in to reply
 

  • 461
  • 1
  • 9
  • 20
  • 103
  • 63
  • 1
  • 3