Скрипты и программы BrowserAutomationStudio - создание постеров, спамеров, парсеров, комбайнов для соц. сетей

Выпущена версия 21.5.1. В ней содержится множество изменений связанных с анонимностью браузера. Давайте рассмотрим их подробнее:

Современные браузеры поддерживают апи для работы со звуком. Используя методы этого апи сайт может генерировать и обрабатывать звук, а также получать доступ к бинарным данным. По аналогии с Canvas и WebGL, данные звука также содержат небольшие отличия в зависимости от железа, браузера и системы. Эти отличия могут быть использованы чтобы идентифицировать вас среди других пользователей сайта даже при использовании прокси. В новой версии поддерживается смена отпечатка аудио - BAS добавляет разные шаблоны шума в возвращаемые данные при каждой смене отпечатка. Кроме того, данное апи также дает доступ к разным системным параметрам связанных со звуком. BAS подменяет эти параметры, значения берутся из реальных устройств при помощи сервиса FingerprintSwitcher.

Подробнее о б этой технике можно прочитать в этой статье http://randomwalker.info/publications/OpenWPM_1_million_site_tracking_measurement.pdf пункт 6.4.
На этом сайте можно получить отпечаток аудио для вашего браузера AudioContext Fingerprint Test Page

Сайт может получать данные об языке системы несколькими способами. Это заголовок Accept-Language, navigator.language и navigator.languages, а также некоторые методы апи для интернализации. Эти свойства могут содержать не один, а несколько языков, также заголовок Accept-Language имеет разный формат в зависимости от системы. Эти отличия служат одним из факторов для отпечтака браузера. После небольшого теста обнаружилось, что на 20000 пользователей приходится 751 уникальных значений поля Accept-Language. Конечно, заменять эти поля на реальные значение из другого устройства было бы неправильным, потому что это создало бы несоответствие между языком системы и текущим прокси. Поэтому был разработан алгоритм, который "соединяет" страну/язык текущего ип и формат реальных полей из реального устройства. Например, если оригинальный заголовок был таким ru-RU,en-US;q=0.9, а прокси находится в Германии, то результат будет таким de-DE,en-US;q=0.9. Алгоритм корректно сохраняет формат и удаляет ненужные языки, например, такое поле ru, uk;q=0.8, be;q=0.8, en;q=0.7, *;q=0.01 будет заменено таким de, en;q=0.8, *;q=0.01. Текущий ип, страна и язык получаются при применении прокси.

Подробнее о поле Accept-Language RFC 7231 - Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
Результаты тестирования алгоритма https://pastebin.com/raw/mmgVmbyb

Одним из свойств железа к которым сайт имеет доступ через javascript является заряд аккумулятора. Исследования в статье приведенной ниже показывают, что данная информация не опасна для пользователя, поскольку позволяет отслеживать его только в краткосрочной перспективе. Действительно, заряд аккумулятора постоянно меняется, а предсказать какие значения будут через длительное время невозможно. Тем не менее, для отслеживания массовых действий такой метод может быть полезен. Представьте, что вы запускаете BAS с ноутбука, а сайт видит как одновременно проходят тысячи регистраций с устройства, заряд которого равен 56%, а до конца зарядки осталось 35 минут. Конечно, можно запускать софт только на стационарном устройстве или полностью заряженном ноутбуке, но это тоже может быть подозрительно при применении мобильных отпечатков. Поэтому было решено эмулировать зарядку/разрядку аккумулятора, а также все события и возвращаемые апи значения на устройствах, который имеют аккумулятор. Информацию о его наличие предоставляет сервис FingerprintSwitcher. Вот как это может выглядеть: на графике видно, что значения постепенно уменьшаются.

Статья об отпечатках аккумулятора https://eprint.iacr.org/2015/616.pdf
Результаты работы апи для вашего браузера https://fingerprints.bablosoft.com/battery Не удалось найти сервис, который показывает значения в динамике, поэтому сделал свой.

BAS использует некоторое количество вспомогательного кода для поиска элментов, внедрения решения рекапчи и другого. Раньше софт можно было обнаружить по наличию этого функционала, поэтому в новой версии он спрятан, все имена функций генерируются для каждого потока разные. Переработан механизм внедрения отпечатков, если раньше BAS полагался на использование конструкций вида Object.defineProperty, то сейчас подмена происходит внутри браузера. Старый метод используется только для изменения списка плагинов и в местах где это абсолютно необходимо. Например, Chrome, в отличие от Firefox не поддерживает апи для работы с VR шлемами. Поэтому для эмуляции этого функционала приходится использовать javascript. Обход некоторых других методов, которые используются для определения движка браузера также преписаны на с++.

Была улучшена эмуляция работы с мышью. Теперь при перемещении к элементу невидимому на экране используется колесо мыши, а не javascript как раньше. Если элемент находится далеко за пределами видимой области, скорость скрола намного быстрее, чем если бы он был совсем рядом. При этом перемещения происходят "рывками", как у реальных пользователей. Вот как это выглядит . Первоначальное положение курсора выбирается случайно, а не в левом верхнем углу как раньше. Увеличена частота генерации событий связанных с перемещением мыши.

Эмуляция порядка заголовков временно не работала при переходе к туннелированию. Сейчас этот функцинал возвращен. Порядок заголовков берется из реального устройства.

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

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

Добавлена поддержка туннелирования флеш. Это означает, что абсолютно все запросы, которые делает процесс флеш будут проходить через заданный прокси. Следует понимать, что флеш обладает гораздо большими возможностями чем javscript и поэтому его включение - удар по анонимности. В BAS скорее всего не будут применятся техники для того, чтобы сделать флеш более безопасным, как это делается с javscript потому что его поддержка будет прекращена Adobe в 2020 году Flash & The Future of Interactive Content | Adobe Blog Если элемент с флеш меньше определенного размера Chrome просит пользователя подтвердить его запуск, в новой BAS версии сделано так, пользователь автоматически соглашается это сделать(если флеш включен).

Проверить ип возвращаемый через флеш можно на этом сайте Check IP, learn my real IP computer address and my location by IP - WhatLeaks.com

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

Веб интерфейс теперь может использовать localStorage для хранения настроек софта между запусками.

Bызов метода BAS_API из Node.js теперь генерирует исключение в случае ошибки. Теперь можно сделать так:

Код:
try
{
    await BAS_API(`load("wrongurl11111.com")!`)
}catch(e)
{
    console.log(`Что-то пошло не так: ${e}`)
}


Новая настройка для приложений с защитой: "Разрешать запускать только один экземпляр приложения".

Исполняемые файлы BAS теперь подписаны. Это позволит быстрее проходить проверку SmartScreen на Windows 10, также избежать ложноположительных срабатываний антивирусов.

Заново переписан механизм перетягивания блоков за пределы рабочей области(при обновлении браузера он перестал работать).


Исправлено множество багов, среди которых:

Исправлен баг с установкой referrer и перенаправлениями страницы.
Сетевые ошибки при загрузке проекта в скомпилированных скриптах теперь не сообщают урл сервера.
Исправлено исчезновение прошлого проекта после неудачной загрузке.


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

Это не все изменения находящиеся в разработке, до конца года планируется выпустить новый аддон для BAS - FingerprintDetector.
 

Выпущена версия 21.6.1.

Основное изменение в этой версии - поддержка FingerprintDetector. Подробнее здесь FingeprintDetector - универсальный ответ, почему ботов банят.
Также было сделано несколько изменений и исправлений в BAS:

Сервис FingerprintSwitcher теперь подменяет список расширений видеокарты и многие другие параметры:

LldiLiK.png

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

Поиск писем теперь поддерживает utf-8 кодировку. В частности это позволяет использовать кириллицу для поиска по теме письма или его содержимому.

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

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

Действие "Шаблон" позволяет игнорировать спинтакс и не заменять переменные и ресурсы их значениями(поведение настраиваемое). Таким образом можно создавать многострочные переменные с специальными символами.

Исправлена ошибка с таймаутом при закрытии вкладки.

Исправлена ошибка с накоплением идентификаторов при создании и закрытие вкладок в цикле.

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

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

h06Q6yd.png


При создании действий "For", "While", "Foreach" и "Игнорировать ошибки" на панель сценария будут также добавляться вспомогательные действия.

У каждого действия теперь есть кнопка для игнорирования ошибок на протяжении его выполнения:

WhkWyag.gif


По кнопкам для перемещения точки выполнения легче попасть за счет увелечения их площади.


-------------


Следующим изменением будет ручное управление браузером с поддержкой записи сценария, работы в скомпилированном или в запущенном виде. Будет специальное действие для передачи контроля пользователю в многопоточном режиме. Также будет поддерживаться веб интерфейс. Ожидать апдейт можно через 2-3 недели.
 

Рекламное сообщение
rt.jpg

💡 Вы когда-нибудь видели, чтобы по одному вашему запросу вам упали деньги на счет?

💸 Да-да, я сейчас не про банки и МФО, а про мецената с форума RuTOR, который раздает деньги просто за регистрацию и выполнение несложных условий.

Найдите Saraman'a на главной странице форума в чате, напишите "привет" и считайте, что бонус уже у вас в кармане!

💯 Деньги можно получать хоть каждый день!

💢 Заходите и убедитесь в этом самостоятельно! 💢
 

Добавлена возможность управлять браузером в ручном режиме.

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

  • Клики мышью.
  • Перетягивание, включая html5 drag and drop.
  • Двойное нажатие.
  • Ввод с клавиатуры.
  • Быстрые клавиши Ctrl-C, Ctrl-A, ...
  • Смену урл.
  • Скролл с помощью полосы прокрутки.
  • Управление вкладками.
  • Историей браузера(действие назад).

Чтобы включить новый режим, нужно нажать на данную кнопку:

WDe6qPA.png


Режимы также можно переключать достаточно быстро с помощью горячих клавиш(F1, F2, F3).

Видео. Управление в ручном режиме.



Автоматическая запись скрипта.

BAS также может записывать скрипт при включенном ручном управлении. Для это нужно переключиться в третий режим на соответствующей вкладке или нажать F3. При этом любое взаимодействие с пользователем будет конвертироваться в действия и добавляться на панель сценария. Туда будут попадать все действия, кроме, разве что прокрутки страницы. BAS будет стараться соединять действия в цепочки, например, клик по элементу и ввод текста будут объеденены в "Ввод текста" в элемент, поэтому панель сценария будет заполняться не сразу. Действие "Ждать полной загрузки" будет добавляться по мере того, как страница будет загружаться в браузере.

Видео. Автоматическая запись скрипта.



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

Новые возможности доступны также в многопоточном режиме, для нужно вызвать действие "Ручное управление браузером". Данное действие сражу же передаст контроль над браузером пользователю, он получит соответствеющее уведомление - браузер будет подсвечен красным,

kmJqQCv.png


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

gCgWuSp.png


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

Видео. Управление браузером в многопотоке.



Управление браузером и веб-интерфейс.

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

Видео. Управление браузером в режиме веб-интерфейса.



Больше информации.

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

Видео. Ручное управление, полный обзор.
 

Предлагаем вам скидки 50% на XEvil.

idX5ZhN.png


XEvil — простая, быстрая и удобная программа для полностью автоматического распознавания и обхода подавляющего числа капч (CAPTCHA), без необходимости подключения каких-либо сторонних сервисов.

Право получить скидку имеют:

Клиенты уже купившие BASPremium или ключ к FingerprintSwitcher на 3 месяца начиная с 10 апреля 2019.

Клиенты, которые будут покупать BASPremium или ключ к FingerprintSwitcher на 3 месяца до 1 мая 2019.

Акция ограничена по времени до 1 мая 2019, воспользоваться скидочным купоном после этого времени не удастся.

Чтобы получить скидочный купон необходимо написать письмо на почту [email protected] с темой XEvil скидка.

Количество скидочных купонов также ограничено 30.
 

Выпущена версия 21.8.0.

Данная версия содержит одно большое изменение - добавление планировщика задач. Этот механизм позволяет работать сразу с несколькими приложениями написанными в среде BAS. Список возможностей планировщика:

  • Возможность загружать скрипты из запущенного экземпляра BAS, из облака или из файла.
  • Гибкая система настройки времени запуска.
  • Сбор информации о выполнении задач.
  • Контроль выполнения задач как в автоматическом, так и в ручном режиме.
  • Интеграция с компилируемыми приложениями и с веб-интерфейсом.
  • Быстрое перемещение списка задач между машинами.
  • Удобный дружелюбный интерфейс.
  • Возможность запускать планировщик как отдельное приложение.
Принцип работы.

При первом запуске приложение устанавливается на ПК пользователя и добавляется в автозагрузку. Такая архитектура необходима для того, чтобы иметь возможность выполнять задачи, когда BAS не запущен. Для начала работы необходимо нажать на данную кнопку в меню:

HhTwXeV.png


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

zhvHHpX.png


А это рабочая версия:

HQ03xvM.png


Создание задачи происходит по клику на кнопку "+" в правом нижнем углу. Пользователю необходимо заполнить информацию о проекте, ввести ресурсы и задать время выполнения. Ресурсы задаются только при редактировании или создании, а введенные значение потом будут использованы при запуске.

fXvxCPL.png


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

SILKXj5.png


vsvdlhl.png



Получение информации о выполнении.

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

rvbqwQD.png


Меню содежит более подробную информацию: ссылку на лог, результаты, отчет, если этого недостаточно, то по нажатию на ссылку "Показать/скрыть" вы можете открыть привычный интерфейс скрипта запущенного на BAS:

jHMg3GB.png



Архив заданий.

Любая задача, после завершения своего цикла запусков попадает в архив. Задачи из архива уже не будут запланированы, но они также еще не удалены. Пользователь может восстановить задачу из архива, либо оставить ее там на неопределенное время. Таким образом, архив можно использовать как каталог задач доступных на данном ПК.


Перемещение списка задач на другой ПК.

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

b9isv7g.png


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

Интеграция с компилируемым приложением.

Существует также способ предоставить доступ к планировщику пользователям компилируемых приложений. Для этого необходимо указать при компиляции опцию "Интегрировать планировщик в приложение".

GwMo8Vj.png


При этом, пользователь при старте скрипта увидит новое окно:

HW6llbg.png


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


Веб интерфейс и планировщик.

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

Добавлены новые методы апи:

Код:
Api.HasScheduler()
Api.ShowScheduler()


И новое событие "run_type_select"

При переходе на новую версию интерфейс для входа необходимо сгенерировать заново или самостоятельно обработать новое событие:

po0GnEI.png


Запуск планировщика отдельно от BAS.

Премиум пользователи могут найти ссылку на новый проект - TaskScheduler у себя в персональном кабинете. Фактически это планировщик как отдельное приложение, без BAS. Данный дистрибутив рекомендован к установке на VPS.

Сам процесс запуска установки пачки скриптов на сервере можно увидеть на видео:

 

Выпущена версия 21.8.0.

В ней главный упор сделан на усовершенствование системы смены отпечатков.


Переработан механизм смены canvas.

Метод, которым меняется отпечаток canvas значительно усовершенствован. Это сделано для того, чтобы смена отпечатка не определялась больше антидетект системами. Сюда входит целый комплекс мер, приведу только один пример - вместо замены цвета для каждого пикселя, все изображение теперь анализируется, находятся его контуры, далее цвет меняется только "на границе":

rIMqYjh.gif


Граница на изображении выше выделена красным цветом.

Это позволяет проходить некоторые тесты без негативных результатов:

e4ezKSQ.png


(navigator дает ложно позитивный результат и в обычном браузере, dns зависит от прокси).

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

https://fingerprints.bablosoft.com/canvas


Изменение canvas теперь работает и с alpha каналом.

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


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

Старая реализация использовала исключительно CPU, но это можно обнаружить. Прежний способ отрисовки можно вернуть обратно заменив значения

Код:
--disable-gpu-deleted
--disable-gpu-compositing-deleted

на

Код:
--disable-gpu
--disable-gpu-compositing

В файле chrome_command_line.txt

Rdayf97.png



Значительно увеличилась скорость при применении отпечатков.

Теперь BAS не тормозит при посещении сайтов, которые интенсивно работают с графикой, например, стриминговых сервисов.


Добавлен новый фактор для FingerprintSwitcher: ClientRectangles.

Данный метод позволяет составить отпечаток устройства через получение размеров специально составленного элемента. В отличии от canvas, анализируется только ширина, высота, и координаты, а не цвета каждого пикселя. Эти значения являются платформозависимыми и могут быть использованы для составоения отпечатков. Теперь BAS добавляет к ним шум, достаточный для того, чтобы менять отпечаток, но не настолько большой, чтобы нарушить работу сайтов.

Протестировать можно здесь:

ClientRects Fingerprinting - BrowserLeaks.com


Исправлены проблемы смены даты при переходе на летнее время.

Данные рассчитываются согласно текущим правилам перехода на летнее время в стране, где находится ip.

DV2m9rU.png


Простенький тест, который показывает есть ли переход на летнее время в вашей стране или регионе. Он не зависит от текущей даты, и это хороший тест справляется ли ваша система смены отпечатков с датами:

Edit fiddle - JSFiddle


Возможность продлевать ключи FingerprintSwitcher и приобретать ключи без привязки к ip.

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


Обновлен планировщик.

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

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

v1OFd4i.png



Блок "Игнорировать ошибки" теперь отлавливает ошибками при выполнении javascript.

Это могут быть: ошибки парсинга json, несуществующие переменные и т. д.

E7F21TB.png



Реализована работа с нативными комбобоксами.

uoGTn1D.gif


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



И множество других изменений:
  • Домен сайта теперь получается через прокси при использовании хттп клиента.
  • Исправлены ошибки при работе с вложенными циклами для элементов.
  • Из логов и других файлов скомпилированных скриптов убранны упоминания о BAS.
  • Исправлны проблемы при работе с базой данных и типом данных из даты.
  • Любые ошибки без блока "Игнорировать ошибки" во время выполнения OnApplicationStart приведут к завершению приложения.
  • При выборе альтернативного сервера для решения капчи, BAS автоматически добавляет слеш к урл сервера.
  • При использовании отрицательных координат для перемещения мыши, будут автоматически вызваны события о перемещении мыши за пределы экрана.
  • Исправлены проблемы с вызовом событий о видимости браузера в веб интерфейсе.
 

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

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

Функции теперь имеют параметры и возвращаемое значение.

Добавлены действия "Получить Параметр Функции" и "Return".

Задать список параметров и их описание можно в менеджере функций

Теперь одну и ту же функцию можно вызывать с разными параметрами, что упростит повторное использование кода.

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

SVBgXMU.png




Менеджер функций.

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

Все элементы управления, а именно: создание, редактирование, удаление функций, были перенесены туда.

Добавлена возможность поиска функций и задание параметров.

Основное окно:

KnYDHYD.png


Редактирование функции:

BQYaUF8.png


Действия "Получить Параметр Функции" и "Return" добавляются в редактор скрипта автоматически.



Расширение API для веб интерфейса.

Добавлено множество методов, которые можно вызывать из веб интерфейса.

Методы для взаимодействия с системным окном:

  • MoveWindow - смена положения окна.
  • ResizeWindow - изменение размеров окна.
  • Api.OpenFileDialog, Api.SaveFileDialog - вызов системного диалога выбора файла.
  • ShowNotification - показ системных уведомлений в трее.
  • OpenUrl - посещение заданного url, открытие файла или программы.

Больше подробностей можно узнать здесь:

BAS custom interface

Все генерируемые диалоги для выбора файла были заменены на нативные.

Iss73z7.gif


Добавлено синхронное API для работы с файловой системой. Сюда входит: чтение/запись файлов, работа с папками.

Больше подробностей можно узнать здесь:

BAS custom interface

Начальные размеры окна можно задать прямо в его настройках:

wj8kGHp.png




Создавать интерфейс теперь можно с нуля.

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

При создании и генериции интерфейса можно выбрать его тип:

bTpT9dM.png


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

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




Вызов функций BAS и создание потоков из веб интерфейса.

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

Для получения результатов можно использовать объект Promise или ключевое слово await.


Код:
//Создаем поток
var Thread = new BASThread()

//Устанавливаем прокси
await Thread.RunFunction("SetProxy", {"ProxyLine": "socks5://127.0.0.1:11185"})

//Вызываем функцию для парсинга
var LinksList = await Thread.RunFunction("MakeGoogleQuery", {"Query": "cats"})

//Останавливаем поток
Thread.StopThread()

Данное API умеет обрабатывать ошибки и имеет специальное расширение к объекту Promise, которое останавливает поток.

Более подробно здесь:

BAS custom interface

Существует возможность отлаживать выполнение функций прямо в BAS:

fetch.php




Приложение ParseGoogle. Демонстрация функционала.


Было создано новое приложение ParseGoogle. Оно парсит выдачу по заданному запросу.

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

fetch.php


Конечно же, все это сделано на BAS.

Скомпилированное приложение

https://bablosoft.com/distr/ParseGoogleDistr/ParseGoogle.zip

Проект BAS

https://bablosoft.com/distr/ParseGoogleDistr/ParseGoogle.xml

Веб интерфейс

https://bablosoft.com/distr/ParseGoogleDistr/ParseGoogle.main.interface.txt

Данное видео демонстрирует процесс создания



Вызов функций BAS и создание потоков из node.js.

Функции BAS теперь можно вызывать и из node.js.

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

Код:
var Result = await BAS_FUNCTION(
	"FunctionName", 
	{ParamName1: "ParamValue1", ParamName2: "ParamValue2"}
)


Подробней здесь:

node.js [Bablosoft Wiki]

Этот метод значительно упрощает взаимодействие с браузером и с BAS из node.js


Улучшения интерфейса

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

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

N3THYzZ.gif


Добавлена справка по основным возможностям BAS:

zKreKpT.png


В нее можно попасть нажав на кнопку по центру, справа в редакторе скрипта.

Справка содержит описание для каждой группы(циклов, условий, парсинга и т .д.), с основными принципами работы.

Там также находятся основные действия и примеры использования.

Был обновлен инспектор переменных - теперь он показывает состояние ресурсов, его размер может быть изменен.

EcK7lXf.png


Переход к функции может быть осуществлен по клику на названии функции в действии "Вызов функции".

Место для активной вставки действия не изменяется при редактировании скрипта.

Описание действия сохраняется вместе с сохранением данных.

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

Вместо задания количества успешных и неудачных выполнений теперь можно выбрать "Повторять"

Обзор нового интерфейса можно найти в этом видео:




Исправление ошибок

Планировщик не перестает работать при питании от аккумулятора.
Исправлено решение рекапчи если функция ответа является строкой.
Исправлено падение при сворачивании веб интерфейса в трей на Windows 10.
При отсутствии информации о кодировке почтового сообщения, BAS не подразумевает что письмо закодировано в quoted printable.
Исправлено падение при установке скорости мыши из строки.
Исправлено смешивание ресурсов если планировщик запускает одинаковые проекты одновременно.
 

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

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

Функции теперь имеют параметры и возвращаемое значение.

Добавлены действия "Получить Параметр Функции" и "Return".

Задать список параметров и их описание можно в менеджере функций

Теперь одну и ту же функцию можно вызывать с разными параметрами, что упростит повторное использование кода.

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

SVBgXMU.png




Менеджер функций.

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

Все элементы управления, а именно: создание, редактирование, удаление функций, были перенесены туда.

Добавлена возможность поиска функций и задание параметров.

Основное окно:

KnYDHYD.png


Редактирование функции:

BQYaUF8.png


Действия "Получить Параметр Функции" и "Return" добавляются в редактор скрипта автоматически.



Расширение API для веб интерфейса.

Добавлено множество методов, которые можно вызывать из веб интерфейса.

Методы для взаимодействия с системным окном:

  • MoveWindow - смена положения окна.
  • ResizeWindow - изменение размеров окна.
  • Api.OpenFileDialog, Api.SaveFileDialog - вызов системного диалога выбора файла.
  • ShowNotification - показ системных уведомлений в трее.
  • OpenUrl - посещение заданного url, открытие файла или программы.

Больше подробностей можно узнать здесь:

BAS custom interface

Все генерируемые диалоги для выбора файла были заменены на нативные.

Iss73z7.gif


Добавлено синхронное API для работы с файловой системой. Сюда входит: чтение/запись файлов, работа с папками.

Больше подробностей можно узнать здесь:

BAS custom interface

Начальные размеры окна можно задать прямо в его настройках:

wj8kGHp.png




Создавать интерфейс теперь можно с нуля.

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

При создании и генериции интерфейса можно выбрать его тип:

bTpT9dM.png


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

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




Вызов функций BAS и создание потоков из веб интерфейса.

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

Для получения результатов можно использовать объект Promise или ключевое слово await.


Код:
//Создаем поток
var Thread = new BASThread()

//Устанавливаем прокси
await Thread.RunFunction("SetProxy", {"ProxyLine": "socks5://127.0.0.1:11185"})

//Вызываем функцию для парсинга
var LinksList = await Thread.RunFunction("MakeGoogleQuery", {"Query": "cats"})

//Останавливаем поток
Thread.StopThread()

Данное API умеет обрабатывать ошибки и имеет специальное расширение к объекту Promise, которое останавливает поток.

Более подробно здесь:

BAS custom interface

Существует возможность отлаживать выполнение функций прямо в BAS:

fetch.php




Приложение ParseGoogle. Демонстрация функционала.


Было создано новое приложение ParseGoogle. Оно парсит выдачу по заданному запросу.

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

fetch.php


Конечно же, все это сделано на BAS.

Скомпилированное приложение

https://bablosoft.com/distr/ParseGoogleDistr/ParseGoogle.zip

Проект BAS

https://bablosoft.com/distr/ParseGoogleDistr/ParseGoogle.xml

Веб интерфейс

https://bablosoft.com/distr/ParseGoogleDistr/ParseGoogle.main.interface.txt

Данное видео демонстрирует процесс создания



Вызов функций BAS и создание потоков из node.js.

Функции BAS теперь можно вызывать и из node.js.

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

Код:
var Result = await BAS_FUNCTION(
    "FunctionName",
    {ParamName1: "ParamValue1", ParamName2: "ParamValue2"}
)


Подробней здесь:

node.js [Bablosoft Wiki]

Этот метод значительно упрощает взаимодействие с браузером и с BAS из node.js


Улучшения интерфейса

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

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

N3THYzZ.gif


Добавлена справка по основным возможностям BAS:

zKreKpT.png


В нее можно попасть нажав на кнопку по центру, справа в редакторе скрипта.

Справка содержит описание для каждой группы(циклов, условий, парсинга и т .д.), с основными принципами работы.

Там также находятся основные действия и примеры использования.

Был обновлен инспектор переменных - теперь он показывает состояние ресурсов, его размер может быть изменен.

EcK7lXf.png


Переход к функции может быть осуществлен по клику на названии функции в действии "Вызов функции".

Место для активной вставки действия не изменяется при редактировании скрипта.

Описание действия сохраняется вместе с сохранением данных.

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

Вместо задания количества успешных и неудачных выполнений теперь можно выбрать "Повторять"

Обзор нового интерфейса можно найти в этом видео:




Исправление ошибок

Планировщик не перестает работать при питании от аккумулятора.
Исправлено решение рекапчи если функция ответа является строкой.
Исправлено падение при сворачивании веб интерфейса в трей на Windows 10.
При отсутствии информации о кодировке почтового сообщения, BAS не подразумевает что письмо закодировано в quoted printable.
Исправлено падение при установке скорости мыши из строки.
Исправлено смешивание ресурсов если планировщик запускает одинаковые проекты одновременно.
Классная обнова. А есть ли возможность добавить правку значений переменных в окне с переменными и возможно правку названия переменной, чтобы сразу везде где она была менялось это название ? А то сейчас чтобы установить нужное значение нужно кучу лишних действий делать.
 

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

18 - фри, 7 - для премиум пользователей.
Вот примерный список тем https://pastebin.com/raw/5MLaZgZL
Привет @twaego9
Скажи пожалуйста, есть ли хоть малейший шанс, что когда-нибудь курс по BAS выйдет в полном объёме?
Ты выпустил 8 уроков из 25 запланированных, и очень хотелось бы продолжения. Полноценного курса по BAS, так увы до сих пор никто не запилил (даже за платно, как например есть в изобилии по зенке). Из того, что есть на ютубе, это как-то ни совсем то для обучения, за исключением твоих 8-ми уроков. Но и то, даже если взять те 8 уроков от тебя, то они уже подустарели, к примеру в плане того же самого интерфейса BAS.
Я прекрасно понимаю, что у тебя наверняка много дел в плане развития самого BAS, и тебе возможно особо то не до записей видео курсов, но всё же очень хотелось бы увидеть полноценный видео курс от тебя, который когда то планировался. Я считаю это ни менее важная задача, которая поможет расширять аудиторию BAS.
 

Привет @twaego9
Скажи пожалуйста, есть ли хоть малейший шанс, что когда-нибудь курс по BAS выйдет в полном объёме?
Ты выпустил 8 уроков из 25 запланированных, и очень хотелось бы продолжения. Полноценного курса по BAS, так увы до сих пор никто не запилил (даже за платно, как например есть в изобилии по зенке). Из того, что есть на ютубе, это как-то ни совсем то для обучения, за исключением твоих 8-ми уроков. Но и то, даже если взять те 8 уроков от тебя, то они уже подустарели, к примеру в плане того же самого интерфейса BAS.
Я прекрасно понимаю, что у тебя наверняка много дел в плане развития самого BAS, и тебе возможно особо то не до записей видео курсов, но всё же очень хотелось бы увидеть полноценный видео курс от тебя, который когда то планировался. Я считаю это ни менее важная задача, которая поможет расширять аудиторию BAS.
А зачем тебе курс. Того что есть от автора вполне достаточно + в каждом кубике есть описание. Возможно нужен бы был курс по настройки интерфейса, но этот функционал еще пилится, думаю в скором времени запишет.
 

Скажи пожалуйста, есть ли хоть малейший шанс, что когда-нибудь курс по BAS выйдет в полном объёме?
То что есть покрывает практически весь функционал BAS, остальное есть в интерактивной документации.
А какие именно уроки вы хотели бы видеть?
 

Последнее редактирование:
То что есть покрывает практически весь функционал BAS, остальное есть в интерактивной документации.
А какие именно уроки вы хотели бы видеть?
Хотелось бы подробные и исчерпывающие уроки:
1. Написание скриптов на post/get запросах.
2. Уроки по анонимности: прокси, флеш, отпечатки, канвас и т д
3. Парсинг. Xpath, регулярные выражения.
4. Создание парсера от А до Я
5. Создание постера
6. Создание полноценного комбайна.
7. Работа с базой данных
В общем то, что планировалось в премиум уроках)
 

1. Написание скриптов на post/get запросах.
Этого действительно не было.

2. Уроки по анонимности: прокси, флеш, отпечатки, канвас и т д

Частично было в


и


3. Парсинг. Xpath, регулярные выражения.

Это есть


В этом видео не просто говорится: "вот сюда нужно ввести xpath запрос", в нем, в том числе рассказывается как устроен html, что такое теги, как устроены xpath запросы и есть множество примеров их применения.

4. Создание парсера от А до Я
5. Создание постера

В видео #6 - #8 создается довольно навороченный скрипт с нуля. Он парсит данные из RSS ленты и постит их в твиттер. Один поток отведен под парсер, остальные под постинг с разных аккаунтов. Все потоки обмениваются данными с помощью ресурсов.

6. Создание полноценного комбайна.

Учитывая то, что есть видео по 4. и 5. пунктам, а также, что есть полуторачасовое видео, по созданию сложного интерфейса с нуля, не вижу недостачи по материалам в данной теме.
 

Этого действительно не было.



Частично было в


и




Это есть


В этом видео не просто говорится: "вот сюда нужно ввести xpath запрос", в нем, в том числе рассказывается как устроен html, что такое теги, как устроены xpath запросы и есть множество примеров их применения.



В видео #6 - #8 создается довольно навороченный скрипт с нуля. Он парсит данные из RSS ленты и постит их в твиттер. Один поток отведен под парсер, остальные под постинг с разных аккаунтов. Все потоки обмениваются данными с помощью ресурсов.



Учитывая то, что есть видео по 4. и 5. пунктам, а также, что есть полуторачасовое видео, по созданию сложного интерфейса с нуля, не вижу недостачи по материалам в данной теме.
Просто изначально ты планировал сделать (судя по чеклисту) 25 уроков, вот я и подумал, что имеющихся обучающих уроков не достаточно. Хорошо, если имеющиеся уроки, полностью закрывают все вопросы в освоении BAS, для полных новичков. Буду тогда дальше пробовать по ним обучаться.

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

Ну и ещё урок, про взаимодействие скрипта (например при парсинге) с базой данных, которая есть в функционале BAS.

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

Как я уже прочитал из твоих ответов @twaego9 , то что имеющиеся уроки по BAS у тебя на канале, в целом закрывают все вопросы в освоении программы.
Но чисто от меня пожелание. Было бы круто, если бы ты, хотя бы может раз в месяц (ну или может чуть реже), записывал бы практический урок (делал мастер класс скажем так), по написанию какого-нибудь скрипта. Да, как ты говоришь, ты уже показал почти всё в уроках, но повторение, мать учения как говорится. И если бы, каждый месяц, выходило бы по новому практическому уроку на примере какого нибудь нового сайта, то это было бы только плюсом для всех. Вот к примеру ты разобрал написание некоторых парсеров у себя в уроках. Но сайты бывают разной сложности, и если бы периодически появлялись бы ещё и новые практические уроки по написанию тех же самых парсеров или постеров, или регеров для каких нибудь сайтов, то было бы очень круто)
 

То что есть покрывает практически весь функционал BAS, остальное есть в интерактивной документации.
А какие именно уроки вы хотели бы видеть?
1. Хотелось бы увидеть урок , как с помощью node js + какой-нибудь скрипт админ панели с авторизацией и api bas , сделать управление bas через свой сайт.
2. Возможно не очень по теме бас, но хотелось бы урок по тому как отснифать мобильное приложение и сделать на запросах эмуляцию через бас, с генерацией всяких хешей и тд, более подробно по поводу загрузки картинок .
3. Для новичков урок по работе с json нужен, а то регулярками работают)

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

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

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

Recaptcha V3

Добавлено уведомление о каждом использовании сайтом Recaptcha V3 в режиме записи.
Уведомление содержит название действия, которое было использовано сайтом.

TuhWmP4.gif



Добавлено новое действие "Recatpcha V3", оно задает параметры решения Recatpcha V3.
Доступные сервисы: 2captcha.com, rucaptcha.com, anti-captcha.com
Возможно выборочное решение только для нужных действий, установка минимального рейтинга.

Видео. Решение Recaptcha V3

HpgjY9C.gif


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


Фильтрация отпечатков

Теперь стало возможно получать отпечатки с определенными параметрами. Список фильтров:

1) Версия операционной системы: Windows 10, Windows 7, Windows 8
2) Время добавления: 15, 30 и 60 дней.
3) Версия браузера.
4) Минимальные и максимальные размеры окна браузера.


Дополнительно, отпечатки с тегом Chrome теперь не содержат яндекс браузер. Для него появился новы тег - YaBrowser.


Расширение Api для веб интерфейса.


Добавлены методы Api.GetBrowsers и Api.GetTasks, они позволяют получать список работающих функций и браузеров.

Документация:

BAS custom interface
BAS custom interface


Улучшена эмуляция кликов и ввода текста.

Добавлен рандомный интервал между событиями mousedown и mouseup и между keydown/keypress и keyup.


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

Вызов методов OpenFileDialog и SaveFileDialog для веб интерфейса больше не блокирует запуск функции.
Исправлены ошибки при поиске в почтовых ящиках название которых содержит пробелы.
Исправлено несвоевременное освобождение памяти при применении отпечатка.
Исправлено падение при использовании действия "Разрешить кэш" с параметром "*".
Обновление колонки с типом даты в базе данных из веб интерфейса теперь работает корректно.
Исправлено падение, которое возникает при некоторых условиях после вызова нескольких функций из веб интерфейса.
Исправлен сброс ресурсов при редактировании задачи в планировщике после обновлении версии BAS.
Действие return теперь работает корректно если оно помещено в блок игнорировать ошибки и вызвано из веб интерфейса.
Исправлена ошибка при проигрывании видео на youtube для некоторых отпечатков.


Обновлен сертификат.

Сертификат, которым подписаны исполняемые файлы BAS обновлен на 5 лет. Старый истекает в ноябре 2019. Это означает, что, чтобы избежать ложно позитивных срабатываний антивирусов, софт нужно обновить на версию 22.1.0 или старше до этого срока.
 

Обратите внимание

Назад
Сверху