G-WolF
New member
Больше всего я ахуел от AEZAKMI, ведь каким хуем с такими настройками вообще можно использовать браузер для ЕБАННОГО FACEBOOKA. Эта синяя сволочь палит большинство параметров, а тут такой проеб...
Я не из тех, кто будет поливать грязью чей-то труд, но это просто пиздец. Надеюсь они примут во внимание этот материал и внесут поправления. Так быть не должно, тем более за 70$/месяц. Короче смотрите сами.
Система сильна на столько, на сколько сильна ее самая слабая часть
И снова здравствуйте.
Все мы задавались вопросом "какой антидетект-браузер выбрать?", и, что главное, "как выбирать?". Проблема в том, что в виду высокой сложности эмуляции чужой системы все антидетект-браузеры палятся.
В этом посте я расскажу и на примерах, аргументированно, без домыслов и теорий покажу, как они палятся, как минимизировать запал, и дам вам минимальное представление об устройстве каждого из них, чтобы вы могли выбрать сами.
Итак, у нас на операционном столе сегодня все четыре топовых браузера:
, , и (он же "multilogin").
Все разработчики браузеров - классные ребята и любезно согласились предоставить мне демо, а зря.
Сначала теория
1) Каждый антидетект-браузер сделан на базе движка обычного браузера. Как правило это Chromium или Firefox. Фундаментальные различия во внутреннем устройстве движков столь велики, что с помощью javascript на странице сайт всегда может определить, в каком на самом деле движке загружена страница сайта, которую мы просматриваем. Это значит, что антифрод знает, сделан ли ваш браузер на основе IE, хрома или фф.
Примеры:
Отсюда первое правило работы с антидетект-браузером:
Используйте UserAgent, соответствующий движку вашего антидетекта.
Например, если ваш антидетект сделан на Хромиуме, и ваша ось - это мак, то используйте самый обычный UserAgent хрома на маке, например Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36
2) Железо не должно быть уникальным. Оно должно быть "таким же, как у всех".
Характеристики железа вашего пк отражаются в следующих отпечатках:
Желающие углубиться в теорию могут посмотреть презентацию разработчика гугла (eng) про фингерпринт на основе WebGL, используемый в том числе и в ReCaptcha.
Чем более не уникальный каждый из этих отпечатков, тем меньше к вашему устройству вопросов, т.к. оно "такое же, как и все". Ни один из этих отпечатков не позволяет уникально идентифицировать ваше устройство, но позволяет условно определить его "класс" (например "ПК с дискретным видео", или "телефон, вероятно айфон"). И лучший способ держать эти отпечатки правдоподобными - не трогать их. Без шуток.
Второе правило работы с антидетект-браузером:
Не трогай свои железные отпечатки
3) Когда мы используем прокси другой страны, неизбежно встает вопрос о смене отображаемого языка, часового пояса, и возможно набора шрифтов, соответствующего вашей локали (в случае работы с азиатскими рынками)
Есть три основных способа подменить в браузере возвращаемые через javascript значения языков, часового пояса, разрешения экрана и тд:
Не трогай и не модифицируй через javascript ничего на странице/сайте
Снова обратимся к теории, чтобы понять, как сайт/антифрод может определить, что параметры браузера подменены через javascript.
Чаще всего нам нужно подменять язык ос, чтобы он соответсововал локации пользователя. Кроме того, что он передается на сайт в заголовке Accept-Language, он доступен для js через переменную navigator.language.
Свойства объекта navigator нельзя просто перезаписать, т.к. они доступны только для чтения. Read-only-объекты в javascript традиционно реализуются через создание у объекта пустого setter-a и не пустого getter-a, возвращающего нужное значение. По-этому у нас всегда остается возможность перезаписать такие объекты через вызов Object.defineProperty:
Мы можем присвоить изменяемому объекту value, а можем навесить на него свой getter, перезаписав его родной, и сохранив таким образом "нативное" read-only поведение этого объекта:
Вуа-ля, мы подменили нужное нам значение. Но что же могло пойти не так?
Все. Все пошло не так, Наташ.
Изначально такие объекты как navigator, screen и некоторые другие не имеют собственных свойств, а наследуют все свойства от конструктора старшего брата (объектов Navigator и Screen соответственно). А вызов Object.defineProperty на любом из этих объектов создает у них собственные свойства:
Таким образом любой сайт/антифрод просто вызвав одну строчку кода
if( Object.getOwnPropertyNames(navigator)[0] ) alert(fake parameters detected);
может определить, что параметры нашего браузера - фальшивка. И в этот момент все навороченные защиты и эмуляции становятся бесполезны.
Ныряем
Теперь, когда мы определились, куда будем смотреть, перейдем к нашим котятам. Для создания профилей я выбирал дефалтные настройки, без прокси, с минимально-возможными подменами отпечатков и переменных окружения (экран, цветность, х*е-мое)
Indigo
Вариант, собранный на базе Хромиума, с кодовым названием "Mimic".
Самый крепко сбитый браузер из всех, а так же единственный браузер, в котором подмена параметров реализована в исходниках, а не через js.
Ничего нигде не торчит, ничего не палится, кроме...
На чем палится
1) Выключен http3 протокол, который по-умолчанию доступен в хроме с 2013 года. Каждый сайт видит тип соединения и протокол (http1.1, h2 или http/2+quic, он же http3), по которому к нему обращаются. И в случае, если к сайту, поддерживающему http3 идет обращение от хрома, но по http2, то или это обращение идет через прокси, или это не настоящий хром. И первый и второй выводы, сделанные анти-фрод системой - плохи для нас.
2) При отрисовке текста в качестве моноширинного шрифта используется шрифт Times, который не является моноширинным. В дикой природе это невозможно и это очевидный признак подмены шрифтов. Моноширинный шрифт - тот, у которого ширина всех символов (например w и i) одинаковая, например Courier new. Согласно спецификации при указании в стилях элемента font-family: monospace; браузер должен взять один из доступных моноширинных шрифтов (в системе хотя бы один такой ш
Я не из тех, кто будет поливать грязью чей-то труд, но это просто пиздец. Надеюсь они примут во внимание этот материал и внесут поправления. Так быть не должно, тем более за 70$/месяц. Короче смотрите сами.
Система сильна на столько, на сколько сильна ее самая слабая часть
И снова здравствуйте.
Все мы задавались вопросом "какой антидетект-браузер выбрать?", и, что главное, "как выбирать?". Проблема в том, что в виду высокой сложности эмуляции чужой системы все антидетект-браузеры палятся.
В этом посте я расскажу и на примерах, аргументированно, без домыслов и теорий покажу, как они палятся, как минимизировать запал, и дам вам минимальное представление об устройстве каждого из них, чтобы вы могли выбрать сами.
Итак, у нас на операционном столе сегодня все четыре топовых браузера:
, , и (он же "multilogin").
Все разработчики браузеров - классные ребята и любезно согласились предоставить мне демо, а зря.
Сначала теория
1) Каждый антидетект-браузер сделан на базе движка обычного браузера. Как правило это Chromium или Firefox. Фундаментальные различия во внутреннем устройстве движков столь велики, что с помощью javascript на странице сайт всегда может определить, в каком на самом деле движке загружена страница сайта, которую мы просматриваем. Это значит, что антифрод знает, сделан ли ваш браузер на основе IE, хрома или фф.
Примеры:
- только в ИЕ есть поддержка ActiveX, объекты Debug, document.security, navigator.cpuClass и десятки других,
- только в ФФ и Сафари есть поддержка MathML,
- только в Хроме есть ,
- только в Хроме и ФФ есть поддержка кодека webM в теге video,
Отсюда первое правило работы с антидетект-браузером:
Используйте UserAgent, соответствующий движку вашего антидетекта.
Например, если ваш антидетект сделан на Хромиуме, и ваша ось - это мак, то используйте самый обычный UserAgent хрома на маке, например Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36
2) Железо не должно быть уникальным. Оно должно быть "таким же, как у всех".
Характеристики железа вашего пк отражаются в следующих отпечатках:
- Canvas простой (2d) - с допущениями не уникален внутри каждой версии каждой ОС. Различия в отпечатках родятся из-за разницы механизмов сглаживания шрифтов в различных операционных системах.
- (он же Canvas-3d) - в этом случае картинка рисуется напрямую через видеокарту (если поддержка 3d-ускорения включена в браузере и в ос/виртуалке), и внутри браузера силами его (если поддержка 3d-ускорения в ос недоступна, или отключена в браузере), не уникален для каждой комбинации "ос+видеокарта+драйвер видеокарты" в случае, если есть поддержка 3d-ускорения, и не уникален для каждой комбинации "браузер+ос", если поддержка 3d-ускорения отсутствует/выключена. На выборке 1кк US-трафа на момент написания статьи поддержки 3d-ускорения не было на пк у 16% пользователей.
- Audio - не уникален внутри каждой версии аудио-чипсета вашего девайса.
Желающие углубиться в теорию могут посмотреть презентацию разработчика гугла (eng) про фингерпринт на основе WebGL, используемый в том числе и в ReCaptcha.
Чем более не уникальный каждый из этих отпечатков, тем меньше к вашему устройству вопросов, т.к. оно "такое же, как и все". Ни один из этих отпечатков не позволяет уникально идентифицировать ваше устройство, но позволяет условно определить его "класс" (например "ПК с дискретным видео", или "телефон, вероятно айфон"). И лучший способ держать эти отпечатки правдоподобными - не трогать их. Без шуток.
Второе правило работы с антидетект-браузером:
Не трогай свои железные отпечатки
3) Когда мы используем прокси другой страны, неизбежно встает вопрос о смене отображаемого языка, часового пояса, и возможно набора шрифтов, соответствующего вашей локали (в случае работы с азиатскими рынками)
Есть три основных способа подменить в браузере возвращаемые через javascript значения языков, часового пояса, разрешения экрана и тд:
- переписать эти функции в исходном коде браузера, до его компиляции. Это самый надежный и самый сложно определяемый способ.
- заинжектиться в работающий процесс вкладки и перехватывать обращения к нужным функциям в реальном времени. Технически сложно, т.к. смещения и адреса функций плывут с каждым обновлением браузера.
- перезаписать нужные нам значения прямо на странице через javascript же, после инициализации страницы, которую мы просматриваем. Самый простой в реализации, но самый отвратительный способ, т.к. сделать это незаметно действительно сложно. Как я покажу дальше, почти все антидетект-браузеры выбрали этот путь, чем подставили своих пользователей.
Не трогай и не модифицируй через javascript ничего на странице/сайте
Снова обратимся к теории, чтобы понять, как сайт/антифрод может определить, что параметры браузера подменены через javascript.
Чаще всего нам нужно подменять язык ос, чтобы он соответсововал локации пользователя. Кроме того, что он передается на сайт в заголовке Accept-Language, он доступен для js через переменную navigator.language.
Свойства объекта navigator нельзя просто перезаписать, т.к. они доступны только для чтения. Read-only-объекты в javascript традиционно реализуются через создание у объекта пустого setter-a и не пустого getter-a, возвращающего нужное значение. По-этому у нас всегда остается возможность перезаписать такие объекты через вызов Object.defineProperty:
Мы можем присвоить изменяемому объекту value, а можем навесить на него свой getter, перезаписав его родной, и сохранив таким образом "нативное" read-only поведение этого объекта:
Вуа-ля, мы подменили нужное нам значение. Но что же могло пойти не так?
Все. Все пошло не так, Наташ.
Изначально такие объекты как navigator, screen и некоторые другие не имеют собственных свойств, а наследуют все свойства от конструктора старшего брата (объектов Navigator и Screen соответственно). А вызов Object.defineProperty на любом из этих объектов создает у них собственные свойства:
Таким образом любой сайт/антифрод просто вызвав одну строчку кода
if( Object.getOwnPropertyNames(navigator)[0] ) alert(fake parameters detected);
может определить, что параметры нашего браузера - фальшивка. И в этот момент все навороченные защиты и эмуляции становятся бесполезны.
Ныряем
Теперь, когда мы определились, куда будем смотреть, перейдем к нашим котятам. Для создания профилей я выбирал дефалтные настройки, без прокси, с минимально-возможными подменами отпечатков и переменных окружения (экран, цветность, х*е-мое)
Indigo
Вариант, собранный на базе Хромиума, с кодовым названием "Mimic".
Самый крепко сбитый браузер из всех, а так же единственный браузер, в котором подмена параметров реализована в исходниках, а не через js.
Ничего нигде не торчит, ничего не палится, кроме...
На чем палится
1) Выключен http3 протокол, который по-умолчанию доступен в хроме с 2013 года. Каждый сайт видит тип соединения и протокол (http1.1, h2 или http/2+quic, он же http3), по которому к нему обращаются. И в случае, если к сайту, поддерживающему http3 идет обращение от хрома, но по http2, то или это обращение идет через прокси, или это не настоящий хром. И первый и второй выводы, сделанные анти-фрод системой - плохи для нас.
2) При отрисовке текста в качестве моноширинного шрифта используется шрифт Times, который не является моноширинным. В дикой природе это невозможно и это очевидный признак подмены шрифтов. Моноширинный шрифт - тот, у которого ширина всех символов (например w и i) одинаковая, например Courier new. Согласно спецификации при указании в стилях элемента font-family: monospace; браузер должен взять один из доступных моноширинных шрифтов (в системе хотя бы один такой ш