- 20.06.2022
- 23 849
- 218
- 36
- Награды
- 10
- Пол
- Муж.
Репутация:
- Автор темы
- Администратор
- Модератор
- Команда форума
- #1
Всем привет, в этой статье мы разберем простейший способ разработки своего чекера не имея большого опыта в программировании.
Что такое BAS ?
BAS - универсальная программа, с её помощью мы можем автоматизировать абсолютно любые действия в браузере.
Устанавливаем BAS
Для начала нам требуется установить сам BAS, для этого переходим по ссылке: и устанавливаем бесплатную версию (кнопка находится в конце страницы)
Остается лишь запустить exe файл и мы попадаем на главную страницу BAS
Теперь нам нужно создать новый проект, создавать его нужно чтобы не потерять нашу разработку.
Создаем новый проект
На главной странице кликаем по кнопке "Новый"
Для примера возьмем любой сайт, где можно авторизоваться по logass + разберем обход простейшей капчи.
Первым на глаза попался
Сделали все необходимое, теперь переходим непосредственно к разработке.
Начало
Заходим в BAS.
Начнем с создания ресурсов. Ресурс - способ ввода информации в нашу программу. Через него мы можем подгрузить аккаунты на проверку/токены сервисов по решению капчи/скорость проверки аккаунтов и т.д
Жмем "Создать новый ресурс"
Первое что мы будем загружать в нашу программу - это сами аккаунты. поэтому задаем имя ресурсу "База" (указываем только имя и жмем Вперед)
Мы будем загружать наши аккаунты из тхт, поэтому выбираем "Из файла" и жмем "Вперед"
Выбираем чтение и удаление строк
"Использовать каждую строку один раз"
Жмем "Вперед" и "Finish"
Далее нам нужно создать ресурс для записи рабочих аккаунтов, для указания скорости чека и ресурс для подгрузки прокси.
Запись рабочих аккаунтов
Создаем новый ресурс, задаем имя - Гуды
Тип ресурса - из файла
Ресурс будем использовать только для записи данных
Данные будем записывать только один раз
Указываем скорость чека
Теперь создаем ресурс Потоки (1 Поток = 1 браузер, количество потоков = количество браузеров которые мы будем запускать одновременно)
Тип ресурса - число
По умолчанию и минимальное значение выставляем 1, максимум 100
Подгрузка прокси
Создаем ресурс с именем "Прокси"
Тип ресурса - из файла
Ресурс будет читать строку и удалять после использования
Каждую строку используем только 1 раз
Теперь переходим к самому интересному, будем обучать наш скрипт проверять валид ли аккаунт и парсить весь инвентарь + баланс.
Заходим на главную страницу в BAS и выбираем "Запись"
Игнорируем табличку ниже, никакие поля не заполняем
Просто жмем "ОК" в правом нижнем углу
Для начала настроим скорость чека, в левом верхнем углу жмем на "Количество потоков"
Жмем прямо на циферку 1
По умолчанию стоит 1 поток, мы стираем эту единицу и жмем F7 (чтобы сработало вам нужно нажать на поле ввода)
Выбираем тут потоки
Теперь скрипт автоматически заместо единички будет подставлять наше значение, которое мы будем вводить при запуске чекера. Жмем "ОК".
Возвращаемся на главную страницу и меняем тип запуска
Нам нужно выставить значение "Повторять"
Жмем "Ok" и наконец приступаем к разработке!
Делаем загрузку проксей в браузер + проверяем валид ли прокся
Выбираем браузер
Выбираем Прокси
Выбираем поле для ввода
Жмем F7 и выбираем наш ресурс
Теперь меняем под себя тип прокси, по умолчанию стоит http
Жмем "Ок"
В логике нашего скрипта появилось первое действие. Наводим наш курсор прямо на "прокси"
Жмем на знак предупреждения
Мы получили отработку ошибок. Если прокся валидная - мы перейдем к проверке аккаунта, если прокся невалидная - мы будем подбирать следующую по списку, пока не найдем валидную. для этого жмем на полоску в самом начале нашего скрипта.
После нажатия она загориться красным, это означает что мы будем добавлять действие прямо в это место.
В BAS'e есть возможность поиска действий, воспользуемся этим: ищем слово "Метку"
Жмем установить метку
Даем ей имя "Проверка прокси" и жмем ОК
В нашей логике появилось новое действие - метка. Если сравнить метку с видеоиграми, то метка это что-то вроде чекпоинта. В случае если что-то пошло не так - мы возращаемся к месту где установлена метка.
Теперь добавим тот самый переход к метке, жмем на полоску под красным действием "Лог"
И в поисковике ищем "Перейти к метке"
Выбираем нашу метку "Проверка прокси"
Остается лишь удалять проксю из списка, если она не валидная, для этого жмем на ту же полоску под красным логом
В поисковике ищем "Удалить текущий элемент"
Выбираем наш ресурс и жмем ОК
Переходим к авторизации: достаем логин и пароль из нашего ресурса и вводим их на сайте
Авторизация на сайте:
Жмем на самую нижнию полоску в нашем скрипте
В поисковик ****аем "Загрузить"
Указываем URL сайта: и жмем ОК
У нас появилась эмуляция нашего браузера
Теперь нам нужно чтобы наш скрипт нажал на "PROFILE"
Для этого жмем F1 и нажимаем ПКМ по кнопке PROFILE
Выбираем действие "Кликнуть по элементу"
Жмем Ок
Мы попали на страницу регистрации, таким же способом переходим к авторизации.
ПКМ выбираем PROFILE
Мы дошли до нужной страницы
Теперь достанем наши logass, для этого ****аем в поисковик "Парсить CSV"
Выбираем первое действие
В поле строка указываем наш ресурс. Все как делали до этого - кликаем по полю для ввода, жмем F7, выбираем ресурс "База"
Далее указываем наши разделители, в моем случае это ":".
Возвращаемся к браузеру, теперь нам нужно ввести наш логин и пароль. Кликаем по окошку для ввода логина и жмем "Ввод текста"
Жмем "Текст для ввода" и клацаем F8
Выбираем USERNAME
Задержку выставляем 0 и жмем ОК
Перед тем, как ввести пароль нам нужно сделать небольшую задержку, нужно это чтобы браузер пропустил наши действия и не посчитал что мы боты.
Для этого ****аем в поисковик "Спать"
Спать будем 333 миллисекунды.
Жмем ОК
С вводом пароля делаем все также, ниже прикреплю скрин как это выглядит у меня
Так как мы в режиме разработчика, то нам нужно зайти на любой рабочий аккаунт. Для этого берем рабочий logass и жмем F2 в нашем браузере (эта функция позволит нам вводить данные в реальном времени)
Снова жмем F1 и учим наш скрипт кликать SING IN
Жмем ОК
В браузере нам выдало cloudflare капчу, решить её можно одним кликом. Наводим на окошко для клика и жмем "Кликнуть по элементу"
В идеале сделать задержку перед решением капчи + сделать проверку есть ли капча на экране, но капча вылазит в 100% случаев, поэтому проверки не обязательны.
Тут мы видим что в элементе какие-то рандомные символы. Можем предположить что в каждом новом потоке (браузере) будут другие символы, а значит наш браузер не сможет найти капчу. Поэтому кликаем на это поле с текстом и ставим 2-ой элемент
Выбираем его и жмем ОК
Как мы видим в браузере решилась капча и мы попали на сайт.
Теперь сделаем проверку валидности аккаунта по URL, для этого находим любую страницу, которая доступна только авторизованным пользователям. В нашем случае это Inventory:
Получаем ссылку, по которой нам нужно перейти чтобы попасть в инвентарь и загружаем её в браузере через действие "Загрузить"
Указываем полученную ссылку
Попадаем на страницу с инвентарем.
Если перейти по этой ссылку с не авторизованного (в нашем случае с невалидного) аккаунта, то нас перебросит совсем по другой ссылке.
Это значит, что мы можем проверить где сейчас находится наш скрипт, и если ссылка соответствует нашей, то продолжить проверку, иначе аккаунт не рабочий.
Для этого ищем в браузере действие "Текущий URL"
Оставляем все как есть и жмем OK
Теперь нам нужно проверить, правильный у нас URL или нет, для этого ищем действие в браузере: if
Кликаем по пустому полю и жмем F8
Выбираем CURRENT_URL
Дописываем "==" ставим две ковычки "" и в них пихаем ссылку
Итог
Ставим галочку "Добавить else блок" и жмем ОК
Если ссылка равна нашей, то выполняем действия из спойлера ниже, если не равна (else) то помечаем аккаунт как нерабочий, для этого жмем на полоску под else
Ищем действие FAIL
Сообщение об ошибке - указываем логин и пароль от аккаунта и оповещаем об его состоянии
Указываем наш ресурс БАЗА и пишем что аккаунт невалид
Получаем такую логику
Проверка баланса + парс всех вещей с инвентаря :
Жмем на полоску под IF
Проверить баланс очень просто, загружаем любую страницу где его видно, делаем ПКМ по значению
"Получить текст"
Рекомендуется выбрать второй элемент
Где SAVED_TEXT - там нужно указать как мы будем называть нашу переменную. Пишем BALANCE
Теперь самое сложное - спарсить все вещи которые есть на аккаунте. Многие кодеры делают это через цикл. мы же поступим умнее и 1-им действием получим все вещи на аккаунте.
Будем парсить все названия игрушек под картинками
Для этого в обычном браузере (НЕ В BAS!) добираемся до этой же страницы, открываем код элемента и наводим мышку на название игрушки
Не забываем включить режим поиска элемента как на скрине выше
Само название не имеет элемента, поэтому вручную изучаем код пока не доберемся до названия
Запоминаем класс и идем в CHATGPT ( )
Переписываем это значение <div class="pet___info">
<h3>Bat Face Roller Skates</h3>
И просим у ChatGPT написать нам xpath путь чтобы достать значение Bat Face Roller Skates
Готовая фраза:
Получаем ответ
Далее возвращаемся к нашему скрипту
Забиваем в поисковик: Код страницы
Ничего не меняя, жмем ОК
Теперь перейдем к xpath, ищем в поисковике
Текст для применения: [[SAVED_PAGE_HTML]]
xpath запрос - то, что нам выдал джпт: //div[@class="pet__info"]/h3/text()
Жмем ОК
Мы получили данные в виде списка, нам нужно преобразовать его в текст для прочтения. Для этого ищем действе в браузере: объединить в строку
Переменная содержащая список: XPATH_XML_LIST
И больше ничего не меняем
Жмем ОК
Вот и все! Остается лишь сделать запись аккаунта в файл и вывести в консоль что аккаунт рабочий
Запись и логирование :
Ищем действие "Запись в файл"
Сразу ставим галочки как на скрине
Путь к файлу - наш ресурс "Гуды"
Данные для записи - наш логпасс + данные которые мы получили: {{База}} | Balance: [[BALANCE]] | Pets: [[JOIN_RESULT_STRING]]
Жмем OK
Ищем действие success и выводим туда тоже самое что и записывали: {{База}} | Balance: [[BALANCE]] | Pets: [[JOIN_RESULT_STRING]]
Жмем ОК и скрипт завершен! Осталось его затестить.
Жмем красную кнопку
Выбираем здесь "запуск" и вводим все нужные ресурсы.
Вот и все. Мы научились делать простейшие чекеры на основе BAS, используя xpath что делает парсинг в 99% эффективнее чем это делают обычные трудяги.
Что такое BAS ?
BAS - универсальная программа, с её помощью мы можем автоматизировать абсолютно любые действия в браузере.
Устанавливаем BAS
Для начала нам требуется установить сам BAS, для этого переходим по ссылке: и устанавливаем бесплатную версию (кнопка находится в конце страницы)
Остается лишь запустить exe файл и мы попадаем на главную страницу BAS
Теперь нам нужно создать новый проект, создавать его нужно чтобы не потерять нашу разработку.
Создаем новый проект
На главной странице кликаем по кнопке "Новый"
Для примера возьмем любой сайт, где можно авторизоваться по logass + разберем обход простейшей капчи.
Первым на глаза попался
Сделали все необходимое, теперь переходим непосредственно к разработке.
Начало
Заходим в BAS.
Начнем с создания ресурсов. Ресурс - способ ввода информации в нашу программу. Через него мы можем подгрузить аккаунты на проверку/токены сервисов по решению капчи/скорость проверки аккаунтов и т.д
Жмем "Создать новый ресурс"
Первое что мы будем загружать в нашу программу - это сами аккаунты. поэтому задаем имя ресурсу "База" (указываем только имя и жмем Вперед)
Мы будем загружать наши аккаунты из тхт, поэтому выбираем "Из файла" и жмем "Вперед"
Выбираем чтение и удаление строк
"Использовать каждую строку один раз"
Жмем "Вперед" и "Finish"
Далее нам нужно создать ресурс для записи рабочих аккаунтов, для указания скорости чека и ресурс для подгрузки прокси.
Запись рабочих аккаунтов
Создаем новый ресурс, задаем имя - Гуды
Тип ресурса - из файла
Ресурс будем использовать только для записи данных
Данные будем записывать только один раз
Указываем скорость чека
Теперь создаем ресурс Потоки (1 Поток = 1 браузер, количество потоков = количество браузеров которые мы будем запускать одновременно)
Тип ресурса - число
По умолчанию и минимальное значение выставляем 1, максимум 100
Подгрузка прокси
Создаем ресурс с именем "Прокси"
Тип ресурса - из файла
Ресурс будет читать строку и удалять после использования
Каждую строку используем только 1 раз
Теперь переходим к самому интересному, будем обучать наш скрипт проверять валид ли аккаунт и парсить весь инвентарь + баланс.
Заходим на главную страницу в BAS и выбираем "Запись"
Игнорируем табличку ниже, никакие поля не заполняем
Просто жмем "ОК" в правом нижнем углу
Для начала настроим скорость чека, в левом верхнем углу жмем на "Количество потоков"
Жмем прямо на циферку 1
По умолчанию стоит 1 поток, мы стираем эту единицу и жмем F7 (чтобы сработало вам нужно нажать на поле ввода)
Выбираем тут потоки
Теперь скрипт автоматически заместо единички будет подставлять наше значение, которое мы будем вводить при запуске чекера. Жмем "ОК".
Возвращаемся на главную страницу и меняем тип запуска
Нам нужно выставить значение "Повторять"
Жмем "Ok" и наконец приступаем к разработке!
Делаем загрузку проксей в браузер + проверяем валид ли прокся
Выбираем браузер
Выбираем Прокси
Выбираем поле для ввода
Жмем F7 и выбираем наш ресурс
Теперь меняем под себя тип прокси, по умолчанию стоит http
Жмем "Ок"
В логике нашего скрипта появилось первое действие. Наводим наш курсор прямо на "прокси"
Жмем на знак предупреждения
Мы получили отработку ошибок. Если прокся валидная - мы перейдем к проверке аккаунта, если прокся невалидная - мы будем подбирать следующую по списку, пока не найдем валидную. для этого жмем на полоску в самом начале нашего скрипта.
После нажатия она загориться красным, это означает что мы будем добавлять действие прямо в это место.
В BAS'e есть возможность поиска действий, воспользуемся этим: ищем слово "Метку"
Жмем установить метку
Даем ей имя "Проверка прокси" и жмем ОК
В нашей логике появилось новое действие - метка. Если сравнить метку с видеоиграми, то метка это что-то вроде чекпоинта. В случае если что-то пошло не так - мы возращаемся к месту где установлена метка.
Теперь добавим тот самый переход к метке, жмем на полоску под красным действием "Лог"
И в поисковике ищем "Перейти к метке"
Выбираем нашу метку "Проверка прокси"
Остается лишь удалять проксю из списка, если она не валидная, для этого жмем на ту же полоску под красным логом
В поисковике ищем "Удалить текущий элемент"
Выбираем наш ресурс и жмем ОК
Переходим к авторизации: достаем логин и пароль из нашего ресурса и вводим их на сайте
Авторизация на сайте:
Жмем на самую нижнию полоску в нашем скрипте
В поисковик ****аем "Загрузить"
Указываем URL сайта: и жмем ОК
У нас появилась эмуляция нашего браузера
Теперь нам нужно чтобы наш скрипт нажал на "PROFILE"
Для этого жмем F1 и нажимаем ПКМ по кнопке PROFILE
Выбираем действие "Кликнуть по элементу"
Жмем Ок
Мы попали на страницу регистрации, таким же способом переходим к авторизации.
ПКМ выбираем PROFILE
Мы дошли до нужной страницы
Теперь достанем наши logass, для этого ****аем в поисковик "Парсить CSV"
Выбираем первое действие
В поле строка указываем наш ресурс. Все как делали до этого - кликаем по полю для ввода, жмем F7, выбираем ресурс "База"
Далее указываем наши разделители, в моем случае это ":".
Возвращаемся к браузеру, теперь нам нужно ввести наш логин и пароль. Кликаем по окошку для ввода логина и жмем "Ввод текста"
Жмем "Текст для ввода" и клацаем F8
Выбираем USERNAME
Задержку выставляем 0 и жмем ОК
Перед тем, как ввести пароль нам нужно сделать небольшую задержку, нужно это чтобы браузер пропустил наши действия и не посчитал что мы боты.
Для этого ****аем в поисковик "Спать"
Спать будем 333 миллисекунды.
Жмем ОК
С вводом пароля делаем все также, ниже прикреплю скрин как это выглядит у меня
Так как мы в режиме разработчика, то нам нужно зайти на любой рабочий аккаунт. Для этого берем рабочий logass и жмем F2 в нашем браузере (эта функция позволит нам вводить данные в реальном времени)
Снова жмем F1 и учим наш скрипт кликать SING IN
Жмем ОК
В браузере нам выдало cloudflare капчу, решить её можно одним кликом. Наводим на окошко для клика и жмем "Кликнуть по элементу"
В идеале сделать задержку перед решением капчи + сделать проверку есть ли капча на экране, но капча вылазит в 100% случаев, поэтому проверки не обязательны.
Тут мы видим что в элементе какие-то рандомные символы. Можем предположить что в каждом новом потоке (браузере) будут другие символы, а значит наш браузер не сможет найти капчу. Поэтому кликаем на это поле с текстом и ставим 2-ой элемент
Выбираем его и жмем ОК
Как мы видим в браузере решилась капча и мы попали на сайт.
Теперь сделаем проверку валидности аккаунта по URL, для этого находим любую страницу, которая доступна только авторизованным пользователям. В нашем случае это Inventory:
Получаем ссылку, по которой нам нужно перейти чтобы попасть в инвентарь и загружаем её в браузере через действие "Загрузить"
Указываем полученную ссылку
Попадаем на страницу с инвентарем.
Если перейти по этой ссылку с не авторизованного (в нашем случае с невалидного) аккаунта, то нас перебросит совсем по другой ссылке.
Это значит, что мы можем проверить где сейчас находится наш скрипт, и если ссылка соответствует нашей, то продолжить проверку, иначе аккаунт не рабочий.
Для этого ищем в браузере действие "Текущий URL"
Оставляем все как есть и жмем OK
Теперь нам нужно проверить, правильный у нас URL или нет, для этого ищем действие в браузере: if
Кликаем по пустому полю и жмем F8
Выбираем CURRENT_URL
Дописываем "==" ставим две ковычки "" и в них пихаем ссылку
Итог
Код:
[[CURRENT_URL]] == "https://starpets.gg/inventory"
Ставим галочку "Добавить else блок" и жмем ОК
Если ссылка равна нашей, то выполняем действия из спойлера ниже, если не равна (else) то помечаем аккаунт как нерабочий, для этого жмем на полоску под else
Ищем действие FAIL
Сообщение об ошибке - указываем логин и пароль от аккаунта и оповещаем об его состоянии
Указываем наш ресурс БАЗА и пишем что аккаунт невалид
Получаем такую логику
Проверка баланса + парс всех вещей с инвентаря :
Жмем на полоску под IF
Проверить баланс очень просто, загружаем любую страницу где его видно, делаем ПКМ по значению
"Получить текст"
Рекомендуется выбрать второй элемент
Где SAVED_TEXT - там нужно указать как мы будем называть нашу переменную. Пишем BALANCE
Теперь самое сложное - спарсить все вещи которые есть на аккаунте. Многие кодеры делают это через цикл. мы же поступим умнее и 1-им действием получим все вещи на аккаунте.
Будем парсить все названия игрушек под картинками
Для этого в обычном браузере (НЕ В BAS!) добираемся до этой же страницы, открываем код элемента и наводим мышку на название игрушки
Не забываем включить режим поиска элемента как на скрине выше
Само название не имеет элемента, поэтому вручную изучаем код пока не доберемся до названия
Запоминаем класс и идем в CHATGPT ( )
Переписываем это значение <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, ищем в поисковике
Текст для применения: [[SAVED_PAGE_HTML]]
xpath запрос - то, что нам выдал джпт: //div[@class="pet__info"]/h3/text()
Жмем ОК
Мы получили данные в виде списка, нам нужно преобразовать его в текст для прочтения. Для этого ищем действе в браузере: объединить в строку
Переменная содержащая список: XPATH_XML_LIST
И больше ничего не меняем
Жмем ОК
Вот и все! Остается лишь сделать запись аккаунта в файл и вывести в консоль что аккаунт рабочий
Запись и логирование :
Ищем действие "Запись в файл"
Сразу ставим галочки как на скрине
Путь к файлу - наш ресурс "Гуды"
Данные для записи - наш логпасс + данные которые мы получили: {{База}} | Balance: [[BALANCE]] | Pets: [[JOIN_RESULT_STRING]]
Жмем OK
Ищем действие success и выводим туда тоже самое что и записывали: {{База}} | Balance: [[BALANCE]] | Pets: [[JOIN_RESULT_STRING]]
Жмем ОК и скрипт завершен! Осталось его затестить.
Жмем красную кнопку
Выбираем здесь "запуск" и вводим все нужные ресурсы.
Вот и все. Мы научились делать простейшие чекеры на основе BAS, используя xpath что делает парсинг в 99% эффективнее чем это делают обычные трудяги.
Последнее редактирование:
Последние темы в этом разделе:
- [Дмитрий Скоромнов] Основы системного администрирования (2024)
- [Анна Вичугова, Зоя Степчева] Проектирование сложных API: OpenAPI + AsyncAPI (2024)
- [Глеб Михайлов] [Stepik] SQL для анализа данных (2024)
- [Bogdan Stashchuk] [Udemy] Полный курс по MongoDB (2024)
- [Udemy] Полный учебный курс по Go. С Нуля до Героя (2019) [Engl]
- [Академия АйТи] Тестирование на проникновение и анализ безопасности. Базовый уровень (2024)
- [HTML Academy] Профессиональный онлайн-курс Vite (2024)
- [Дмитрий Чернов] Виртуализация Proxmox VE. Внедрение и эксплуатация. Расширенные возможности. Часть 2 (2024)
- [Udemy] [Рамзай Дупати] [ENG] Полный курс по сетевому взлому - от начинающего до продвинутого (2024)
- [infostart.ru] DevOps для 1С (2024)