Пользователь «Хабра» рассказал, как успешно портировал Chrome версии 114.0.5735.134 (114.0.5735.199) в Windows 7 (SP1), которую более не поддерживает браузер Google. По его словам, это стало ответом «некой корпорации G», которая решила «забить» на миллионы людей, которые до сих пор пользуются Windows 7.

Энтузиаст под ником Blaukovitch (он же elf, автор опубликованных в «Хакере» статей о взломе SecuROM и Denuvo) пишет, решил «спиратить» Chorme из-за действий компании Google, так как выпуск Chrome 109 в начале 2023 года стал последней версией с поддержкой операционных систем Windows 7 и 8.1.

«Windows 7 до сих пор пользуются миллионы пользователей, и она по праву считается одной из лучших ОС. И в один прекрасный момент кто-то из менеджеров некой корпорации G решил в прямом смысле “забить” на них, спустив указание выкинуть часть кода для исключения совместимости. Тем самым оставив множество пользователей без обновлений функционала и безопасности», — объясняет свою мотивацию Blaukovitch.

За основу для своего эксперимента энтузиаст взял актуальную на тот момент версию браузера 114.0.5735.134 x64, без изменений скопировав ее в Windows 7 и приступив к изучению.

Воспользовавшись бесплатной утилитой Dependency Walker, исследователь установил количество недостающих WinAPI и заключил, что большинство нововведений связаны либо с безопасностью, либо с энергопотреблением и с уникальными функциями, актуальными только для Windows 10/11.

 

Как видно на скриншоте выше, также выяснилось, что кроме отдельных WinAPI отсутствуют некоторые системные библиотеки, например, API-MS-WIN-POWER-BASE-L1-1-0.DLL. В итоге задача была разделена на две части: реализация отдельных WinAPI в существующих системных PE dll, а также реализация системных библиотек, которые изначально не предусмотрены в Windows 7.

Blaukovitch отмечает, что вспомнил о необходимости правки version number в PE Header.Optional Header (иначе системный загрузчик Windows не запускает PE-файл) уже после успешного запуска Chrome 114 на Windows 7. Таким образом, менять версию не понадобилось.

«Чисто логически, линкер в Google должен был изначально ввести значения 0xA и 0x0, соответственно. Вместо этого открываем замечательную утилиту PeTools и видим… Что там вообще находится Windows Server 2003. Сделав соответствующие выводы, просто закрыл PeTools», — пишет исследователь.

WebGPU для Windows 7 энтузиаст реализовал путем добавления параметров в строку запуска (флаг unsafe WebGPU и выбрать DirectX 11 в качестве рендера):

--enable-unsafe-webgpu --use-webgpu-adapter=d3d11

В самом браузере после запуска нужно проверить флаги:

chrome://flags/#enable-webgpu-developer-features

chrome://flags/#ignore-gpu-blocklist

Отмечается, что этот вариант «работает нестабильно или до первого креша отдельного процесса gpu рендера».

Blaukovitch пишет, что если через несколько месяцев после прекращения поддержки Windows 7 в Chrome появляются «пираты», то они «играют роль добрых самаритян, которые больше заботятся о пользователях, чем сама мистическая корпорация G».

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    4 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии