• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Разрабатываем свой первый чекер на BAS

Knew100

(L2) cache
Забанен
Регистрация
27.07.2023
Сообщения
332
Реакции
94
Пожалуйста, обратите внимание, что пользователь заблокирован

Создаем проект:​

На главной странице кликаем по кнопке "Новый":

1.jpg


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

Для примера возьмем любой сайт, где можно авторизоваться по log:pass + разберем обход простейшей капчи.

Первым на глаза попался https://starpets.gg
Сделали все необходимое, теперь переходим непосредственно к разработке.

Заходим в BAS. Начнем с создания ресурсов. Ресурс - способ ввода информации в нашу программу. Через него мы можем подгрузить аккаунты на проверку/токены сервисов по решению капчи/скорость проверки аккаунтов и т.д.
2.png

Жмем "Создать новый ресурс":
3.png

Первое, что мы будем загружать в нашу программу - это сами аккаунты. Поэтому задаем имя ресурсу "База" (указываем только имя и жмем Вперед).
11111111.png

Мы будем загружать наши аккаунты из тхт, поэтому выбираем "Из файла" и жмем "Вперед".
5.png

Выбираем чтение и удаление строк.
6.png

"Использовать каждую строку один раз". Жмем "Вперед" и "Finish".

Далее нам нужно создать ресурс для записи рабочих аккаунтов, для указания скорости чека и ресурс для подгрузки прокси. Создаем новый ресурс, задаем имя - Гуды.
7.png

Тип ресурса - из файла.
8.png

Ресурс будем использовать только для записи данных.
9.png

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

Теперь создаем ресурс Потоки (1 Поток = 1 браузер, количество потоков = количество браузеров которые мы будем запускать одновременно).
11.png

Тип ресурса - число.
1111.png

По умолчанию и минимальное значение выставляем 1, максимум 100.
13.png

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

Заходим на главную страницу в BAS и выбираем "Запись". Игнорируем табличку ниже, никакие поля не заполняем.
14.png

Просто жмем "ОК" в правом нижнем углу.
15.png

Для начала настроим скорость чека, в левом верхнем углу жмем на "Количество потоков".
16.png


По умолчанию стоит 1 поток, мы стираем эту единицу и жмем F7 (чтобы сработало вам нужно нажать на поле ввода).

17.png

Выбираем тут потоки.
18.png

Теперь скрипт автоматически заместо единички будет подставлять наше значение, которое мы будем вводить при запуске чекера. Жмем "ОК".

Возвращаемся на главную страницу и меняем тип запуска. Нам нужно выставить значение "Повторять".
19.png

Жмем "Ok" и наконец приступаем к разработке!

20.png

Выбираем Прокси:
21.png

Выбираем поле для ввода. Жмем F7 и выбираем наш ресурс:
22.png

Теперь меняем под себя тип прокси, по умолчанию стоит http. Жмем "Ок".

В логике нашего скрипта появилось первое действие. Наводим наш курсор прямо на "прокси".
23.png

Жмем на знак предупреждения. Мы получили отработку ошибок. Если прокся валидная - мы перейдем к проверке аккаунта, если прокся невалидная - мы будем подбирать следующую по списку, пока не найдем валидную. для этого жмем на полоску в самом начале нашего скрипта.
24.png

После нажатия она загориться красным, это означает что мы будем добавлять действие прямо в это место. В BAS'e есть возможность поиска действий, воспользуемся этим: ищем слово "Метку". Жмем установить метку. Даем ей имя "Проверка прокси" и жмем ОК.
25.png

В нашей логике появилось новое действие - метка. Если сравнить метку с видеоиграми, то метка это что-то вроде чекпоинта. В случае если что-то пошло не так - мы возращаемся к месту где установлена метка.

Теперь добавим тот самый переход к метке, жмем на полоску под красным действием "Лог".
26.png

И в поисковике ищем "Перейти к метке". Выбираем нашу метку "Проверка прокси".

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

В поисковике ищем "Удалить текущий элемент". Выбираем наш ресурс и жмем ОК.

Переходим к авторизации: достаем логин и пароль из нашего ресурса и вводим их на сайте.

Авторизация на сайте
Жмем на самую нижнию полоску в нашем скрипте:
28.png

В поисковик вбиваем "Загрузить". Указываем URL сайта: starpets.gg и жмем ОК.
29.png

У нас появилась эмуляция нашего браузера. Теперь нам нужно чтобы наш скрипт нажал на "PROFILE". Для этого жмем F1 и нажимаем ПКМ по кнопке PROFILE. Выбираем действие "Кликнуть по элементу".
30.png

Жмем Ок. Мы попали на страницу регистрации, таким же способом переходим к авторизации. ПКМ выбираем PROFILE.
31.png

Мы дошли до нужной страницы.
32.png

Теперь достанем наши log:pass, для этого вбиваем в поисковик "Парсить CSV". Выбираем первое действие.

В поле строка указываем наш ресурс. Все как делали до этого - кликаем по полю для ввода, жмем F7, выбираем ресурс "База".
33.png

Далее указываем наши разделители, в моем случае это ":".

Возвращаемся к браузеру, теперь нам нужно ввести наш логин и пароль. Кликаем по окошку для ввода логина и жмем "Ввод текста".
34.png

Жмем "Текст для ввода" и клацаем F8. Выбираем USERNAME. Задержку выставляем 0 и жмем ОК.
35.png

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

Для этого вбиваем в поисковик "Спать". Спать будем 333 миллисекунды. Жмем ОК.

С вводом пароля делаем все также, ниже прикреплю скрин как это выглядит у меня
36.png

Так как мы в режиме разработчика, то нам нужно зайти на любой рабочий аккаунт. Для этого берем рабочий log:pass и жмем F2 в нашем браузере (эта функция позволит нам вводить данные в реальном времени).
37.png

Снова жмем F1 и учим наш скрипт кликать SING IN.
38.png

Жмем ОК. В браузере нам выдало cloudflare капчу, решить её можно одним кликом. Наводим на окошко для клика и жмем "Кликнуть по элементу".
39.png

В идеале сделать задержку перед решением капчи + сделать проверку есть ли капча на экране, но капча вылазит в 100% случаев, поэтому проверки не обязательны.

Тут мы видим что в элементе какие-то рандомные символы. Можем предположить что в каждом новом потоке (браузере) будут другие символы, а значит наш браузер не сможет найти капчу. Поэтому кликаем на это поле с текстом и ставим 2-ой элемент.
40.png

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

Теперь сделаем проверку валидности аккаунта по URL, для этого находим любую страницу, которая доступна только авторизованным пользователям. В нашем случае это Inventory: https://starpets.gg/inventory.

Получаем ссылку, по которой нам нужно перейти чтобы попасть в инвентарь и загружаем её в браузере через действие "Загрузить". Указываем полученную ссылку.

41.png

Попадаем на страницу с инвентарем. Если перейти по этой ссылку с не авторизованного (в нашем случае с невалидного) аккаунта, то нас перебросит совсем по другой ссылке.

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

Для этого ищем в браузере действие "Текущий URL". Оставляем все как есть и жмем OK. Теперь нам нужно проверить, правильный у нас URL или нет, для этого ищем действие в браузере: if. Кликаем по пустому полю и жмем F8.
42.png

Выбираем CURRENT_URL

Дописываем "==" ставим две ковычки "" и в них пихаем ссылку.

[[CURRENT_URL]] == "https://starpets.gg/inventory"

Ставим галочку "Добавить else блок" и жмем ОК.
43.png

Если ссылка равна нашей, то выполняем действия из спойлера ниже, если не равна (else) то помечаем аккаунт как нерабочий, для этого жмем на полоску под else.
44.png

Ищем действие FAIL. Сообщение об ошибке - указываем логин и пароль от аккаунта и оповещаем об его состоянии.

Указываем наш ресурс БАЗА и пишем что аккаунт невалид.
45.png

Получаем такую логику.
46.png

Проверка баланса + парс вещей с инвентаря
Жмем на полоску под IF. Проверить баланс очень просто, загружаем любую страницу где его видно, делаем ПКМ по значению.
47.png

"Получить текст". Рекомендуется выбрать второй элемент.
48.png

Где SAVED_TEXT - там нужно указать как мы будем называть нашу переменную. Пишем BALANCE.

Теперь самое сложное - спарсить все вещи которые есть на аккаунте. Многие кодеры делают это через цикл. мы же поступим умнее и 1-им действием получим все вещи на аккаунте.

Будем парсить все названия игрушек под картинками.

Для этого в обычном браузере (НЕ В BAS!) добираемся до этой же страницы, открываем код элемента и наводим мышку на название игрушки.
49.png

Не забываем включить режим поиска элемента как на скрине выше. Само название не имеет элемента, поэтому вручную изучаем код пока не доберемся до названия. Запоминаем класс и идем в CHATGPT ( chat.openai.com )
50.png

Переписываем это значение <div class="pet___info">

<h3>Bat Face Roller Skates</h3>

И просим у ChatGPT написать нам xpath путь чтобы достать значение Bat Face Roller Skates

Готовая фраза:

<div class="pet___info">
<h3>Bat Face Roller Skates</h3>
напиши xpath путь чтобы достать значение Bat Face Roller Skates

Получаем ответ:

//div[@class="pet__info"]/h3/text()

Далее возвращаемся к нашему скрипту. Забиваем в поисковик: Код страницы. Ничего не меняя, жмем ОК. Теперь перейдем к xpath, ищем в поисковике

51.png

Текст для применения: [[SAVED_PAGE_HTML]]

xpath запрос - то, что нам выдал джпт: //div[@class="pet__info"]/h3/text()
52.png

Жмем ОК. Мы получили данные в виде списка, нам нужно преобразовать его в текст для прочтения. Для этого ищем действе в браузере: объединить в строку.

Переменная содержащая список: XPATH_XML_LIST. И больше ничего не меняем.
53.png

Жмем ОК

Вот и все! Остается лишь сделать запись аккаунта в файл и вывести в консоль что аккаунт рабочий

Запись и логгирование
Ищем действие "Запись в файл". Сразу ставим галочки как на скрине

Путь к файлу - наш ресурс "Гуды".

Данные для записи - наш логпасс + данные которые мы получили: {{База}} | Balance: [[BALANCE]] | Pets: [[JOIN_RESULT_STRING]]. Жмем OK.
54.png

Ищем действие success и выводим туда тоже самое что и записывали: {{База}} | Balance: [[BALANCE]] | Pets: [[JOIN_RESULT_STRING]].

Жмем ОК и скрипт завершен! Осталось его затестить.
55.png

Жмем красную кнопку. Выбираем здесь "запуск" и вводим все нужные ресурсы.
 
Последнее редактирование:
клёвый софт.
дизлайк за копипаст без указания автора.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх