README.md

    Прокси библиотека


    Зачем это всё

    Браузер на основе хромиума, если не предусмотрено иное, в профиле пользователя содержит набор конфигурационных файлов “Preferences” и “Secure Preferences” для хранения пользовательских настройк, закладок, истории, паролей и т.д. “Preferences” и “Secure Preferences” зашифрованы с помощью механизма хэширования, привязывающего их к конкретному пользователю конкретного компьютера с конкретной операционной системой. При переносе профиля на другой компьютер браузер обнаруживает несоответствие старых хешей новым и затирает “Preferences” и “Secure Preferences” . Соответственно, установленные расширения и часть настроек тоже теряется. Так же, что менее критично, теряются куки и сохранённые данные логинов и паролей. Эта прокси библиотека обходит функцию шифрования, т.е. настройки, расширения, пароли и логины браузер больше не теряет.
    Кроме того, папки с профилем и кешем теперь будут находиться рядом с исполняемым файлом браузера в User Data и Cache соответственно, т.е. больше нет необходимости использовать параметры --user-data-dir=<путь> и --disk-cache-dir=<путь> для указания пути к ним. При необходимости задать другие пути возможно параметррами --user-data-dir=<путь> и --disk-cache-dir=<путь> через параметры запуска любым из способов (через командную строку или созданием ярлыка). Начиная с версии прокси библиотеки 1.0.4.4 реализована возможность задавать пути к папкам профиля и кеша и добавлять дополнительные параметры зпуска через конфигурационный ini файл.

    Как это работает

    Практически все браузеры на основе хромиума, если не предусмотрено иное, импортируют некоторое количество функций из системного файла (динамической библиотеки) version.dll. В обычной ситуации при запуске браузера поиск этого файла выполняется в следующем порядке:

    1. папка с исполняемым файлом;
    2. папка C:\Windows\System32;
    3. папка C:\Windows\System;
    4. папка C:\Windows;
    5. папка, установленная как текущая для приложения;
    6. папки из переменной окружения PATH.

    Если положить version. dll в ту же папку, откуда запускается браузер, то вместо системного будет загружен именно расположенный рядом. Чтобы загрузка библиотеки прошла корректно, необходимо выполнить ряд условий: битность исполняемого файла и библиотеки должна совпадать; библиотека должна экспортировать все те функции, которые импортируются браузером; импортируемые из библиотеки браузером функции должны работать так же, как и у системной. Вот именно такие dll называют прокси-библиотекой. Кроме экспортируемых функуций, прокси-библиотека выполняет дополнительные полезные действия. В данном случае это изменение и добавление параметров запуска браузера, отключение шифрования, удаление лишних файлов и папок и т. д.

    Про 118+

    В версиях ядра Chromium 118+ включена функция блокировки при использовании динамических библиотек не подписанных сертификатом микрософт. Временным решением для обхода этой блокировки было использование дополнительных параметров --test-type и --no-sandbox при запуске браузера. Эта прокси библиотека обходит функцию блокировки сбросом бита защиты в атрибутах процесса при запуске браузера, т.е. больше нет необходимости использовать параметры --test-type и --no-sandbox.

    Про 126+

    В версиях ядра Chromium 126+ включена функция блокировки системных вызовов. Из-за этого при использовании прокси библиотеки браузер вместо страницы отображает окно с сообщением STATUS_DLL_INIT_FAILED. В версии прокси библиотеки 1.0.4.9 и новее это ограничение отключчено сбросом бита защиты в атрибутах процесса при запуске браузера.

    Про портативность

    Все браузеры на основе хромиума, даже те, которые созданы как портативные, создают записи в разделах системного реестра Software\'название браузера'. Т.е. портативными в полной мере их назвать нельзя. Эта версия прокси библиотеки блокирует браузерам доступ к реестру в режиме записи не нарушая их работоспособность. Есть небольшое ограничение - функция Установить браузер по умолчанию больше не будет работать, но это и не требуется от портативного браузера. Начиная с версии прокси библиотеки 1.0.4.5 реализована возможность включать или отключать доступ к реестру в режиме записи через ini файл. Если включить доступ к реестру в режиме записи, тогда функция Установить браузер по умолчанию будет работать.

    Инструкция по использованию

    1. Переименовать version x32.dll или version x64.dll в version.dll.
    2. Положить файл version.dll радом с исполняемым файлом браузера (brave.exe / chrome.exe / opera.exe / vivaldi.exe / yandex.exe и т.п.).
    3. При необходимости положить файл конфигурации version.ini рядом с version.dll.
    4. Запустить браузер, настроить, добавить расширения.
    5. Можно носить его с собой, расширения не теряются, настройки не сбрасываются.

    Примечание. Разрядность version.dll должна соответствовать разрядности браузера, т.е. для запуска 32-х битной версии браузера в 64-х битной ОС нужно использовать 32-х битную прокси библиотеку.


    Инструкция по компиляции из исходников

    1. Для компиляции 32-х битной версии все файлы из Source X32 скопировать в одну папку с произвольным именем.
    2. Открыть файл проекта version.dpr в любой из Delphi 7/2006/2007.
    3. Запустить процесс компиляции, выполнив команду меню Project | Compile.
    4. Для компиляции 64-х битной версии все файлы из Source X64 скопировать в одну папку с произвольным именем.
    5. Открыть файл проекта version.dpr в Delphi XE2 или новее.
    6. В менеджере проекта выбрать платформу 64-bit Windows.
    7. Запустить процесс компиляции, выполнив команду меню Project | Compile.

    Здесь можно взять компактную сборку Delphi 2007 Update 4 для которой не требуется наличие .net framework. Работает в Windows XP, 7, 8, 10, 11.
    Здесь можно взять компактную сборку Delphi XE2 Update 4.1. Работает в Windows XP, 7, 8, 10, 11.

    Описание

    Прокси-библиотека для портатирования браузеров Vivaldi, Opera, Chrome, Brave, Yandex и др.

    Конвейеры
    0 успешных
    0 с ошибкой