Перейти к содержимому

Глоссарий

Форк Chromium

Форк меняет ответ там, где ответ рождается. В этом разница между значением, которое сайт просто читает, и значением, на подмене которого сайт может поймать.

Форк Chromium это браузер, собранный из правленых исходников Chromium, поэтому его поведение меняется до запуска страницы.

Где форк меняет ответ

Защита на уровне страницы подменяет того, кто отвечает, уже после загрузки. Форк подменяет код, который ответ производит.

Разница видна там, куда странице дотянуться дёшево. Поток и кадр заводят свой мир, и подмена, сделанная в одном мире, в другом отсутствует.

  • Ни один прототип не тронут

    В странице нет переписанных функций, поэтому вопрос функции о себе самой ничего не доказывает.

  • Потоки и кадры сходятся

    Поток или кадр, открытый позже, называет то же устройство, что и документ, который его открыл.

  • Зерно приходит один раз

    Оно передаётся при запуске и достаётся каждому отрисовщику, в том числе открытому много позже.

Ваша сборка прямо сейчас

Это читается в том браузере, в котором вы читаете страницу. Внутри профиля те же имена отвечают из его зерна, в C++, до первой строки страницы.

Ваша машина прямо сейчас

Строка браузера
измеряем на вашей машине
Платформа
измеряем на вашей машине
Отрисовщик WebGL
измеряем на вашей машине

Прочитано в вашем браузере и показано здесь. Никуда не отправляется.

Что закрывает наш набор заплат

Набор ложится на исходники Chromium при сборке, и каждая его часть названа одним списком в твёрдом порядке. Чего в этом списке нет, того нет и в браузере.

ПоверхностьЧто получает страница
Холст и звукнеизменную поправку к отданным точкам и к звуку
WebGLстроки видеокарты профиля и чтение точек, сходящееся с холстом
WebGPUшум на буферах со снятой картинкой и никогда на итогах вычислений
Шрифты, экран и часовой пояссемейства и экран профиля, и пояс страны выхода
navigator и клиентские подсказкиплатформу, строку браузера, ядра, память, касания и заголовки подсказок
Приборы, голоса, связь, памятьчисло приборов, список голосов, числа связи и потолок кучи

Форк дорого держать

Дорог не сам набор заплат, а пересборка. Каждая веха Chromium двигает строки, к которым заплата привязана, и каждая платформа компилируется заново.

Поэтому набор держат коротким и строгим. У файла один хозяин, а заплата, которая не ложится начисто, останавливает сборку, а не пропускается.

  • «Применено» обязано значить применено

    Заглушка в списке это отказ: пропущенная заплата даёт обычный браузер под нашим именем.

  • Каждая заплата снимается обратно

    Набор, который нельзя снять, нельзя и перенести на новые исходники, поэтому снятие входит в проверку.

  • У файла один хозяин

    Две заплаты на один файл оставляют вторую без возможности лечь после лечения первой.

Как сборка принимается

Одна команда ведёт приёмку, пишет один отчёт и возвращает один код возврата. Стенд, который не удалось запустить, считается упавшим, а не пропущенным.

Готовый двоичный файл меряют против него же без зерна, поэтому чистым образцом служит сам движок.

  1. 1

    Значения из зерна читаются обратно

    Движок запускают со страной выхода и спрашивают живую страницу, что она видит.

  2. 2

    Постоянства держатся на разных зёрнах

    Зёрен берут несколько: изъян умеет держаться одного, и удачный профиль пропустил бы плохую сборку.

  3. 3

    Каждое умение доказано

    Признак вычитывается из правленого файла в дереве, поэтому опись снимается, а не объявляется.

  4. 4

    Сборка с упавшим стендом не выходит

    «Принято с оговоркой» значит, что не упало ничего, а что-то не удалось проверить целиком.

Где движок останавливается

Два слоя на одном значении подрались бы. Шум движка поверх шума страницы заставляет один рисунок читаться двояко, и это само по себе примета.

Поэтому сборка записывает, что она закрывает, а программа снимает ту работу страницы, которую движок взял на себя. Оставшееся закрывается из страницы, до любого сценария сайта.

Чего это не делает

  • Это не делает вас невидимым. Репутация адреса, поведение и история аккаунта это отдельные задачи, и закрывают аккаунты чаще из-за них.
  • Это закрывает не всякое чтение точек. Восьмибитная дорога, которой ходят проверялки, закрыта, а остальные виды точек честно названы открытыми в записях набора.
  • Это не прячет настоящую опись шрифтов машины от поиска по единственному имени. Обмер ограничен списком профиля, а поиск требует ещё одной заплаты.
  • Это не снимает признак автоматизации заплатой. Его снимает открытый ключ запуска, за которым следит стенд, читающий значение с живой страницы, и ключ виден в строке запуска процесса.

Проверить

Каждая строка выше это файл, который можно открыть, и стенд, который держит её честной.

Список применяемого и сами заплаты, и ни одной заглушки среди них
engine/patches/series · apps/desktop/test/engine-patches-real.js
Две дороги к одной картинке WebGL читаются и сверяются
apps/desktop/test/две-дороги-webgl-исполняются.js
Каждое объявленное умение доказано признаком в дереве
engine/scripts/опись-умений.js · apps/desktop/test/опись-умений-снимается.js
Приговор приёмки сборки нельзя смягчить
engine/приёмка-отчёт.json · apps/desktop/test/приговор-приёмки.js

Вопросы

Почему не сделать это расширением?
Потому что подмена, сделанная в странице, сама становится значением. Расширению не достать код, который производит ответ, ему доступен только тот, кто ответ отдаёт.
Можно ли запустить движок сам по себе?
Двоичный файл запустится. Без зерна он ведёт себя как обычный Chromium с вашим устройством: зерно доходит до него только через запуск профиля.
Что происходит, когда Chromium уходит вперёд?
Набор ложится на новые исходники, и всё компилируется заново под каждую платформу. Заплата, которая не ложится, останавливает сборку, а не отбрасывается.
Называет ли форк свою настоящую версию?
Да. Браузер, называющий веху, возможностей которой у него нет, это расхождение, находимое сайтом в одну строку.

Запустите эту сборку на своей машине

Поставьте ARMANOS, откройте профиль и прочтите стартовую страницу до того, как пойдёте куда-либо.