• v1.0.10

    gegorov released this 2026-05-16 22:46:13 +03:00 | -9 commits to master since this release

    Эксперимент — попытка обойти Google embedded-browser детекцию через client-side spoof.

    В каждый view на dom-ready инжектится JS, который добавляет к window.chrome всё что обычно есть у настоящего Chrome:

    • chrome.app (isInstalled, RunningState, и т.п.)
    • chrome.runtime (PlatformOs, sendMessage, connect)
    • chrome.csi() — функция timing'а
    • chrome.loadTimes() — deprecated, но Google всё ещё проверяет
    • Обёртка над navigator.permissions.query для Notification

    Без архитектурных изменений — никаких contextIsolation:false, никаких preload-файлов. Если не сработает — без следов откатывается.

    Шансы реалистичные: средненько-низкие. У этого подхода два известных слабых места:

    1. Скрипт инжектится на dom-ready, после <head> парсинга. Если Google детектит embedded-browser в inline-скрипте в <head> — он успевает увидеть un-spoofed window.chrome до нашего фикса. Поможет только если Google перепроверяет на submit формы.

    2. TLS fingerprint (JA3) подделать невозможно из JavaScript — это слепок самого TLS-handshake'а на уровне сети. Если Google режет нас по нему — никакой preload/spoof не спасёт.

    Пробуй залогиниться. Если получится — отлично, оставляем. Если нет — переходим к плану B: принять что вход в Google работает только в системном браузере.

    Downloads