January 3

Ультимативный гайд по работе с BAS-скриптами.

А также про безопасность + бонус.


BrowserAutomationStudio - програма предназначенная для автоматизации действий в браузере и сети. Поскольку програма высоко интегрирована в операционную систему это позволяет использовать ее функционал как визуальный алгоритмический язык программирования. В данном гайде вы не увидите объяснения как писать на БАСе, это скорее шпаргалка, как скачать БАС и использовать уже готовые наработки в своих целях, то есть в нашем случае автоматизация рутины в web3.

Важно! БАС работает только на Windows, успешность запуска на Linux платформах через эмуляторы крайне мала и мною лично не тестировалась.


Установка и настройка.

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

Открыв программу вы получите окно даного содержания:

Стандартный вид БАСа

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

Процес переноса Лога в правю часть

Так перетаскиваем все вкладки в правую сторону и можем отсортировать их по мере частоты использования ( в вашем случае ставьте первой вкладку “Лог“ )

По итогу мы получаем вид как ниже:

Измененный вид БАСа

Как работать\запускать скрипты.

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

Основные кнопки
  • Открыть - загрузка в БАС шаблона вашего скрипта. Как и файлы Python имеют расширение .py так и бас скрипты имеют свое расширение .xml. Именно такие файлы мы и должны загружать в бас через эту кнопку. В основном скрипты баса весят довольно много по сравнению с скриптами написанных на питоне или js. Вес в сотнях килобайтах для бас скрипта - это норма( для не компилированного ).
  • Запись - режим запуска скрипта когда вы попадаете в внутренний интерфейс баса где вы сможете пройтись по скрипту и проверить что он делает на самом деле. Об этом более детально будет написано в отдельной главе.
  • Запуск - режим запуска скрипта когда вы не попадаете в внутренний интерфейс, а непосредственно сразу отправляете скрипт в работу. В случае наличия зависимостей\настроек (они почти всегда есть) вылезет диалоговое окно ресурсов где-можно будет указать\изменять параметры которые разрешено менять под себя(как файлик settings.py в питон скриптах). Об этом окне так же в отдельной главе.
  • Остановить - остановить работу в случаи “Запуска“ скрипта или остановить “Запись“ в случае создания\проверки скрипта.

Ресурсы скрипта.

Ресурсы скрипта - это данные с которыми скрипт будет работать, скорее всего эти данные динамические, их можно\нужно , менять\вставлять\выбирать для настройки скрипта под себя. Опять же, по аналоги с питон скриптами это как файлик settings.py. Ресурсы бывают разные, часто в поле где нужно указать какой-либо ресурс уже стоит значение по умолчанию, так разработчик показывает пример как нужно вносить данные чтобы скрипт работал правильно, а также можно и вовсе не менять их если они вам подходят. Это диалоговое окно вы будете видеть как при “Записи“ так и при “Запуске“ если же такие ресурсы будут.

Пример окна ресурсов

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

Частоиспользуемые типы ресурсов

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

  • Строка - можно вводить любые символы. которые будет требовать от вас ресурс даного типа.
  • Число - можно указать только целочисленное значение в разрешенном диапазоне. Если нужно указать число с плавающим знаком то используют ресурс типа "Строка" где число нужно указывать с точкой а не запятой. Пример: 4.15
  • Список - выбрать одну или несколько позиций из предложенных ( не все формы вывода позволяют выбирать несколько ).
  • Из файла - нажав на кнопу справа(папочка) у вас отобразится окно проводника где нужно будет выбрать файл. В основном это используют если нужно выбрать текстовый файл с прокси, ключами, адресами и тд. В некоторых скриптах такого нету, и все будет реализовано на подобии того как это делают на консольных скриптах, где данные подтягиваются автоматически с соответствующих тхт файлов в папке со скриптом.(proxy.txt, private.txt etc.)

После того как вы заполнили все ресурсы, можно нажимать ОК и БАС зайдет в запись или запустит скрипт с этими данными.


Работа в режиме "Запись".

Если вы запустили скрипт в режиме "Запись" вы попадаете во внутренний интерфейс БАСа, именно в нем разработчик и писал скрипт, этот режим предназначен для непосредственного создания скрипта а также его отладки тестирования и прочего того, что связано с изменением\созданием скрипта.
Данный режим позволяет вам, немного, поверхностно проверить скрипт, так как он дает вам возможность прокликивать каждый шаг скрипта вручную и смотреть какой участок кода за что отвечает(в основном подписано там все понятнее чем в любом яп).

Манипуляторы

Эти манипуляторы наши 3 друзья в этом режиме.

  • Зеленый - начинает автоматический поочередный запуск всех блоков кода, начиная с *точки выполнения. По умолчанию это само начало скрипта и если так запустить скрипт это будет практически тоже самое что и запустить его через режим "Запуск" только тут вы будете видеть как передвигается прогрес шаг за шагом, правда в хорошем скрипте это будет довольно быстро и вы не успеете понять что за что отвечает. Не надо запускать скрипты на постоянной основе, через "Запись", это неправильно, такой запуск может нарушить нормальную логику работы скрипта(так как тут нету многопоточности) и скрипт будет работать не совсем корректно. Это чисто для проверки.
  • Желтый - выполняет разово то действие где находится точка выполнения. То есть переход на следующий блок и его выполнение не происходят автоматически как с зеленой кнопки, это дает вам возможность "прокликать" весь скрипт в удобной для вас скорости и смотреть какое действие за что отвечает. В хорошем скрипте придётся кликать не мало, ибо то что вы будете кликать вручную через желтую 30 секунд, в автоматическом режиме (зеленая) могло пройти за 2 секунды.
  • Красный - полный дубликат кнопки "Отменить" с главной панели.

Точка выполнения.

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

Точка выполнения

Выглядит это как стрелочка возле того блока с которым планируется\происходит работа. Сразу после открытия скрипта эта точка стоит в самом его начале, что позволяет нам прокликать скрипт от А до Я. По мерее прохождения блока она будет переходить ниже по скрипту, и указывать вам что будет или планируется выполняться. Важно понимать, что если вы передвинете эту точку вверх или вниз на интересующий вас блок это нарушит всю логику работы скрипта, и он не закончится так должно было(Условно если ваша точка выполнения проходила цикл шаг за шагом, а вы передвинули ее за пределы цикла - итог логика нарушена, дальше логика цикла соблюдаться не будет, а будет логика прямой последовательности ( выполнение один за другим ) ). Это довольно сложно понять новичку поэтому лучше не передвигать ее вручную, только манипуляторами.
Так же важно следить за списком переменных чтобы понимать и видеть что и куда будет применять скрипт, ведь ничего не мешает записать в переменно "NONE" ваши приватники и отправить их куда-то. Для открытия списка переменных нужно нажать на кнопку с жучком. Там же можно и посмотреть список ресурсов которые вы указывали.

Конпка открытия списка переменных
Список переменных и ресурсов

По мере прохождения "вниз" по скрипту, все больше и больше переменных будут заполнятся значениям. Важно отметить что значения переменных невозможно указать заранее через ресурсы, поэтому все переменные это продукт самого софта и их содержание тоже. В блоках переменные указываются в квадратных скобках заглавными буквами [[ПЕРЕМЕННАЯ]]. Ресурсы могут быть как и заданы вами при запуске так и могут быть созданы софтом, поэтому на них тоже обращаем внимание, не засунул ли софт в какой-то ресурс то, чего там быть не должно. В блоках ресурсы указываются в фигурных скобках {{ресурс}}.


Работа в режиме "Запуск".

Тут все намного проще, после настройки ресурсов скрипта и нажатия ОК вы уже не будете попадать во внутренний интерфейс, так как скрипт запустится в рабочем режиме. Все что вы можете делать это смотреть в лог и наслаждаться.) В случав если скрипт работает с браузером то вы можете розгорнуть каждый из них и лицезреть процес в каждом из них. Глобально, скрытый или нет браузер ни на что не влияет, только как немного прибавляет нагрузки на вашу систему, из-за отрисовки.

Вид при запуске

Базовая проверка на утечку данных через запросы.

Для того чтобы вору заполучить ваши приватники их нужно куда-то отправить. Делают это зачатую через запросы как и в обычных так и в БАС скриптах. Для того чтобы проверить используются ли запросы в интересующем нас скрипте нам надо открыть файл нашего скрипта через любой текстовый редактор и поиском пробить на такую фразу "http_client_" и посмотреть есть ли такие строчки и если да то что они с себя представляют.

Пример того, как может выглядеть запрос куда-либо с передачей чего-либо на чей-то сервер. В даном случае перемення [[KEY]] на ресурс с доменом api.mydrainer.com

На скрине выше я указал пример как бы мог выглядеть супер примитивный слив инфы. Конечно это не значит что все такие строчки кода сливают ваши ключи или другую дату куда-то имея под этим неправомерную выгоду, запросы используются очень часто и нужно различать что ок, а что не ок. Если в таком кусочке кода замечена какая-то на первый взгляд подозрительная ссылка это повод задуматься и кинуть в любой код-чат клич о помощи с просьбой помочь разобраться. VAR_KEY в коде через текстовый редактор это тоже самое что и переменная [[KEY]] если смотреть на скрипт через "Запись" БАСа. Ни при каких обстоятельствах ни в каком запросе не могут передаваться приватные ключи. Если это так и в запросе переменная с приватником 99,9% вас скамят, если там передается что-то зашифрованное тоже нужно перепроверить и понять что это, если сами не умеем просим помощи у зала).

Похожую процедуру можно проделать и непосредственно в режиме "Запись" через поисковую строку.

Поисковая строка

В не нужно вводить слово "запрос" если на ру. или "post" и "get" если на англ. языке. Также было бы не плохо прокликать скрипт и понять в какие переменные падают наши приватники и уже по поиску прогнать названия этих переменных(вводить можно и без скобок) и посмотреть все блоки где они используются и нет ли там блоков которые могут их слить куда-то в сеть.
Это один с самых простых способов слить вас, рассказать обо всех возможных практически и теоретически методах ни я ни тот кто захочет это делать - не сможет. Это постоянная игра в кошки-мышки.


Запускать научились, а что дальше? Я бы хотел свои писать...

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

Как начать писать свои скрипты на БАС?

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

Видеоуроки:

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

Логика самого скрипта будет на ваших плечах, БАС или ЯП это просто конструктор\инструмент, если кодили что-то когда-то и умеете придумывать алгоритмы то будет не сложно.

Как освоились и интерфейсом, поняли как вытягивать инфу с файла и записывать в него, разобрались с ресурсами, и он (БАС) не вызывает в голове вопроса : "Что это за дичь, и куда тут тыкать?", то можно смело приступать к началу создания того что вам действительно нужно.

Считаю что самый эффективный метод научится - это начать что-то делать и учится в процесе походу возникающих вопросов. Придумайте себе какую-то простенькую автоматизацию, не обязательно веб3, что-то простое (я когда начинал, первое что сделал что хоть как-то работало это был загрузчик картинок в какой-то сервис, уже не помню какой, чтобы получить ее CID для NFT на zkSync lite).

Ищите ответы на свои вопросы на форуме.
На 95% ваших вопросов ответ уже там есть и висит он там, как правило не первый год. Проресерчте в доль и поперек по ключевым словам форум на наличие своего вопроса и только потом, если его нету пробуйте писать тему в ветке Поддержка .

Как вариант скачивайте уже чьи-то скрипты, запускайте в режиме "Запись" и копайтесь в них. Хочу заметить, что не особо легко копаться в чужом дерме, но подсмотреть что-то всегда можно. Правда такой подход требует базовых знаний чтобы это было эффективно. Мой гит с паблик БАС наработками.

5 часовой стрим От Дугласа, где он пытается автоматизировать тестнет Scroll. Конечно, там он накидал только черновик, так как там много недочетов что не дадут такому скрипту работать стабильно, да и он сам про это говорит, но и суть стрима не в том чтобы сделать полностью рабочий скрипт, а в том чтобы накидать базу и структуру как +- надо делать.


Особенности работы\фишки.

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

Окна баса не закрываться как простенькие программы через крестик в правом верхнем углу, так вы свернете их в трей. Чтобы закрыть полностью окно БАСа нужно пройти в главной панели управления по пути Проект -> Выход либо через хоткей Ctrl+Q.

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


Надеюсь мне удалось приоткрыть эту тайную дверь под названием BrowserAutomationStudio для всех кто прочитал это. В свое время мне сильно не хватало такого, ибо когда я узнал про БАС, криптан что умел там делать хоть что-то приравнивался к божественному существу). Если в 2023 еще можно было как-то пропетлять без автоматизации своей рутины, то в 2024 это преступные действия по отношению к себе и своим возможностям.
Рынок обуздает сильнейший!

Написал: @hvrsh
Канал: @hashvers