Выпущена версия 21.4.1, в этой версии присутствует несколько больших изменений:
Действие 'Прокси' теперь не только меняет прокси, но и делает так, чтобы смена прокси выглядела более правдоподобно.
Работа в основном окне программы (оно черного цвета) теперь происходит более интуитивно.
Исправлен один очень неприятный баг связанный с несвоевременным освобождением памяти при работе с одним браузером на протяжении долгого времени.
Давайте рассмотрим каждое изменение более подробно.
Для начала немного информации про WebRTC, так как этот функционал встроен в любой современный браузер, а с помощью него можно получить данные о реальном ip даже используя прокси. WebRTC - набор апи, которые помогают устанавливать соединение между браузерами и передавать между ними информацию. Причем предпочтение отдается именно прямому соединению, и только если оба браузера находятся за фаерволом или NAT, то используется специальный сервер чтобы передавать трафик через него. Установить соединение бывает непросто учитывая то, что ipv4 адресов недостаточно для всех устройств и большинство из них находятся в приватных сетях, имеют адреса вида 192.168.*.* или 172.16.*.* и обмениваются информацией с остальными через NAT. WebRTC использует такой алгоритм чтобы установить соединение - сначала устройства получают информацию о конфигурации своих сетей и обмениваются ей через какой-то другой канал, потом они пытаются соединиться используя разные варианты конфигурации. Допустим, если устройства находятся в одной сети, то для установления соединения достаточно использовать ip в этой сети, если одно из устройств имеет внешний ип, то оно выступает в роли "сервера" и к нему подключается второе устройство, или наоборот. Нам интересна как раз конфигурация сети, поскольку она содержит реальные ip адреса. WebRTC допускает ее чтение, и даже редактирование через javascript перед отправкой собеседнику. Информация имеет формат SDP описанный в данных документах https://tools.ietf.org/html/rfc5245#section-15 https://tools.ietf.org/html/rfc4566. По следующей ссылке ее можно получить через ваш браузер https://jsfiddle.net/wrbyLqkn/1/, скорее всего там есть ваш реальный ip. В качестве одного из параметров данной информации выступает внешний ip браузера, он получается через запрос к STUN серверу. Функционал данного сервера очень прост - возвращать устройству сделавшему запрос его реальный ip адрес. Сайт сам задает STUN сервер, который хочет использовать, например, в коде выше использовался такой сервер stun.l.google.com:19302. Запросы к этому серверу идут через протокол UPD(вместо TCP) минуя прокси. Суммируя вышесказанное, javascript может совершать запрос к произвольному серверу без прокси и получать ответ в виде реального внешнего ip. Вот ссылка на хорошую статью если вы хотите ознакомиться с вопросом более детально https://www.html5rocks.com/en/tutori...nfrastructure/
До недавнего времени в BAS использовался алгоритм, который запрещает любые запросы подобного рода. В данной версии, BAS изменяет ip полученный от сервиса на внешний ip текущего прокси, это происходит по умолчанию при использовании действия 'Прокси', тем не менее новый функционал можно отключать в этом же действии. Рассмотрим детали реализации:
1) Подмена ip происходит на уровне браузера, через js обнаружить ее невозможно.
2) Разные браузеры могут выдавать информацию в формате SDP, тем не менее немного отличающуюся. Подмена может осуществлятся через замену текста, и такой метод можно обнаружить проверив некоторые детали специфичные для браузера. BAS выдает информацию именно так, как это делает Chrome, без замены текста.
3) Запросы к любому STUN серверу запрещены. Даже если запретить получение информации непосредственно через js, но оставить возможность браузеру делать запрос к серверу, то реальный ip не будет известен клиенту, но будет известен серверу и если настроить несколько серверов или несколько портов и связать пользователя с конкретным сервером, то ip можно получить уже на стороне клиента. BAS защищает от подобного метода.
Есть простой метод, как можно проверить, пытается ли сайт получить ваш ip через WebRTC или нет, достаточно установить Wireshark, в поле фильтра установить строку stun и зайти на сайт, в случае использования WebRTC в окне приложения будут запросы. Вот видео, которое это демонстрирует: https://i.imgur.com/LwKQY7S.gifv
В случае BAS, запросов не будет, хоть ip и будет возвращаться.
Почему бы не сделать запросы к STUN серверу через туннелирование?
Дело в том, что не все прокси поддерживают протокол UPD, хотя это и указано в спецификации. Пример такого прокси https://i.imgur.com/ubKq7nZ.gifv В будущем BAS будет проверять прокси на такую возможность, но сейчас все запросы к STUN серверу запрещены.
Как видите, данная реализация хоть и не является идеальной, но достаточно близка к ней.
Кроме этого, действие 'Прокси' теперь также умеет автоматически изменять геолокацию и часовой пояс браузера.
Изменение часового пояса теперь также происходит на уровне браузера - абсолютно все даты, которые возвращает браузер теперь имеют часовой пояс точно такой же, как и у прокси.
BAS научился корректно возвращать измененную дату с учетом летнего времени.
Еще один способ, которым можно обнаружить примерное реальное месторасположение является использование internationalization api( https://developer.mozilla.org/en-US/...DateTimeFormat ). Пример использования: https://jsfiddle.net/0Lq2km96/, по ссылке должно отобразится ваше примерное реально месторасположение независимо от прокси и впн.
Эти значения также заменяются при использовании действия 'Прокси', вы можете убедится в этом зайдя на данную страницу из BAS.
Наконец, бывают ситуации, когда ip, который вы используете для доступа к прокси не соответствует его внешнему ip, в таких случаях BAS будет получать внешний ip через сервис ip.bablosoft.com. К сожалению, не существует способа получить адрес без сетевого запроса. Сервис должен стабильно работать при 20к запросах в секунду. Настройка отключаема.
Немало внимания в новом апдейте было уделено удобству использования основного окна.
Для элементов, значение которых может быть не совсем понятным, появились подсказки.
Реализовано множество удобных мелочей: список недавних проектов теперь находится всегда на основной панели, путь к текущему проекту можно скопировать, все иконки заменены на такие, что смотрятся лучше при маленьком размере элементов, изменены значки запущенных браузеров.
Добавлена возможность быстрого обмена проектами - открытие проекта по ссылке и загрузка на гугл диск.
Обновлено окно компиляции проекта, оно стало более интуитивным и интегрированным с облаком. Теперь проект можно обновлять/создавать прямо из BAS, появилась возможность не создавать архив при каждой компиляции.
Было потрачено много времени на поиск причины и исправление бага с несвоевременным освобождением памяти. Баг существовал все время на протяжении жизни проекта и проявлялся только тогда, когда несколько браузеров работали 10 и больше часов без перезапуска. Потребление памяти увеличивалось приблизительно на 5-10 мб в час, через несколько дней непрерывной работы проект становился неработоспособным. Ошибка была связана с библиотекой Qt, был найден метод как обойти этот баг.
Надеюсь, что новая версия вам понравится и будет полезной!
BrowserAutomationStudio. Создавайте автономные многопоточные приложения бесплатно и без навыков программирования.
(Ответов: 81, Просмотров: 57434)
- 15.11.2018 02:09
- 19.12.2018 03:30
Выпущена версия 21.5.1. В ней содержится множество изменений связанных с анонимностью браузера. Давайте рассмотрим их подробнее:
Современные браузеры поддерживают апи для работы со звуком. Используя методы этого апи сайт может генерировать и обрабатывать звук, а также получать доступ к бинарным данным. По аналогии с Canvas и WebGL, данные звука также содержат небольшие отличия в зависимости от железа, браузера и системы. Эти отличия могут быть использованы чтобы идентифицировать вас среди других пользователей сайта даже при использовании прокси. В новой версии поддерживается смена отпечатка аудио - BAS добавляет разные шаблоны шума в возвращаемые данные при каждой смене отпечатка. Кроме того, данное апи также дает доступ к разным системным параметрам связанных со звуком. BAS подменяет эти параметры, значения берутся из реальных устройств при помощи сервиса FingerprintSwitcher.
Подробнее о б этой технике можно прочитать в этой статье http://randomwalker.info/publication...easurement.pdf пункт 6.4.
На этом сайте можно получить отпечаток аудио для вашего браузера https://audiofingerprint.openwpm.com/
Сайт может получать данные об языке системы несколькими способами. Это заголовок 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 https://tools.ietf.org/html/rfc7231#section-5.3.5
Результаты тестирования алгоритма https://pastebin.com/raw/mmgVmbyb
Одним из свойств железа к которым сайт имеет доступ через javascript является заряд аккумулятора. Исследования в статье приведенной ниже показывают, что данная информация не опасна для пользователя, поскольку позволяет отслеживать его только в краткосрочной перспективе. Действительно, заряд аккумулятора постоянно меняется, а предсказать какие значения будут через длительное время невозможно. Тем не менее, для отслеживания массовых действий такой метод может быть полезен. Представьте, что вы запускаете BAS с ноутбука, а сайт видит как одновременно проходят тысячи регистраций с устройства, заряд которого равен 56%, а до конца зарядки осталось 35 минут. Конечно, можно запускать софт только на стационарном устройстве или полностью заряженном ноутбуке, но это тоже может быть подозрительно при применении мобильных отпечатков. Поэтому было решено эмулировать зарядку/разрядку аккумулятора, а также все события и возвращаемые апи значения на устройствах, который имеют аккумулятор. Информацию о его наличие предоставляет сервис FingerprintSwitcher. Вот как это может выглядеть: https://i.imgur.com/tDnZFDl.png на графике видно, что значения постепенно уменьшаются.
Статья об отпечатках аккумулятора https://eprint.iacr.org/2015/616.pdf
Результаты работы апи для вашего браузера https://fingerprints.bablosoft.com/battery Не удалось найти сервис, который показывает значения в динамике, поэтому сделал свой.
BAS использует некоторое количество вспомогательного кода для поиска элментов, внедрения решения рекапчи и другого. Раньше софт можно было обнаружить по наличию этого функционала, поэтому в новой версии он спрятан, все имена функций генерируются для каждого потока разные. Переработан механизм внедрения отпечатков, если раньше BAS полагался на использование конструкций вида Object.defineProperty, то сейчас подмена происходит внутри браузера. Старый метод используется только для изменения списка плагинов и в местах где это абсолютно необходимо. Например, Chrome, в отличие от Firefox не поддерживает апи для работы с VR шлемами. Поэтому для эмуляции этого функционала приходится использовать javascript. Обход некоторых других методов, которые используются для определения движка браузера также преписаны на с++.
Была улучшена эмуляция работы с мышью. Теперь при перемещении к элементу невидимому на экране используется колесо мыши, а не javascript как раньше. Если элемент находится далеко за пределами видимой области, скорость скрола намного быстрее, чем если бы он был совсем рядом. При этом перемещения происходят "рывками", как у реальных пользователей. Вот как это выглядит https://i.imgur.com/IdH2edf.gifv. Первоначальное положение курсора выбирается случайно, а не в левом верхнем углу как раньше. Увеличена частота генерации событий связанных с перемещением мыши.
Эмуляция порядка заголовков временно не работала при переходе к туннелированию. Сейчас этот функцинал возвращен. Порядок заголовков берется из реального устройства.
Добавлена возможность сохранять отпечаток в папке профиля и загружать его от туда при применении профиля. При получении информации о текущем профиле можно узнать, содержит ли он отпечаток, результат будет возвращен в переменную HAS_FINGERPRINT.
Был полностью переписан алгоритм замены шрифтов. Раньше BAS внедрялся в процесс браузера "на лету" и подменял некоторые системные вызовы, сейчас тот же эффект достигается за счет изменения исходного кода браузера. Новая реализация позволяет менять набор шрифтов не перезагружая браузер, а также избавится от некоторых багов. Сейчас для полноценной работы желательно, чтобы на машине, на которой запускается BAS было установлено как можно шрифтов, в будущем новые шрифты будут генерироваться самостоятельно за счет добавления шума.
Добавлена поддержка туннелирования флеш. Это означает, что абсолютно все запросы, которые делает процесс флеш будут проходить через заданный прокси. Следует понимать, что флеш обладает гораздо большими возможностями чем javscript и поэтому его включение - удар по анонимности. В BAS скорее всего не будут применятся техники для того, чтобы сделать флеш более безопасным, как это делается с javscript потому что его поддержка будет прекращена Adobe в 2020 году https://theblog.adobe.com/adobe-flash-update/ Если элемент с флеш меньше определенного размера Chrome просит пользователя подтвердить его запуск, в новой BAS версии сделано так, пользователь автоматически соглашается это сделать(если флеш включен).
Проверить ип возвращаемый через флеш можно на этом сайте https://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. - 30.01.2019 04:50
Вышла версия 21.6.1.
Основное изменение в этой версии - поддержка FingerprintDetector. Подробнее здесь FingeprintDetector - универсальный ответ, почему ботов банят.
Также было сделано несколько изменений и исправлений в BAS:
Сервис FingerprintSwitcher теперь подменяет список расширений видеокарты и многие другие параметры:
При добавлении нового функционала прокрутки страницы было допущено несколько ошибок, например, не совсем корректно работало ожидание элемента. Сейчас эти проблемы исправлены.
Поиск писем теперь поддерживает utf-8 кодировку. В частности это позволяет использовать кириллицу для поиска по теме письма или его содержимому.
Список исключений для Capmonster и Recaptcha2 теперь пуст по умолчанию, что позволяет передавать в софт абсолютно все запросы. Раньше его нужно было настраивать вручную.
Добавлен новый метод для XEvil и капчи с изображением, его использование позволяет экономить время при работе с данным софтом и избежать некоторых ошибок связанных с неточным получением изображения.
Действие "Шаблон" позволяет игнорировать спинтакс и не заменять переменные и ресурсы их значениями(поведение настраиваемое). Таким образом можно создавать многострочные переменные с специальными символами.
Исправлена ошибка с таймаутом при закрытии вкладки.
Исправлена ошибка с накоплением идентификаторов при создании и закрытие вкладок в цикле.
FingerprintDetector и FingerprintSwitcher теперь корректно работают вместе. Однако, лучше всего запускать Detector без примененного отпечатка.
В настройках BAS теперь находится ссылка, перейдя по которой можно отлаживать интерфейс прямо в браузере.
При создании действий "For", "While", "Foreach" и "Игнорировать ошибки" на панель сценария будут также добавляться вспомогательные действия.
У каждого действия теперь есть кнопка для игнорирования ошибок на протяжении его выполнения:
По кнопкам для перемещения точки выполнения легче попасть за счет увелечения их площади.
-------------
Следующим изменением будет ручное управление браузером с поддержкой записи сценария, работы в скомпилированном или в запущенном виде. Будет специальное действие для передачи контроля пользователю в многопоточном режиме. Также будет поддерживаться веб интерфейс. Ожидать апдейт можно через 2-3 недели. - 06.03.2019 16:55
Добавлена возможность управлять браузером в ручном режиме.
Это означает, что все действия мыши и клавиатуры будут передаваться в браузер напрямую. Данная возможность является опциональной, а старый режим управления без каких-либо изменений сохраняется в новой версии как один из возможных вариантов. Вот полный список всех способов взаимодействовать с браузером в новом режиме:
- Клики мышью.
- Перетягивание, включая html5 drag and drop.
- Двойное нажатие.
- Ввод с клавиатуры.
- Быстрые клавиши Ctrl-C, Ctrl-A, ...
- Смену урл.
- Скролл с помощью полосы прокрутки.
- Управление вкладками.
- Историей браузера(действие назад).
Чтобы включить новый режим, нужно нажать на данную кнопку:
Режимы также можно переключать достаточно быстро с помощью горячих клавиш(F1, F2, F3).
Видео. Управление в ручном режиме.
Автоматическая запись скрипта.
BAS также может записывать скрипт при включенном ручном управлении. Для это нужно переключиться в третий режим на соответствующей вкладке или нажать F3. При этом любое взаимодействие с пользователем будет конвертироваться в действия и добавляться на панель сценария. Туда будут попадать все действия, кроме, разве что прокрутки страницы. BAS будет стараться соединять действия в цепочки, например, клик по элементу и ввод текста будут объеденены в "Ввод текста" в элемент, поэтому панель сценария будет заполняться не сразу. Действие "Ждать полной загрузки" будет добавляться по мере того, как страница будет загружаться в браузере.
Видео. Автоматическая запись скрипта.
Управление браузером в многопоточном режиме.
Новые возможности доступны также в многопоточном режиме, для нужно вызвать действие "Ручное управление браузером". Данное действие сражу же передаст контроль над браузером пользователю, он получит соответствеющее уведомление - браузер будет подсвечен красным,
а в самом браузере появится ссылка, нажав на которую его можно остановить и передать контроль обратно в скрипт
Данный метод позволяет реализовать совместное управление браузером - часть работы будет делать пользователь, часть работы скрипт. Например, ввод капчи или авторизацию на сайте может совершать сам пользователь, а все остальное будет выполняться скриптом автоматически.
Видео. Управление браузером в многопотоке.
Управление браузером и веб-интерфейс.
При использовании веб-интерфейса ручное управление браузером происходит все равно в нативном окне. После события manual_control_start интерфейс должен выполнить метод ShowBrowser чтобы передать контроль пользователю. Более подробно данный процесс описан в мануале, который тоже обновился. В дополнение вы можете посмотреть код автоматически сгенерированного интерфейса, он также содержит обработку новых событий, или просто оставить автоматически сгенерированный код без изменений:
Видео. Управление браузером в режиме веб-интерфейса.
Больше информации.
Более подробная информация, а также примеры использования доступны по данной ссылке
Видео. Ручное управление, полный обзор. - 19.04.2019 01:20
Предлагаем вам скидки 50% на XEvil.
XEvil — простая, быстрая и удобная программа для полностью автоматического распознавания и обхода подавляющего числа капч (CAPTCHA), без необходимости подключения каких-либо сторонних сервисов.
Право получить скидку имеют:
Клиенты уже купившие BASPremium или ключ к FingerprintSwitcher на 3 месяца начиная с 10 апреля 2019.
Клиенты, которые будут покупать BASPremium или ключ к FingerprintSwitcher на 3 месяца до 1 мая 2019.
Акция ограничена по времени до 1 мая 2019, воспользоваться скидочным купоном после этого времени не удастся.
Чтобы получить скидочный купон необходимо написать письмо на почту mail.to.twaego@gmail.com с темой XEvil скидка.
Количество скидочных купонов также ограничено 30. - 19.05.2019 22:39
Выпущена версия 21.8.0.
Данная версия содержит одно большое изменение - добавление планировщика задач. Этот механизм позволяет работать сразу с несколькими приложениями написанными в среде BAS. Список возможностей планировщика:
- Возможность загружать скрипты из запущенного экземпляра BAS, из облака или из файла.
- Гибкая система настройки времени запуска.
- Сбор информации о выполнении задач.
- Контроль выполнения задач как в автоматическом, так и в ручном режиме.
- Интеграция с компилируемыми приложениями и с веб-интерфейсом.
- Быстрое перемещение списка задач между машинами.
- Удобный дружелюбный интерфейс.
- Возможность запускать планировщик как отдельное приложение.
Принцип работы.
При первом запуске приложение устанавливается на ПК пользователя и добавляется в автозагрузку. Такая архитектура необходима для того, чтобы иметь возможность выполнять задачи, когда BAS не запущен. Для начала работы необходимо нажать на данную кнопку в меню:
Появившееся после этого окно является центром управления всеми задачами на данной машине, здесь можно создавать задания и получать информацию об их выполнении. Так выглядит планировщик открытый в первый раз:
А это рабочая версия:
Создание задачи происходит по клику на кнопку "+" в правом нижнем углу. Пользователю необходимо заполнить информацию о проекте, ввести ресурсы и задать время выполнения. Ресурсы задаются только при редактировании или создании, а введенные значение потом будут использованы при запуске.
Софт поддерживает множество разнообразных способов задать время запуска, есть вклада, которая отображает прогнозируемое время запуска и типичные примеры использования:
Получение информации о выполнении.
Основная область содержит логи и список задач, для получения отчета о конкретной задаче необходимо нажать на кнопку меню:
Меню содежит более подробную информацию: ссылку на лог, результаты, отчет, если этого недостаточно, то по нажатию на ссылку "Показать/скрыть" вы можете открыть привычный интерфейс скрипта запущенного на BAS:
Архив заданий.
Любая задача, после завершения своего цикла запусков попадает в архив. Задачи из архива уже не будут запланированы, но они также еще не удалены. Пользователь может восстановить задачу из архива, либо оставить ее там на неопределенное время. Таким образом, архив можно использовать как каталог задач доступных на данном ПК.
Перемещение списка задач на другой ПК.
Софт поддерживает перенос задач на другую машину, для этого достаточно зайти в меню и выбрать "Сохранить все задания в файл"
Будут перенесены не только скрипты подгружаемые из облака, но и задачи загруженные из файла. Это относится и к проектам и к графику запусков. Теперь сделать VPS нагруженный скриптами BAS проще простого.
Интеграция с компилируемым приложением.
Существует также способ предоставить доступ к планировщику пользователям компилируемых приложений. Для этого необходимо указать при компиляции опцию "Интегрировать планировщик в приложение".
При этом, пользователь при старте скрипта увидит новое окно:
Он может выбрать либо запустить планировщик, либо запустить скрипт один раз мгновенно. От разработчика не требуется писать дополнительный код или присылать новый архив, достаточно просто установить флаг при компиляции.
Веб интерфейс и планировщик.
Указанная выше настройка подходит и для веб интерфейса, новое окно отображается и там. Кроме того, при добавлении задачи с интерфейсом, при выборе ресурсов будет отображено не нативное окно, а именно созданный разработчиком интерфейс бота.
Добавлены новые методы апи:
Код:Api.HasScheduler() Api.ShowScheduler()
И новое событие "run_type_select"
При переходе на новую версию интерфейс для входа необходимо сгенерировать заново или самостоятельно обработать новое событие:
Запуск планировщика отдельно от BAS.
Премиум пользователи могут найти ссылку на новый проект - TaskScheduler у себя в персональном кабинете. Фактически это планировщик как отдельное приложение, без BAS. Данный дистрибутив рекомендован к установке на VPS.
Сам процесс запуска установки пачки скриптов на сервере можно увидеть на видео:
- 11.06.2019 15:01
Выпущена версия 21.8.0.
В ней главный упор сделан на усовершенствование системы смены отпечатков.
Переработан механизм смены canvas.
Метод, которым меняется отпечаток canvas значительно усовершенствован. Это сделано для того, чтобы смена отпечатка не определялась больше антидетект системами. Сюда входит целый комплекс мер, приведу только один пример - вместо замены цвета для каждого пикселя, все изображение теперь анализируется, находятся его контуры, далее цвет меняется только "на границе":
Граница на изображении выше выделена красным цветом.
Это позволяет проходить некоторые тесты без негативных результатов:
(navigator дает ложно позитивный результат и в обычном браузере, dns зависит от прокси).
Также, я добавил несколько своих тестов для определения аутентичности canvas:
https://fingerprints.bablosoft.com/canvas
Изменение canvas теперь работает и с alpha каналом.
Это означает, что если элемент canvas содержит черно белое изображение, то отпечаток все равно будет меняться.
Новая версия BAS по умолчанию отрисовывает содержимое браузера используя видеокарту.
Старая реализация использовала исключительно CPU, но это можно обнаружить. Прежний способ отрисовки можно вернуть обратно заменив значения
Код:на--disable-gpu-deleted --disable-gpu-compositing-deleted
Код:В файле chrome_command_line.txt--disable-gpu --disable-gpu-compositing
Значительно увеличилась скорость при применении отпечатков.
Теперь BAS не тормозит при посещении сайтов, которые интенсивно работают с графикой, например, стриминговых сервисов.
Добавлен новый фактор для FingerprintSwitcher: ClientRectangles.
Данный метод позволяет составить отпечаток устройства через получение размеров специально составленного элемента. В отличии от canvas, анализируется только ширина, высота, и координаты, а не цвета каждого пикселя. Эти значения являются платформозависимыми и могут быть использованы для составоения отпечатков. Теперь BAS добавляет к ним шум, достаточный для того, чтобы менять отпечаток, но не настолько большой, чтобы нарушить работу сайтов.
Протестировать можно здесь:
https://browserleaks.com/rects
Исправлены проблемы смены даты при переходе на летнее время.
Данные рассчитываются согласно текущим правилам перехода на летнее время в стране, где находится ip.
Простенький тест, который показывает есть ли переход на летнее время в вашей стране или регионе. Он не зависит от текущей даты, и это хороший тест справляется ли ваша система смены отпечатков с датами:
https://jsfiddle.net/jp6rkcs4/
Возможность продлевать ключи FingerprintSwitcher и приобретать ключи без привязки к ip.
Данные возможности появятся через несколько дней.
Обновлен планировщик.
Новая версия 1.2.0 содержит переработанный механизм прерывания задач. Любая задача будет остановлена мгновенно, неважно на каком этапе выполнения или установки она находилась.
По причине того, что, чтобы обновить планировщик, нужно остановить все задачи, вам нужно согласиться на обновление при следующем запуске. В автоматическом режиме планировщик обновляться не будет.
Блок "Игнорировать ошибки" теперь отлавливает ошибками при выполнении javascript.
Это могут быть: ошибки парсинга json, несуществующие переменные и т. д.
Реализована работа с нативными комбобоксами.
Однако, автоматизировать выбор элемента все еще нужно старым способом. Это изменение будет очень полезно для использования в режиме ручного управления.
И множество других изменений:- Домен сайта теперь получается через прокси при использовании хттп клиента.
- Исправлены ошибки при работе с вложенными циклами для элементов.
- Из логов и других файлов скомпилированных скриптов убранны упоминания о BAS.
- Исправлны проблемы при работе с базой данных и типом данных из даты.
- Любые ошибки без блока "Игнорировать ошибки" во время выполнения OnApplicationStart приведут к завершению приложения.
- При выборе альтернативного сервера для решения капчи, BAS автоматически добавляет слеш к урл сервера.
- При использовании отрицательных координат для перемещения мыши, будут автоматически вызваны события о перемещении мыши за пределы экрана.
- Исправлены проблемы с вызовом событий о видимости браузера в веб интерфейсе.
- 24.08.2019 16:48
Выпущена версия 22.0.0
Она содержит множество улучшений для веб интерфейса, а также обновление интерфейса редактора скрипта.
Функции теперь имеют параметры и возвращаемое значение.
Добавлены действия "Получить Параметр Функции" и "Return".
Задать список параметров и их описание можно в менеджере функций
Теперь одну и ту же функцию можно вызывать с разными параметрами, что упростит повторное использование кода.
Новые действия содержат интерактивную документацию, подробности можно узнать там.
Менеджер функций.
Работать с функциями теперь можно в отдельном окне, которое называется менеджером функций.
Все элементы управления, а именно: создание, редактирование, удаление функций, были перенесены туда.
Добавлена возможность поиска функций и задание параметров.
Основное окно:
Редактирование функции:
Действия "Получить Параметр Функции" и "Return" добавляются в редактор скрипта автоматически.
Расширение API для веб интерфейса.
Добавлено множество методов, которые можно вызывать из веб интерфейса.
Методы для взаимодействия с системным окном:
- MoveWindow - смена положения окна.
- ResizeWindow - изменение размеров окна.
- Api.OpenFileDialog, Api.SaveFileDialog - вызов системного диалога выбора файла.
- ShowNotification - показ системных уведомлений в трее.
- OpenUrl - посещение заданного url, открытие файла или программы.
Больше подробностей можно узнать здесь:
https://wiki.bablosoft.com/web-inter...ngnativewindow
Все генерируемые диалоги для выбора файла были заменены на нативные.
Добавлено синхронное API для работы с файловой системой. Сюда входит: чтение/запись файлов, работа с папками.
Больше подробностей можно узнать здесь:
https://wiki.bablosoft.com/web-interface/#/filesystem
Начальные размеры окна можно задать прямо в его настройках:
Создавать интерфейс теперь можно с нуля.
Это можно было делать и раньше, но сейчас для этого появились дополнительные возможности.
При создании и генериции интерфейса можно выбрать его тип:
Появилась возможность сохранять изменения прямо из редактора кода и вообще не заходить в визуальный редактор интерфейса.
Новый тип интерфейса заставляет BAS работать принципиально новым способом, вместо того, чтобы запускать один скрипт сразу, как это было раньше, теперь можно реагировать на события на странице(например, нажатия кнопок) вызывая BAS функции, а параметры для этих функций можно брать прямо из веб интерфейса.
Вызов функций BAS и создание потоков из веб интерфейса.
Теперь неограниченное число потоков можно создавать прямо из веб интерфейса, а также вызывать в них функции с заданными параметрами.
Для получения результатов можно использовать объект Promise или ключевое слово await.
Код:Данное API умеет обрабатывать ошибки и имеет специальное расширение к объекту Promise, которое останавливает поток.//Создаем поток 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()
Более подробно здесь:
https://wiki.bablosoft.com/web-inter...allbasfunction
Существует возможность отлаживать выполнение функций прямо в BAS:
Приложение ParseGoogle. Демонстрация функционала.
Было создано новое приложение ParseGoogle. Оно парсит выдачу по заданному запросу.
Приложение довольно примитивно с точки зрения функционала, зато имеет приятный интерфейс и хорошо демонстрирует новые возможности.
Конечно же, все это сделано на BAS.
Скомпилированное приложение
https://bablosoft.com/distr/ParseGoo...arseGoogle.zip
Проект BAS
https://bablosoft.com/distr/ParseGoo...arseGoogle.xml
Веб интерфейс
https://bablosoft.com/distr/ParseGoo....interface.txt
Данное видео демонстрирует процесс создания
https://www.youtube.com/watch?v=SOu0uBhNewE
Вызов функций BAS и создание потоков из node.js.
Функции BAS теперь можно вызывать и из node.js.
Так же, как и для веб интерфейса есть возможность ожидать результатов и обрабатывать ошибки.
Код:var Result = await BAS_FUNCTION( "FunctionName", {ParamName1: "ParamValue1", ParamName2: "ParamValue2"} )
Подробней здесь:
https://wiki.bablosoft.com/doku.php?..._bas_functions
Этот метод значительно упрощает взаимодействие с браузером и с BAS из node.js
Улучшения интерфейса
Внешний вид редактора скриптов был переработан.
Добавлена визуализация меток, метки можно создавать перетаскиванием специального элемента управления:
Добавлена справка по основным возможностям BAS:
В нее можно попасть нажав на кнопку по центру, справа в редакторе скрипта.
Справка содержит описание для каждой группы(циклов, условий, парсинга и т .д.), с основными принципами работы.
Там также находятся основные действия и примеры использования.
Был обновлен инспектор переменных - теперь он показывает состояние ресурсов, его размер может быть изменен.
Переход к функции может быть осуществлен по клику на названии функции в действии "Вызов функции".
Место для активной вставки действия не изменяется при редактировании скрипта.
Описание действия сохраняется вместе с сохранением данных.
Верхняя панель в редакторе скрипта была заменена на меню.
Вместо задания количества успешных и неудачных выполнений теперь можно выбрать "Повторять"
Обзор нового интерфейса можно найти в этом видео:
Исправление ошибок
Планировщик не перестает работать при питании от аккумулятора.
Исправлено решение рекапчи если функция ответа является строкой.
Исправлено падение при сворачивании веб интерфейса в трей на Windows 10.
При отсутствии информации о кодировке почтового сообщения, BAS не подразумевает что письмо закодировано в quoted printable.
Исправлено падение при установке скорости мыши из строки.
Исправлено смешивание ресурсов если планировщик запускает одинаковые проекты одновременно. - 20.09.2019 21:34
Выпущена версия 22.1.0
Она содержит множество исправлений ошибок, а также некоторые фичи, которые запрашивали пользователи.
Recaptcha V3
Добавлено уведомление о каждом использовании сайтом Recaptcha V3 в режиме записи.
Уведомление содержит название действия, которое было использовано сайтом.
Добавлено новое действие "Recatpcha V3", оно задает параметры решения Recatpcha V3.
Доступные сервисы: 2captcha.com, rucaptcha.com, anti-captcha.com
Возможно выборочное решение только для нужных действий, установка минимального рейтинга.
Видео. Решение Recaptcha V3
Больше подробностей по использованию действия вы можете найти в интерактивной документации.
Фильтрация отпечатков
Теперь стало возможно получать отпечатки с определенными параметрами. Список фильтров:
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 или старше до этого срока. - 26.10.2019 01:47
Выпущена версия 22.2.0.
Обновление целиком посвящено улучшению системы модулей.
Что такое модули?
Модули позволяют расширять функционал BAS. Каждый модуль содержит набор действий, например, есть модуль для работы с регулярными выражениями, списками, и т. д.
Также модули позволяю внедрять код в движок BAS и в движок браузера.
Каким образом модульная система была улучшена?
Добавлена возможность создавать собственные модули.
После обновления BAS позволяет превратить проект с набором функций в модуль. Выбранные функции будут преобразованы в новые действия. Все описания, которые вы ввели при создании функции, будут перенесены в пользовательский интерфейс нового модуля. С помощью нового диалога вы можете задать описание нового модуля и выбрать иконку, версию, и т. д. Проект, который был использован для создания модуля, можно использовать повторно, например, для обновления модуля, так как он сохраняет все введенные настройки. Разные функции из одного модуля могут вызывать друг друга.
Для создания нового модуля зайдите в менеджер модулей и нажмите на кнопку "Создать новый модуль".
Возможность устанавливать свои или чужие модули.
BAS разрешает устанавливать неограниченное количество модулей тем самым расширяя функционал. Установка происходит для текущего экземпляра BAS, это значит, что новые модули станут доступны в любом проекте над которым вы работаете. Пользователи могут обмениваться модулями, для этого, нужно создать модуль используя кнопку "Создать новый модуль", затем передать файл получившийся в результате другому пользователю. Сделать это не трудно, поскольку модуль является zip архивом. Затем его можно установить используя кнопку "Установить модуль".
Использование модулей в скомпилированных приложениях.
Теперь новые модули можно использовать не только в экземпляре BAS, где они были установлены, но и в скомпилированном приложении. Для этого нет необходимости производить какие-то дополнительные действия. BAS автоматически перенесет нужную информацию в проект.
Передача проектов с модулями.
Давайте рассмотрим такой пример, вы передаете проект другому разработчику для редактирования, у вас модули установлены, у него - нет. В этом случае, он по прежнему сможет запускать проект и даже редактировать те действия, которых у него по сути нет. Достигается это за счет механизма "внешних модулей". После смены проекта внешние модули исчезнут. Допускается передача проектов неограниченное количество раз.
BAS загружает только те модули, которые используются в проекте.
Вы можете устанавливать десятки модулей, если при этом использоваться будут не все, то BAS не будет "раздувать" текущий проект неиспользуемыми модулями. Софт будет автоматически анализировать проект и просто не подключать лишнее. Это не касается режима записи, потому что в нем проект изменяется и потенциально любой установленный модуль может быть использован.
Существующий функционал BAS может быть изменен.
Теперь можно менять функционал содержащийся в нативных модулях. Для этого необходимо:
1) Скопировать содержимое нужного модуля из папки C:\Users\%USERNAME%\AppData\Roaming\BrowserAutomat ionStudioTesting\apps\22.2.0\modules в папку C:\Users\%USERNAME%\AppData\Roaming\BrowserAutomat ionStudioTesting\apps\22.2.0\custom.
2) Изменить содержимое модуля в папке custom.
Все изменения сохранятся в скомпилированном приложении и при передаче проекта.
Здесь может пригодится документация по структуре модулей, которую написал наш пользователь.
https://cheshirecaat.github.io/BAS.Modules/
Видео можно данного процесса найти здесь https://www.youtube.com/watch?v=sLNxrcZMOA0&t=3012s
Заменить можно любые типы файлов, не только скрипты. Например, возможно заменить базу к которой содержится информация об ip адресах.
Node.js можно использовать в модулях.
Существует возможность использовать не только стандартные действия BAS, но и код на Node.js, включая пакеты из NPM. BAS будет автоматически разрешать конфликты для разных версиях NPM модулей в пользу новых версий. Это дает возможность создавать обвертки для NPM модулей в виде модулей BAS с пользовательским интерфейсом. Например, в обучающем видео мы начали создавать такую обвертку для FTP клиента.
https://www.youtube.com/watch?v=sLNxrcZMOA0&t=2092s
Код модуля можно вызвать из Node.js.
Модули добавляют новые действия, которые по сути являются BAS функциями и они подчиняются абсолютно тем же правилам, что и обычные BAS функции. Например, их можно вызвать из Node.js используя метод BAS_FUNCTION. Название функции определяется как название модуля + нижнее подчеркивание + название действия. Например, если название модуля - TestModule, а название действия TestAction, то название функции будет TestModule_TestAction.
Видео с таймкодом https://www.youtube.com/watch?v=sLNxrcZMOA0&t=2740s
Интерфейс менеджера модулей был доработан.
Появился поиск, разделение на нативные и пользовательские модули, возможность удалять пользовательские модули. Код был доработан, так чтобы манипуляции с модульной системой не приводили к сбоям в режиме записи.
Установка модулей в ручном режиме.
Чтобы установить модуль без использования инсталлятора, необходимо скопировать его содержимое в папку
C:\Users\%USERNAME%\AppData\Roaming\BrowserAutomat ionStudioTesting\apps\22.2.0\custom\
Таким образом, структура файлов должна быть такой:
custom\НАЗВАНИЕ МОДУЛЯ\manifest.json и другие файлы модуля.
Это особенно актуально для модулей созданных до апдейта.
Хотелось бы отметить, что вместо переноса в папку modules, теперь нужно переносить в папку custom.
Новые модули рекомендуется устанавливать через кнопку "Установить модуль".
Дополнительная информация.
Документация по структуре модулей https://cheshirecaat.github.io/BAS.Modules/
Видеообзор модульной системы
Тэги топика:
Похожие темы
Темы | Раздел | Ответов | Последний пост |
---|---|---|---|
Создавайте и администрируйте сайты для госучреждений, Проконсультирую :) | Другая работа | 14 | 31.07.2016 14:55 |
Бесплатно создам прототип для сайта / прототип для мобильного приложения (AXURE). | Web программирование | 6 | 03.05.2014 04:44 |
Заработок на ANDROID! Возможно ли без навыков программирования? | Вопросы от новичков | 25 | 21.01.2013 15:34 |
[Палю тему] Качаем приложения с appstore БЕСПЛАТНО! | Прочее | 2 | 20.11.2012 19:27 |