Блог
Как выбрать антидетект-браузер: девять проверок за час
Команда ARMANOS7 мин
Что вообще можно проверить до оплаты
Обещание на витрине вы проверить не можете, а ответ браузера можете: площадка читает его теми же строками, что и вы, и других строк у неё нет.
Подменить эти ответы получается двумя дорогами: внутри самой сборки или скриптом поверх готового Chrome. Вторая дорога видна снаружи, и как раз её ловят девять проверок ниже, потому что скрипт не дотягивается до всех мест, откуда страница читает.
Ни одна из них не требует ни аккаунта на площадке, ни покупки. Пробный профиль, ваш обычный браузер и окно разработчика это весь набор, и он есть у вас уже сейчас.
- 1
Два профиля
Заведите профили с двумя разными системами.
- 2
Своё окно рядом
Откройте обычный браузер той же машины третьим окном.
- 3
Одно сравнение
Совпавшее между тремя окнами пришло с вашей машины.
Девять проверок и что каждая ловит
Каждая строка ниже спрашивает у браузера одно значение и ставит его рядом со вторым, которое вы знаете сами.
| Что вы спрашиваете | Что выдаёт подделку |
|---|---|
| Шесть родовых семейств шрифтов | serif, cursive, fantasy и math отвечают одной шириной |
| Пиксели WebGL целиком и окнами | две дороги чтения одного рисунка дают разные байты |
| Пояс, язык, календарь, разделители | пояс взят от прокси, а разделители от вашей системы |
| Число микрофонов, камер и динамиков | во всех профилях оно ваше собственное |
| Голоса синтеза речи | голоса вашей системы при чужой объявленной |
| Скорость, задержка и вид связи | те же числа, что у вашего обычного браузера |
| Предел кучи у сценариев страницы | число мимо ступеней или мимо объявленной памяти |
| WebGPU при названной видеокарте | карта названа, а navigator.gpu нет вовсе |
| Три поля связи у телефонного профиля | полей нет либо type отвечает wifi |
Шрифты: шесть семейств, одна мерка
Страница вправе спросить не имя шрифта, а семейство: serif, sans-serif, monospace, cursive, fantasy и math. Живая машина раскрывает все шесть в разные шрифты и отдаёт разную ширину строки, потому что за семейством у неё стоит свой шрифт системы.
Замерено 18 августа на маке. Профиль родной системы ответил четырьмя разными ширинами, профиль чужой системы отдал все четыре одним числом, и это число совпало с шириной serif.
| Семейство | Профиль macOS на маке | Профиль Windows на маке |
|---|---|---|
| serif | 840,66 | 840,66 |
| cursive | 842,34 | 840,66 |
| fantasy | 742,05 | 840,66 |
| math | 894,11 | 840,66 |
Память отвечает ступенью, а не байтами
Chromium не называет сценариям площадки точный предел кучи: ответ ложится на одну из ста ступеней, от 10 миллионов до 3,76 миллиарда байт, и ступени эти одинаковы у всех машин.
Прочитайте это число у пробного профиля и у своего обычного браузера. Ответ между ступенями или в точности равный вашей настоящей памяти означает, что подменой тут не занимались, и площадка прочитает вашу машину как есть.
То же число обязано сойтись с памятью, которую профиль объявляет рядом. Профиль, назвавший скромную память и выдающий щедрый потолок кучи, это два ответа от двух разных машин, и площадка читает оба в одну строку.
Видеокарта названа, а WebGPU нет
Имя видеокарты профиль объявляет сам, а состояние карты называет ваша машина, и эти два ответа приходят из разных мест, поэтому и сойтись они могут только случайно.
На арендованном сервере Windows без карты замер 4 сентября дал webgl и webgpu в состоянии disabled_off, а navigator.gpu не появился ни в одном из шести запусков, что со скрытым окном, что с настоящим. Имя дорогой карты рядом с таким ответом это пара, которой не бывает.
Телефонный профиль и три поля связи
Android отдаёт странице три поля связи: type, downlinkMax и ontypechange. Настольный Chrome их не отдаёт вовсе, и это самая быстрая проверка телефонного профиля: одна строка в окне разработчика.
Если поля есть, спросите их значения. Ответ вашей собственной машины виден сразу: type равен wifi, downlinkMax бесконечности, а профиль при этом объявляет сотовую связь. Три поля обязаны появиться вместе и со значениями телефона.
Зелёная отметка расширения не равна работе
Карточка блокировщика показывает «включено» и «файлы найдены», а его правило при этом может не срабатывать вовсе, и по карточке этого не видно.
Замерено одним и тем же расширением с одним правилом блокировки: на одной сборке запрещённый запрос дошёл до сервера, на другой не дошёл, при одинаковой зелёной отметке в обеих. Поставьте блокировщик в пробный профиль и посмотрите, доехал ли запрет до сети.
То же и с любым другим обещанным вам расширением. Поставьте его, воспользуйтесь один раз и судите по итогу, а не по зелёной отметке в карточке.
Десятая проверка: кадр и поток
Страница спрашивает число ядер и имя платформы не только у своего окна: тот же вопрос она задаёт внутри невидимой рамки и в отдельном потоке. Подмена скриптом поверх готового Chrome доходит до окна и часто не доходит до этих двух.
Откройте в пробном профиле окно разработчика и спросите число ядер у окна, потом создайте поток и спросите его же тем же свойством. Два разных числа из одного профиля это ответ о продавце, а не о вашей машине.
Эта строка не вошла в таблицу из девяти, потому что требует трёх строк кода, а не одной. Зато она отделяет подмену в сборке от подмены поверх сборки точнее любой другой.
Тот же профиль завтра отвечает так же
Одиннадцатый вопрос не про подмену, а про постоянство: закройте пробный профиль, откройте назавтра и прочитайте те же строки. Живая машина отвечает одинаково изо дня в день, и профиль обязан вести себя так же, иначе площадка видит новую машину под старым аккаунтом.
У нас ответы профиля выводятся из его зерна, поэтому вчерашний холст, шрифты и память совпадают с сегодняшними до байта, а у второго профиля отличаются. Продавец, у которого отпечаток меняется от запуска к запуску, продаёт вам новую машину при каждом входе.
Как уложить девять проверок в час
Дольше всего уходит не чтение ответов, а заведение профилей и прокси. Сами девять строк вы прогоните по таблице сверху вниз за несколько минут, а десятую и одиннадцатую за ещё десять.
Порядок разумнее такой: сперва шрифты и память, потом видеокарта, потом связь. Первые две расходятся чаще остальных и стоят вам одной строки в окне разработчика.
Что делать с результатом
Девять ответов делят продавцов надвое: одни меняют значения внутри самой сборки, другие накрывают готовый Chrome скриптом, и второе дешевле в разработке ровно настолько, насколько заметнее снаружи.
Разницу видно по тому, совпал ли ответ профиля с ответом вашей машины там, где совпадать он не должен. Выбор ваш, и теперь вы делаете его до оплаты, а не после первой блокировки.
Чего это не утверждает
- Это не утверждает, что сошедшиеся девять ответов делают аккаунт безопасным. Поведение, платёжные данные и история аккаунта остаются нетронутыми любым браузером.
- Числа про видеокарту сняты на одном арендованном сервере Windows без карты. Настольная машина с картой ответит иначе, и переносится отсюда вид ответа, а не сами числа.
- Ширины шрифтов замерены на маке. На другой системе числа будут другие, а правило то же: четыре семейства одной ширины это машина, которой не бывает.
- Эти проверки написаны не под один браузер: проведите их и на ARMANOS. Ни одна из них не говорит, как площадка поведёт себя завтра.
Где это можно увидеть самому
Каждое число выше выходит из файла, который можно открыть и прочитать.
- Девять умений движка и знак каждого в сборке
- packages/shared/src/index.js · apps/desktop/test/опись-умений-снимается.js
- Шесть родовых семейств и правило выбора
- apps/desktop/src/lib/genericFonts.js · apps/desktop/test/generic-fonts.js
- Сто ступеней памяти сверены с движком
- docs/замеры/ступени-памяти-153.txt · packages/shared/test/ступени-памяти-как-у-движка.js
- Состояние карты и шесть попыток WebGPU
- docs/замеры/gpu-status-windows-04-09.log · docs/замеры/webgpu-windows-04-09.log
- Три поля связи телефона в настоящем окне
- apps/desktop/test/телефон-живьём.js · apps/desktop/test/поля-связи-телефона.js
- Одно правило блокировки на двух движках
- apps/desktop/test/extension-limits-honest.js
Вопросы
- Нужно ли для этого уметь программировать?
- Нет. Каждая проверка это одна строка в окне разработчика и ответ, который вы читаете глазами.
- Хватит ли пробного периода?
- Хватит, если он даёт завести два профиля с разными системами. Одного профиля мало: половина проверок это сравнение окон.
- А если пробного периода не дают вовсе?
- Тогда вы платите за то, чего проверить нельзя. Это само по себе ответ на вопрос выбора.
- Можно ли обойтись готовым сайтом проверки отпечатка?
- Частично. Такой сайт показывает значения, но не ставит их рядом с вашей машиной, а подмену ловит именно сравнение.
- Что из девяти важнее всего?
- Шрифты и предел памяти. Они читаются дешевле прочих и расходятся чаще прочих.
Начните с ответов своего браузера
Проверка читает 12 значений и никуда их не отправляет.