
Комментарии 194
Спасибо. На Вивальди патч тоже работает. Жаль, что это только полумера и не все блокировки обходит. Наверное, всё таки рандом нужен
А как вы его на Вивальди применили?
Рандом будет следующим шагом, да
Сначала они блокируют по факту фрагментации, потом начнут анализировать ее статистические характеристики, и тогда простого деления на фиксированные чанки станет недостаточно
VIVALDI
Будет работать на всех хромоподобных браузерах + CEF.
БОЛЕЕ наглядный вид subroutine tls_add_message, которую необходимо пропатчить (x64) в отладчике x64dbg:

Для x86 асм различаются (так-же нашёл).
Сайт https://login.microsoft.com не работает после патча
Попробовал оригинальный NoDPI на питоне и там тоже не работает. Похоже, что Майкрософт не умеет собирать обратно разобранные по кусочкам tls-пакеты, а если сервер на Nginx/Linux, то это не помеха.
Слава Линусу Торвальдсу и примкнувшему к нему Сысоеву Игорю Владимировичу!
Позор Биллу Гейтсу ))
у меня работает этот сайт. Но у меня не NoDPI, а его упрощенная версия. В том же гитхабе sample_version.py
Так у вас, наверное, сайт майкрософта в blacklist.txt не входит?
Ну вы уж совсем из меня идиота не делайте :) Я даже специально весь траффик завернул через эту прогу, всё работает
Попробовал на sample_version.py - отличия от оригинального в том, что в консоль много мусора сыпется, но майкрософт здесь тоже не работает, а если убираешь из blacklist.txt но оставляешь прокси - начинает работать. Ютуб при этом работает всегда.
Какой бы еще сайт попробовать, который на Internet Information Services (IIS) сделан? У них там еще расширение .asp вместо .html
UPD: нашёл сайт, похоже он на asp и не работает с модифицированными tls-пакетами
https://www.online-convert.com/ru/file-format/aspx
Часто попадаются сайты, которые с включенным nodpi не работают.
Ставил ByeByeDPI на телефон, чтобы смотреть YouTube. Но при запущенной проге не открывается... Хабр!
По моим предположениям так себя могут вести сайты с установленной защитой ddos-guard.ru
Почему то не нравится трафик ддос файрволлу и коннект сбрасывается
Сорри, ссылка не вставилась - https://github.com/GVCoder09/NoDPI4Android
Вы не пробовали для перебора стратегий дополнительно указывать домен хабра? Там же в настройках можно включить отображение подробного лога, чтобы видеть при каких стратегиях доступ к нему не ломается.
В ByeByeDPI есть прекрасная возможность белого списка программ, которые будут работать через него. В итоге у меня через него один браузер завёрнут, а второй его не использует. "Закрытые" сайты смотрю через один браузер, всё остальное - через другой.
Все там прекрасно работает, зайдите в настройки , пройдите тест на подбор удачной стратегии с 92-100% вероятностью срабатывания и примените ее , после этого все заработает как надо . Сам им пользуюсь, на смарте , планшете , смартТВ , причем тестил на разных мобильных и проводных операторах и везде все получалось.
Вы думаете, я использую стратегию с меньшей степенью успешности?
Другой вопрос, что, будучи одинаково успешными для обхода ограничений, возможно, они неравнозначны для работы разных сайтов.
В принципе, пользователь @Soarerru выше предложил хороший вариант с белым списком. Если не получится, буду уже подбирать стратегию.
На мобилке вроде браузер Opera нормально с ютубом дружит без плясок с бубном...
Обновил статью. Качайте версию v1.1 - все сайты должны начать грузиться.
Похоже, что Майкрософт не умеет собирать обратно разобранные по кусочкам tls-пакеты,
Позор Биллу Гейтсу тут ни при чем. Возможно как раз его сервер написан правильнее и не принимает мусор, а то что мы вынуждены генерировать этот мусор для обхода блокировок это уже совсем другая история
А что, NoDPI еще работает? У меня на йоте ютуб полностью заблочен (пол года назад еще работало).
У сотовых операторов куда глубже контроль трафика, чем у провайдеров на местных локалках. Опсосы ещё до войны учились туннели глушить.
При этом на Рост елекоме тоже не работает…
Всякие бабай-дипиаи на еле-еле-коме (дома и на работ) у меня ни разу не взлетели, только три весёлых буквы позволяют наслаждаться увлекательным контентом, минуя деградировавшие сервера гугл.
ну.. а если попробовать подойти комплексно?
у меня уже больше года (4 разных оператора, два из которых мобильных) без сбоев работает следующая комбинация:
tpws вариант решения от болвана
тор вместо "трех веселых букв"
три буквы тут конечно лучше, но оказалось что обходить блокировки для "всего интернета" мне и не нужно. Этот пункт вообще используется чисто для инстаграма, да изредка, если надо обойти геоблокировку :D
privoxy как основной прокси для локальной домашней сети, который и занимается маршрутизацией (в конфигах): что отдать через tpws а что через тор(если заблокировано по IP), добавить новый домен - минутное (и, как оказалось, довольно редкое) дело
Pi-hole как DNS сервер c DOH
Все это крутится дома на виртуалке в контейнерах, и (в поездках) на точно такой же виртуалке на ноутбуке. Pihole дополнительно режет рекламу, привокси был тоже для той же цели, но до сих пор не настроен )). Один раз пришлось лезть править конфиги только потому что мосты тора устарели
Пользуюсь подбором стратегий. Заметил одну фичу/баг на проводном провайдере, вроде, не всегда, воспроизводится и на ОПСОСе, при включении режима "самолёт" на какое-то время.
В общем схема простая - сделать на роутере реконнект к интернету, ну или роутер перезагрузить, тогда стратегии примерно на день - два начинают гораздо лучше работать (подбирать стратегии тоже нужно после реконнекта). Таттелеком - провод, МТС, Билайн - мобила. Кстати на Билайне стратегии лучше работают...
ByebyeDPI попробуйте. Там есть опция перебора методов сокрытия трафика.
Если у вас, как и у меня, NoDPI не заработал, можете попробовать мой небольшой бесплатный проект ВПН МИР (на xray-core). Делал его изначально для себя, но решил поделиться — вдруг кому-то тоже пригодится. Пока что только для Apple платформ. В процессе Windows и Android.
Это буквально техническое кунг-фу, стоящее в одном ряду с портированием дума на всё подряд и самописными демками на ZX Spectrum
Самый нестабильный способ. И так даже со всякими byedpi надо постоянно стратегии рабочие искать. Кроме нормального прокси/впн нет способов сейчас
Увы, многие крупные сайты нервно относятся к клиентам, заходящим с адресов хостинг-провайдеров, тогда как другие либо заблочены, либо столь же нервно относятся к клиентом, заходящим с ру-зоны. Так что у меня лучшие результаты показывает комбо: часть сайтов через скрэмблинг а-ля ByeDPI, часть сайтов через XRay.
дискриминация
Ван просто включается и выключается одной кнопкой, зато работает стабильно. Кому ютубчик посмотреть, а мне помимо него сервера Автодеск для работы нужны. Всякие дпи устанавливаются вообще непрозрачно и работают через раз даже с ютубом, даже на старте блокировок. С их непрозрачностью даже не уверен, что корректно и полностью удалил.
а тор?
Когда и эта мера перестанет работать, придётся изобретать гораздо более изощрённые (но, возможно, технически гораздо боле простые, а потому способные стать массовыми) способы - ну, типа ищем в гугле или где-то ещё нужное видео и просим скрипт прислать его нам по электронной почте, открытым текстом, нарезанный на кусочки правильной длины. Кто-то хотел знать, что мы там смотрим? Пусть смотрит...
Не буду подсказывать сайты, на которых я уже сейчас вынужден искать нужные мне видео, а также каналы, по которым эти видео пока ещё можно скачать не привлекая внимания санитаров, дабы никого не наводить на вредные мысли. Способы есть, и без всяких трёхбуквенных аббревиатур, за которые страницы очень быстро попадают под "451 градус по Фаренгейту".
Если не сложно, задайте направление в личку. Заранее спасибо
Как вариант, в телеге открываете чат @SaveFromVKBot, и пишете ему @vid Ваш текст.
@vid позволяет искать по Youtube, а бот скачает видео, и пришлёт вам его в виде файла.
P.S. Какое-то время назад этим способом экономил трафик на мобильном операторе, т.к. соцсети по тарифу безлимитны.
Спасибо
Только боты в тележке нужно постоянно искать - народ не сильно любит за них платить, поэтому лучшие по сервису за полгода затухают и закачивают хорошо если через раз, а худшие сервисы... ну, там идёт жёсткое навязывание телеграм-групп, которые по-другому и не раскрутить, типа хочешь пользоваться сервисом - подпишись на ... (и далее список), и, главное, проверяет, зараза, подписан ты или нет... Как говорится, пользуясь товаром бесплатно, помни, что товаром становишься ты сам. В итоге tg-аккаунт быстро зарастает таким д.....м, что остаётся только похоронить его, и тут ты вспоминаешь, что на эту симку много чего завязано...
в ТГ @DNVideoBot скачать с ВК на Андроид.
обойти любые блокировки @You.V...N
угу. А следующий шаг floppyNET DPD/СДЭК?
Даже не знаю, каким будет следующий шаг. В середине нулевых можно было заказывать жёсткие диски с доставкой транспортной компанией - сам носитель стоил 5 тысяч рублей, за запись информации и доставку накидывали ещё тысячу... В связи с развитием событий вокруг интернета в России былью (и болью, да) может стать даже анекдот конца 90-х: Газель с компакт-дисками - самый быстрый канал доставки больших объёмов информации.
Напомнило мне историю из 90-х
Админы сети университета терли Doom 2 и мешали нам студентам играть 😊
Искали тупо по названиям и размерам 🥱
Я разобрал формат файла с контентом игры и написал DSL манипулирования содержимым.
В итоге размеры можно было редактировать как угодно и саму игру модифицировать ради фана.
В общем победили всех, но потом сами повзрослели и стали корешами админов, а там Quake 1 с пивком подоспел 🥳🥳🥳
Хоть бы автор объяснил причину почему у него Ютуб не работает. Смутно догадываюсь, что он из РФ?
Ютуб не удаляет материалы нарушающие Закон России.
Логично, что блокируют доступ к источнику незаконной грязи. Да страдают невиновные, но это вина целиком Ютуб - упорное нарушение Закона России.
Информационная война - это война, вполне реальная как пуля в голову.
Я не знаю к чему вы этот комментарий написали, но в моё сообщении был другой посыл. Я вижу название "Патчим хром для работы с youtube". У меня сразу вопрос - а зачем? Какие-то проблемы разве есть? Сам я из Беларуси. Аудитория Хабра явно не ограничивается Россией. Куча людей из других стран тоже читают Хабр. Автор не написал, что он из России и у него есть проблема.
А дальше автора понесло про какую-то утилиту NoDPI про которую должны были все слышать. Но я вот что-то не слышал и что она делает не знаю. Потом автор пишет про патч библиотеки хрома, но для чего и зачем - ни слова. Просто великолепная статья.
Да и по вашему сообщению. Вот совершенно не логично, что блокируют доступ к источнику грязи. Блокируют то, что неугодно государству. И грязью это может не являться.
Смутно догадываюсь, что
Хабр, как русскоязычный ресурс имеет в большинстве русскоязычное комьюнити и, скорее всего, основную массу пользователей связанных с РФ. А тут никому не нужно объяснять, с чем связаны все статьи, касающиеся YT. Это не уникальная или специфическая проблема.
У Вас регистрация, как вижу, была до 22 года, а значит Вы не могли не застать в прошлом году вечно висящие на главной статьи о починках YT
Что такое YT ?
Селюк. Погугли. 😂
Я реально не вдуплил, что такое YT и загуглил. Оказалось, что это youtube. Зачем сокращаться слово из четырёх букв до слова из двух букв + переключать раскладку клавиатуры туда-сюда для каждого "YT" для этого ... мне непонятно. Это за гранью уже какой-то здравой логики.
Зачем сокращать слово из четырёх букв до слова из двух букв
За гранью здравой логики то, что для вас «youtube» — это слово из четырёх букв.
Если человек пишет на русском языке, то что ему мешает написать слово ютуб? Я же не зря по переключение раскладки написал.
Про «ютуб» я не подумал, действительно, тогда получается всего четыре буквы.
На русском языке «ютуб» написать можно, но выглядит как-то непривычно. А переключать раскладку клавиатуры как раз-таки привычно из-за аббревиатур вроде HTML, PHP и SQL. На русском это будет выглядеть как «ЭйчТиЭмЭл», «ПиЭйчПи» и «ЭсКьюЭл». То есть происходит обратная ситуация, аббревиатуры при «русификации» значительно удлинняются.
«YT» для «YouTube» — это довольно распространённое сокращение, смысл которого обычно понятен из контекста. Например, вас же не смущает сокращение «ВК» (или «VK») вместо «ВКонтакте»? Ну и здесь та же логика — YT для YouTube.
Может для вас это и очевидно, но сокращение YT я вижу первый раз в жизни. Просто сижу 99% на русскоязычных форумах и там никто YT не пишет.
Например, вас же не смущает сокращение «ВК» (или «VK») вместо «ВКонтакте»?
Меня, как человека который застал дуровский ВКонтакте на заре его становления, смущало бы если бы тогда "контакт" называли бы "VK" или "ВК". Потому что его называли контакт.
"VK" или "ВК" он стал после того как его переименовали в vk.com
Я использую устоявшуюся аббревиатуру, потому что единственный альтернативный и правильный вариант - YouTube, писать дольше. А на все остальные варианты написания можно так же легко акцентировать внимание, игнорируя основную мысль комментария. Как правильно и понятно: ютуп, ютуб, ютюб или ютьюб? Все эти варианты я слышал в разных кругах, и конечно, использующие их люди будут считать, что остальные варианты находятся «за гранью уже какой-то здравой логики» . Хотя я, конечно, не призываю остальных писать так же как я.
Ваша ненависть к Закону России
Мне непонятна но имеет объяснения
Закон надо исполнять даже рядовому Ютубу 🫡
Росси Государство, а не банда что живёт по понятиям. ❤️
𝓟.𝓢.
Фас мои собачки ! Осветите темноту кровавого режим демократии.
Так это не только для ютуба. Вот открой ка, например, торрент-трекер nnmclub.to, или банально порнхаб. Это и многое другое в Беларуси заблокировано. У меня только часто посещаемых ресурсов с десяток наберётся, приходится через прокси/тор/нодпи. А этот патч практически всё разблокирует :)
И всё в рамках действующего Закона России 🫡
Кто несогласен может пойти в политику и написать свои Законы
Лучше жить по Законам чем по понятиям 😋
У меня Касперский обеспечивает всё открыть и без патчей 😊
С удовольствием пойду, мозгов хватает. Только для этого понадобится хотя бы 20 тысяч бравых ребят.
Вот это и напрягает. Какого хера Беларусь живёт по закона России?
А нельзя просто выложить патченную dll-ку, чтобы все не делали одно и то же, а просто у себя подменили?
Нельзя, автообновления Хрома (и так) снесут всё это в ближайшую неделю. Тем более что актуальная версия сейчас уже 141, а не та что в статье. зы. Успел написать, обычно такие статьи к утру приводят к стандарту 451.
Ну и сделайте страницу, на которую будете выкладывать под каждую версию браузера нужную dll
А лучше чтобы страница сама определяла, какой у пользователя браузер.
а аналога LD_PRELOAD в вин нет?
нельзя
Не совсем правда: EDGE.Patcher для Microsoft EDGE/ Chrome всё таки делали по сигнатурам и это без проблем работает на широком диапазоне версий (кряк для Windows 7). Здесь аналогичная ситуация.
Я себе полностью отключил обновления хрома, чтобы остаться на Manifest V2. Ради блокировщиков.
Но ведь можно выложить и пропатченную dll, И установочный файл для правильной версии браузера... или под виндой нельзя запретить ему обновляться? Хм... давно не работаю с поделиями мелко-мягких...
Ну а как ты проверишь готовую dll на зловредность? Антивирус помогает лишь для известных уязвимостей. А здесь по шагам показано какие делаются изменения и зачем. Всегда можно проверить батник и убедиться, что там меняется именно то, что заявлено в статье.
Только у меня антивирус говорит, что в архиве червь?
Проверил на 141 и 134 хроме, увы YT это не разблокировало.
А как можно сделать чтобы Youtube приложение работало?
а у меня на 141.0.7390.66 написало
Patching data...
No elements were patched - aborting
Patch done!
Press ENTER to close window
Так начинается моя статья:
Салют, Хабр! Я думаю, каждый из вас знаком или, по крайней мере, слышал о такой прекрасной утилите как GoodbyeDPI (большое спасибо @ValdikSS!). Сегодня я хочу представить вам (почти) свою разработку - аналог GoodbyeDPI.
А так начинается эта:
Салют, Хабр! Я думаю, каждый из вас знаком или, по крайней мере, слышал о такой прекрасной утилите как NoDPI написанной на питоне (большое спасибо @Lord_of_Rings!). Сегодня я хочу представить вам (почти) свою разработку, не требующую ни питона ни прокси.
🤣 Но все равно очень приятно, что хоть кто-то про нее слышал) Это очень морально поддерживает) Очень жаль слышать в комментах, что у некоторых nodpi не работает, значит счет пока в пользу ркн(
P. S.
Буквально вчера выпустил бету 2.0; релиза пока еще нет, но можно запустить из исходников. Кроме всяких улучшений добавил фрагментацию SNI. Т. е. ищется sni в clienthello и режется на 4 части: все что до него, его самого пополам, и все что после него
Они строят Великую Стену DPI, а мы учимся разбирать ее по кирпичику, патча байты в chrome.dll - какой же абсурд)
для chrome 126.0.6478.127 нужно по смещению 00D45759 заменить 48 83 B9 98 00 00 00 00 0F 85 CA 00 00 00 на 66 C7 43 12 E8 03 EB 1B 0F 85 CA 00 00 00. в этой версии ssl->max_send_fragment находится в структуре по смещению 0x12, а не 0x10. кроме того компилятор родил немного другой код.
Этой версии нет здесь https://google-chrome.ru.uptodown.com/windows/versions
Есть 125.0.6422.77 там тоже max_send_fragment находится в структуре по смещению 0x12
А чем замечательна эта версия, в чём преимущество перед последней?
Или чисто для коллекции?
А как и чем искать в других версиях место вставки? в HxD пробовал поискать по разному, не находит вообще 48 83 B9 98 00 00 00 00 0F 85 CA 00 00 00
может такого не быть в браузере? cent, 132 движок. Или я не то ищу?
можно искать начальные несколько байтов, например 10. будет найдено несколько вхождений. чтобы выбрать правильное, нужно знать ассемблер. судя по вашему вопросу, вы его не знаете.
меня смущает замена if (!SSL_is_quic(ssl) && ssl->s3->aead_write_ctx->is_null_cipher()) на if (1). ничего от этого не поломается?
Для MacOs X не сделаете?..
Красивый хак, но очень хрупкий. Хром обновляется раз в несколько недель, и каждый раз chrome.dll будет перезаписан, а смещения и сигнатуры могут поменяться
Это скорее элегантное доказательство концепции, чем долгосрочное решение для обычного пользователя. Постоянно перепатчивать браузер вручную - то еще удовольствие
Аналогичные нюансы решили ранее: EDGE.Patcher
Дополнительно:
Windows 7 CRACK
подчищает испорченную цифровую подпись файла, чтобы антивир меньше ругался.
Кроме перезаписи при обновлении есть риск изменения релокаций и сигнатур. Патч требует точной версии и тестов на целостность PE/импортов перед применением
А что мешает использовать Zаprеt?
что то не дает скачать с гугла - говорит что это вирус и скачать может только владелец. может переделаешь на архив с паролем?
Выложил все версии в один архив youtube_patch_passw123.rar
Пароль 123
Дурной пример заразителен. В прямом и обратном смыслах.
С Вашего позволения внесу аналогичные коррективы в свой Google Chrome Windows 7 crack:
https://github.com/Blaukovitch/GOOGLE_CHROME_Windows_7Заодно и на 7ке будет работать!
торт. прям понастольгировал. Почти как игрушку от двд отвязать в 90х)
Неплохо, но патчить бинарь ради ютуба это уже про риск и геморрой при обновлениях
При установленном патче сайт https://gosuslugi.ru не работает!

При установленном патче https://stackoverflow.com/questions не работает!
Вот это поворот, неужели они мелкомягким продались и сайт на ASP.NET ?
Сбербанк тоже не работает https://www.sberbank.com/sms/newsbol?from=habrahabr
Это уже не смешно. Уважаемый Герман Оскарович, где SSL, где TLS ?
Вот это поворот, неужели они мелкомягким продались и сайт на ASP.NET ?
Вроде на ASP.NET Core уже переехали. Но не факт что сам конечный бэк не умеет, может прокси или защита.
Объясните мне ламеру. Почему ограничение в 8 байт?
Да просто хотелось как можно меньше, в идеале чтобы был 1 байт ))
Это кстати, реально - но для этого надо найти место, где max_fragment_size устанавливается в 0x4000 и вместо 0x4000h вписать 0x400 это и будет всего один байт (40->04), осталось только найти это место, но так как там C++ в полный рост, то где лежит конструктор класса - я пока найти не смог.
А так ограничений нет, можно хоть весь бинарник chrome заменить на firefox ))
А с линукс версией такое можно сделать?
Сделал! Обновил статью с новым скриптом для Linux.
А также выложил скрипт на гугл-диск: youtube_patch_v1.0
Требуется установить пакет bbe (аналог sed)
sudo apt install bbe
chmod +x youtube_patch_v1.0
sudo ./youtube_patch_v1.0
Но ведь вывод ассемблера может быть совершенно разный при включённой оптимизации, её опциях, версии компилятора итд, то есть сборка должна подразумевать точное соответствие всех ключей, быть может даже и сторонних либ, с опцией -O3 можно получить что угодно
ассемблер
Нет, Chrome Windows 7 crack - 3 года патчится без принципиальных изменений.
Разница в оптимизации -O3 / -O2 была только между 109 (официально последняя Windows 7) и следующими версиями (114). Крякнутые неофициальные версии работали заметно быстрее на Windows 7.
Самый максимум: из-за невозможности контролировать разрастание кодовой базы этими "гениями" в последних версиях Chrome часть subroutine вместо __inline делается отдельной функцией.
Если вас так волнует разрастание кодовой базы, то сидите себе на chrome 109. Нафига вам сдались новые поделки этих "гениев"? Если какие-то сайты почему-то артачатся и отказываются открваться в старой версии, то поставьте какое-нибудь расширение для замены user agent.
А новые стандарты js/css, которые сайтоделы добавляют, как в старом браузере появятся? Если бы всё так просто было, сидели бы на старых движках и не обновлялись бы вообще.
@wataru, не нас, а Вас. Это Вас должно волновать разрастание "кодовой базы".
Меня лишь волнует, почему это "говно" штатно НЕ запускается на Windows 7 (хотя после патчинга/кряка вполне себе нормально работает).
С точки зрения математики/алгоритмов браузер выполнен великолепно.
С профессиональной точки зрения платформы/архитектуры Windows - нубское поделие, о чём рассуждаю на протяжении нескольких статей.
И тот факт, что размер файла только увеличивается после 109 версии, говорит лишь об одном - НИКАКОГО смысла удалять поддержку Windows 7 НЕ было и НЕТ до сих пор. Ну нет с точки зрения кода, там ничего, что препятствовало бы реально запуску. Особенно актуально на фоне таких приятных новостей.
p.s. Само собой не собираюсь сидеть на 109 версии.
Почему куча программ не работают на Windows 7 - объяснение простое, это из-за того, что Microsoft в своем компиляторе Visual Studio перешли на новый SDK, который перестал поддерживать Windows XP (ну и Windows 7/8.1 заодно).
В проекте Chrome.vcxproj это выглядит примерно так, 10.0 и v142 (и выше)
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
<PlatformToolset>v142</PlatformToolsetА если бы в проекте стояло по-старому 8.1 и v141_xp:
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
<PlatformToolset>v141_xp</PlatformToolsetтогда компилированный код исполнялся бы на Windows XP/7/8.1 без проблем. Но тогда нужен Visual Studio 2019, в более старших версиях MS это почикали.
Дело не cтолько в этом, сколько в том, что хром перешел на новые АПИ, которых тупо нет в win 7. Всякие Windows Graphics Capture для захвата экрана, части Media Foundation для работы с камерой и графическим ускорением. Если на камеру и скриншоты кто-то может еще и забить, то графическое ускорение - это основа хрома. Современные браузеры - они как навороченные 3d игры, работают с графическим ускорителем очень плотно. Плюс, ускорение декодирования видео, без него ютуб смотреть было бы очень тяжко даже на современных компьютерах. Там тоже потихоньку переходят на dx12.
Еще что-то там поменялось с выводом/вводом звука. Куча новых фич для песочницы безопасности. Это то, о чем лично я знаю. Еще наверника есть какая-нибуть корпоративная интеграция групповыми политиками.
Вон, товарищ выше уже ругается, что размер растет, а ведь тащить все это легаси для совместимости с неподдерживаемыми операционками - размер был бы еще сильно больше. Но главное, помимо тупо дупликации целых подсистем, это сильно тормозит развитие их новых версий - ибо разные апи накладывают свои требования на остальные части. Вот гугл и позволил себе отказаться от поддержки уже несколько лет заброшенной операционки.
Если кому-то она настолько мила душе, и им не нужны эти новые фичи, они могут продолжать сидеть на chrome 109. Откуда вообще это лицемерство - операционка старая заброшенная им норм, а браузер подавай самый новый.

Median Foundation, camera
Media Foundation существует на Windows 7, camera тоже на крякнутой 141 прекрасно работает.
Windows Graphics Capture
Что мешает альтернативные реализации через тот-же DirectX использовать на семёрке? Из разряда Microsoft через 20 лет научилась открывать RAR архивы нативно.
dx12
Слышал ещё 3 года назад. Одно и тоже....
hardware acceleration
d3d11 (sm5.0) / d3d9 всё так-же ANGLE использует - какая разница принципиально между 10 и 7??? Чуть менее чем ничем отличается.
Форсится через флаги браузера - в 141 работает даже на древней HD 7770.
ЗВУК
После убийства DirectXSound нечего менять.
Легаси для поддержки
Что поменялось в размере chrome.dll после выхода 110 версии? Н-И-Ч-Е-Г-О, DLL'ка не уменьшилась. Одно из двух: никакого legacy там нет ИЛИ это legacy работает всё так-же на Windows 7 /10.
Media Foundation существует на Windows 7
Некоторые части MF доступны только с win 8. Камера работает только частично, без графического ускорения.
Что мешает альтернативные реализации через тот-же DirectX использовать на семёрке?
То, что directX вообще не умеет захватывать отдельные окна, например. Вообще никак. Для этого приходится в 7 использовать допотопное GDI+, которое тормозит нереально.
d3d11 (sm5.0) / d3d9 всё так-же ANGLE использует
Это пока. Со временем это выпилят. А главное, оно работает сильно хуже. Куча новых фич не работает в этом режиме. Половина вещей заменяется софтверными заглушками, потому что d3d9 этого не умеет. И некоторые новые фичи не работают в d3d11.
Что поменялось в размере chrome.dll после выхода 110 версии?
Читайте патч ноуты. А если вы считате, что ничего не поменялось, то и сидите себе на 109.
MF, 8
Если упомянули восьмерку, то ситуацию ещё хуже для Вас - разрыв по фукнционалу между 10 и 8 абсолютно минимальный. Тем не менее даже поддержку восьмёрки зачем то выпилили.
MFPlat:
MFCreateDXGISurfaceBuffer
MFCreateDXGIDeviceManagerЭто же обвёртки над интерфейсами, в теории дописать реально - всё равно на DirectX 11 device замыкаются (как и с рендером для отдельного окна).
gdi+
Ну это же наверное что-то очень древнее должно быть!
Существуют GetFrontBufferData или render в текстуру / GetDisplaySurfaceData.
разве что паралельный рендер с 8ки DirectOut - но людям на семёрке с HD экранами не очень будет заметно по скорости.
d3d11, sm 5.0 - это пока
3 года одно и тоже. Стоит ли удивляться что даже в WebGPU сделали наоборот.
109
Патчу спокойно все последующие версии после 109 - вижу прекрасно, что меняется мало. Проблемы с разрастанием бинарного кода в chrome.dll пытаются нелепо решить в ущерб оптимизации по скорости. О чём собственно и разговор. Уверен, что оно будет расти до бесконечности и ничего вы с этим не поделаете, если конечно не дойдете по разделению самого chrome.dll на составные части: redner / gpu... Повторите банально мои статьи.
SDK можно тоже притянуть за уши.
Аналогично как и WinAPI для Chrome.
Или эмулировать а-ля Wine.
Меня лишь волнует, почему это "говно"
Если это "говно", то зачем вы так усилинно стараетесь остаться на нем, даже если оно на вашей системе не запускается?

Всё запускается прекрасно до сих пор.

С аппаратным ускорением через native d3d11
А вы на отдельные фичи посмотрите. Там в верху страницы все зелененькое?

Абсолютное большинство даже на виртуалке работает.
Vulkan так-же поддерживается Windows 7 для некоторых видео-карт и заработает в теории.
Не знаете к чему придраться)
p.s. Не хуже Вас знаю как потроха сего поделия работают внутри и где можно пропатчить/улучшить.

Даже аппаратное ускорение WebGPU работает на семёрке средствами DirectX 11.
Зачем убирали поддержку 7 - до сих пор сами не можете ответить на этот простой технический вопрос.
Смотрите, есть 2 взаимосиключающие стратегии: тянуть легаси и поддерживать старые операционки бесконечно, или в какой-то момент от них отказываться.
С этим согласны?
Почему же хром следует второй стратегии?
Чтобы можно было перейти на новые АПИ. Переход идет. Часть еще не выпилили, потому что они нужны и для вин10 (тот же WGC в 10 работает очень плохо и по нормальному включен в хроме лишь в 11). До части еще руки не дошли, ибо разработка новых фич важнее выпиливания кода. Часть выпилили. То, что вы на веб странице видите картинку не значит, что все фичи работают ускорено, как должны. Хвала программистам, что написали так, что оно как-то работает даже в виде зомби, не способное загрузить кучу библиотек (которые вы не нашли, потому что они загружаются через DelayLoad).
Но, даже если бы на текущий момент не выпили ни единой заглушки, нужной для win7, все равно, отказ от старой системы делает разработку легче. Уже не надо в этих заглушках править баги, не надо все тестировать на +1 операционке.
Остается только вопрос, когда от них отказываться. 3 года после конца жизни операционки, когда доля пользователей упала до каких-то мизерных величин - мне кажеться адекватным.
Нет, не согласен - поддерживать можно ещё долгое время после, если пользователи настойчиво просят (ведь интересы пользователей важнее денег, ведь сами утверждали ранее), причём не сказал что доля мизерная, тем более она даже растёт последние несколько месяцев.
Конкретно:
1) Не вижу там никакого Legacy. Что именно подразумевается под этим? Притянуть разве что d3d9.
2) Стратегия это после объявления прекращения поддержки 7ки выпустить в следующей 110 версии chrome.dll, где уже убраны "ненужные" компоненты, связанные с Windows 7. Размер dll'ки должен уменьшиться. Причём существенно.
На деле - никакой разницы между 109 и 110.
Тривиальный вывод: корпорация Google подошла формально к этому вопросу. Обсуждать больше нечего, это факт!
3) т.е. для разработчика Supermium нет никаких проблем с поддержкой целого зоопарка, а для огромной мегакорпорации, ворочащей миллиардами долларов это представляет невыполнимую задачу. Вот это открытие!
4) Делает разработку легче? Поддержка нескольких платформ - оптимальная организация структуры кода, процесса сборки/тестирования и рабочего окружения. Если этого нет, то даже для одной единственной Windows 11 будет сложно выпускать и тестировать новые сборки.
Не вижу там никакого Legacy. Что именно подразумевается под этим? Притянуть разве что d3d9.
Я вам про это уже весь тред рассказываю, а вы все не видите.
Стратегия это после объявления прекращения поддержки 7ки выпустить в следующей 110 версии chrome.dll, где уже убраны "ненужные" компоненты,
Это невозможно, потому что компонент много и выпиливание их долгий и трудоемкий процесс. Тогда бы пришлось забить на все фичи, багфиксы и все-равно отложить выпуск 110 версии, только чтобы уменьшить размер исполняемого файла. Никто так делать не будет. Делают отсечку, отказываются от поддержки и дают добро на отчистку кода.
т.е. для разработчика Supermium нет никаких проблем с поддержкой целого зоопарка
Тут большая разница в том, что разработчикам supremium не надо поддерживать и развивать весь хромиум. Они лишь допиливают в готовый продукт какие-то небольшие изменения. И со временем им будет делать это все сложнее и сложнее. Да, гугл бы мог нанять еще команду разработчиков делать именно это и не отказываться от старых операционок. И еще много чего мог бы делать, я думаю не вы единственный имеете идеи о том, на что гуглу стоит еще тратить деньги, что лично вам нужно. Но так бизнес не работает.
Делает разработку легче? Поддержка нескольких платформ - оптимальная организация структуры кода, процесса сборки/тестирования и рабочего окружения.
Никакая организация кода и тестирования не убирает накладные расходы. Тупо все тесты прогонять на еще одной операционке - это одного электиричества и железа надо много, и ждать commit queue придется еще дольше. Оно итак уже гоняет миллионы тестов на десятках конфигураций.
Плюс все абстракции протекают. Например, из-за того что MediaFoundation в win7 не умеет нормально в D3D11_RESOURCE_MISC_SHARED_NTHANDLE, нельзя видео из камеры сразу загрузить в текстуру. Поэтому во всех видео энкодерах и рендерерах надо отдельный случай обрабатывать - софтверный фрейм, который надо еще загружать в видео память. Изолированный отдельный компонент чуть подругому себя ведет, и все потребители видео от GPU service, до webrtc с media recorder должны это учитывать.
весь тред рассказываю. legacy
часть кода MFPlat
DXGI draw out
Вам самим то не смешно?
Со своей стороны уже специально подсказываю на DirectX 9 render, чтобы не так стыдно было. С последним хотя бы изменений мегабайт на 15-20 будет в обратную сторону, вместо 5 Мегабайт бинарного кода. Тем более всё равно для совместимости оставляете каждый раз, если отвалятся вышеупомянутые примочки.
Это НЕ настолько фундаментальные вещи, ради которых требуется формально убрать поддержку Windows 7. Понимаю Media Foundation отсутствует на XP/2003, где нет так-же d3d11, здесь всё логично. 7ка, а тем более 8ка - это не серьезно.
Это невозможно, потому что компонент много и выпиливание их долгий и трудоемкий процесс. Тогда бы пришлось забить на все фичи, багфиксы и все-равно отложить выпуск 110 версии, только чтобы уменьшить размер исполняемого файла. Никто так делать не будет. Делают отсечку, отказываются от поддержки и дают добро на отчистку кода.
Да,ещё в первой статье прекрасно расписал абсолютную ущербность Вашей стратегии, которая в сумме даёт замкнутый круг. Вы это не можете признать, равно как и Ваше руководство некомпетентно (с 109 версии). Это лишь подтверждает мои слова, что с профессиональной точки зрения проектирование браузера для архитектуры Windows выглядит ужасным.
Самая первая ломанная версия была 114, прошло три года, уже 141 версия вышла - НИЧЕГО не поменялось. Спокойно бегу и влзамываю 141 версию, потому что ничего не мешает это сделать. Уверен, что когда очередной инкремент условно 1541 версии - НИЧЕГО НЕ поменяется кардинально, потому что Вы и ваша корпорация ходит по замкнутому кругу.
Тут большая разница в том, что разработчикам supremium не надо поддерживать и развивать весь хромиум
Слушайте, с таким уровнем говна, что туда напихали за десятки лет, впору задуматься наоборот почистить его от говконокда и более компанктно струкрутировать/ ОПТИМИЗИРОВАТЬ. Сейчас на дворе НЕ 2000-2010 год, когда всемирная паутина идёт семимильными шагами в развитии. В курсе, что даже сраную "плавную" прокрутку чинили несколько версий подряд.
Да, гугл бы мог нанять еще команду разработчиков делать именно это и не отказываться от старых операционок.
Ключевое слово МОГ БЫ.
И еще много чего мог бы делать, я думаю не вы единственный имеете идеи о том, на что гуглу стоит еще тратить деньги, что лично вам нужно. Но так бизнес не работает.
Вы сами себе противоречите - теперь у Вас бизнес стоит выше интересов пользователей, заявленных ранее.
При том, что Google просрал кучу денег на провальные проекты просто так, даже слышать не хочу про бизнес идеи. Это не тот случай.
Никакая организация кода и тестирования не убирает накладные расходы. Тупо все тесты прогонять на еще одной операционке - это одного электиричества и железа надо много
Что за бред... С таким же успехом для Linux нужно тестировать исключительно на Debian, так как зоопарк из всех GNU систем корпорация не может себе позволить с Ваших же слов.
Например, из-за того что MediaFoundation в win7 не умеет нормально в D3D11_RESOURCE_MISC_SHARED_NTHANDLE, нельзя видео из камеры сразу загрузить в текстуру. Поэтому во всех видео энкодерах и рендерерах надо отдельный случай обрабатывать - софтверный фрейм, который надо еще загружать в видео память. Изолированный отдельный компонент чуть подругому себя ведет, и все потребители видео от GPU service, до webrtc с media recorder должны это учитывать.
Да, он не умеет в shared handle, что НЕ помешало мне пропатчить WebGPU для запуска на Windows 7 без shared handle. Потому что базовый оператор if не зависит от типа операционной системы. И этот код Вы всё равно оставите для совместимости, если основная ветка не заработает. Так зачем по итогу убирали формально поддержку Windows 7?? Не увидел ответа.
Да, он не умеет в shared handle, что НЕ помешало мне пропатчить WebGPU для запуска на Windows 7 без shared handle
Я вам про видео и кодирование, вы про webgpu. Плюс повторю: то что условный js тест рисует какую-то картинку а не падает с эксепшеном, не значит, что вы заставили webgpu работать по нормальному.
Вижу, что вы не воспринимаете никакие аргументы, а лишь пытаетесь вставить очередной пассаж про говно. За тем, покидаю эту ветку.
video encoding/decoding
наверное, это если прям вручную всё делать.
полагаю, что при аппаратном ускорении более менее современные видеокарты, даже начиная с архаики AMD HD 77xx / GeForce 9xx могут сами разбираться с этим через свой драйвер напрямую.
js тест рисует какую-то картинку а не падает с эксепшеном, не значит, что вы заставили webgpu работать по нормальному.
Интересно, а какие ещё критерии нужны? Нагрузка CPU / GPU? С чего бы обычный вывод через DirectX 11 (d3d11) стал работать не так, если Вы сами обеспечиваете такую совместимость?
аргументы
Когда ломаешь Ваш Chrome и оно работает (по крайней мере обеспечивает какой-то достаточно высокий уровень фукнциональности путём нехитрых правок) - аргументы говорят сам за себя.
У Вас Windows 8 (8.1), поддерживает всё Вами вышеупомянутое:
DirectX parrarel render output
MFPlat
full user32
shared handle
Process Mitigation (буквально без двух флагов, которые появились в Windows 10) и остальное из kernel32
И тем не менее, всё равно убираете поддержку. Единственное чем это можно аргументировать - гораздо меньше пользователей, чем на Windows 7 даже. Но с технической стороны - ТЕМ БОЛЕЕ никакого смысла в этом нет совсем.
С переходом на Windows 11, возникнет аналогичная ситуация один в один.
За тем, покидаю эту ветку.
Во всяком случае, со своей стороны не прощаюсь, потому что ломать версии Вашего Chrome браузера можно бесконечно.
И никакие палки в колёса, что пытались вставить со 125 здесь не помогут. Ну уже понятно по Вашему (не конкретно Вашему), что поля в PE-header, никак не влияют. Импорт из NTDLL... а Вы здесь за аргументы.
Стратегия это после объявления прекращения поддержки 7ки выпустить в следующей 110 версии chrome.dll, где уже убраны "ненужные" компоненты, связанные с Windows 7. Размер dll'ки должен уменьшиться. Причём существенно.
Вы, видимо, никогда не работали в большой команде(и не важно корп или oss). В большой команде очень неэффективно принимать решения и делать крупные изменения в коде за один заход — просто погрязнете в деталях. Поэтому обычно там сначала принимают решение о смене скоупа(отказ от ОС в данном случае) и только в последствии вносят реальные правки под это решение.
Более того, если разработчики ответственно подходят к вопросам совместимости, то даже после принятия решения, они ещё некоторое время оставляют эскейп-хатч. Просто потому что часть пользователей зависает на старой версии, пока не станет совсем критично — и в этот момент хорошо им смягчить переход на новую версию. Но это не значит, что они будут так держать вечно — в какой-то момент эту поддержку убирают вовсе.
Подход гугла в данном случае вполне себе понятен и разумен. Альтернативные подходы тоже есть, но ими пользуются только если разработчики проекта видят ценность в расширенной поддержке больше, чем оценивают себестоимость.
А то будет как с re в плюсах: они вроде есть, но сломаны; а починить нельзя, т.к. код сломается.
только в последствии вносят реальные правки под это решение.
Отчасти понимаю их. Однако, есть важный технический нюанс
и в этот момент хорошо им смягчить переход на новую версию
... прошло 3 года - ничего НЕ выпилили толком. Банально потому:
1) ввиду потока новых изменений, никому нет дела до старых;
2) особо и удалять нечего, кроме разве что DirectX 9, который рассчитан на XP / 2003;
В большой команде очень неэффективно принимать решения и делать крупные изменения в коде за один заход
С профессиональной технической точки зрения, эффективные менеджеры Google уже наступают на свои же технические грабли - размер chrome.dll, который не может расти в бесконечность. А он стабильно растёт всё больше и больше ввиду пункта выше. Инженеры типа представителя Google выше пытаются фиксать эту проблему в ущерб оптимизации убирая __inline. При том, что тащемта такие чудовищные размеры для PE-формата это не очень нормально. Примерно из разряда, накрыть DLL какой нибудь DENUVO и ожидать, что производительность не просядет и не вылезут баги самого нативного лоадера.
Потому и ломается на каждой сборке. Патч по голым байтам живёт до первого апдейта. Либо писать более умную сигнатуру, либо уходить в прокси
Автор, перезалей, пожалуйста, версию архива 1.1, добавь туда пароль простенький. А то гугл не дает скачать, жалуется, что это якобы вирус.
Интересный способ, вполне инженерный подход (кроме самоподписанного сертификата), но только в целях эксперимента (в этом смысле и самоподписывание вполне годится). Мне же Ютуб в браузере не нужен вовсе, давайте делать патчи для телевизоров уже 😉
А, вот, что делать, если вдруг вылезает сообщение "Войдите в свой аккаунт, чтобы доказать. что Вы не бот"?
инста не взлетела.
Печальбеда, патч 1,1 забанен гуглом, а 1,2 не работает - новая версия вышла.
С возвращением, хорошая статья!
Я как раз недавно ностальгировал по началу нулевых. Думал: "Каким-то слишком доступным Интернет стал! Вот раньше он был таким дорогим, что приходилось тырить пароли у организаций, искать уязвимости у провайдеров, постоянно что-то изобретать. Весело было".
Похоже, эти времена возвращаются.
Заработало, но потом перестало. Похоже, уже прикрутили.
Огромное спасибо.
Вот бы ещё этот патч для https://ru.wikipedia.org/wiki/Supermium
А вы проверяли? Скорее всего работает. Тем более, что есть исходники :) Правьте по своему усмотрению и компилируйте
В этом файле нужно пропатчить chrome.dll
winpatch.exe chrome.dll 837850000F85B50000008B40188B80D00000008338000F E8B986800066B8E803750466B800408B0B66894108EB05
это будет версия v1.2 со ScrollLock - то есть youtube работает при горящей лампочке Scroll
От чебурнета с белым списком ничто не спасет..
Уважаемый автор, пожалуйста, напишите краткую инструкцию не для программистов (для обычных пользователей),
где, что и как заменять в вашей разработке, чтобы адаптировать её к новым версиям Хрома.
Кстати, на последней версии Chrome у меня после патча вообще перестают открываться сайты хоть с нажатой клавишей Scroll Lock, хоть без.
Vivaldi 7.6.3797.63 - патч 1.0 работает нормально, вполне себе быстрое решение, без установки левого софта.
А вот 1.2 нормально не работает, браузер склонен зависать. Где-то ошибка?

Посмотрел скриншот, вы всё правильно сделали - самостоятельно нашли нужные адреса и вызов call GetKeyState появился, хотя его нет при стандартном патче - там мусор 1811CDE28: FF155262EE0D call q,[000000018F0B4080] , так как адреса импорта функции GetKeyState поплыли, как их найти через hiew - довольно сумбурно описано в статье, надо бы разобраться со структурой исполняемого PE-файла и автоматизировать этот процесс, создав универсальную утилиту, чтобы еще и адреса подстраивались, а не просто заменялись одни байтики на другие.
У меня такой вариант работает, как на скриншоте, ничего не зависает. Проверьте еще раз.
Возможно, это уже написали, но логично пропилить это поведение опцией и попробовать протолкнуть патч в мастер.
Написал скрипт для автоматизации вычислений call
from pathlib import Path
import subprocess
from struct import pack, pack_into
from itertools import batched
import lief
d_path = r"C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.43.34808\bin\Hostx64\x64\dumpbin.exe"
patch_pattern = bytes(int(''.join(i), 16) for i in batched('4883B998000000000F85B9000000488B4730488B8010010000488338000F85', 2))
# scrol lock
# replace_pattern = bytearray(int(''.join(i), 16) for i in batched('48C7C191000000FF155262EE0DA80166B8E803750466B8004066894710EB04', 2))
# numlock
replace_pattern = bytearray(int(''.join(i), 16) for i in batched('48C7C190000000FF155262EE0DA80166B8E803750466B8004066894710EB04', 2))
result = subprocess.check_output(f'"{d_path}" /IMPORTS chrome.dll').splitlines()
r = [i for i in result if i.find(b'GetKeyState') != -1]
assert len(r) == 1
func_addr = int(r[0].split()[0], 16)
data = Path('chrome.dll').read_bytes()
pattern = pack('<Q', func_addr)
func_offset = data.find(pattern)
patch_offset = data.find(patch_pattern)
pe = lief.PE.parse('chrome.dll')
rva_patch = pe.offset_to_virtual_address(patch_offset)
rva_func = pe.offset_to_virtual_address(func_offset)
val = rva_func - rva_patch - 13
pack_into('<I', replace_pattern, 9, val)
print(hex(func_addr), hex(func_offset), hex(patch_offset), hex(val))
print(''.join(f'{i:02X}' for i in patch_pattern), ''.join(f'{i:02X}' for i in replace_pattern))
не все автоматизирует, и надо путь к dumpbin прописать, но выдает правильно. lief нужен для преобразования адресов, но импорт все равно dumpbin пришлось получать, lief почему то импорта USER32 вообще не видит.
еще pattern на numlock добавил, мне так удобнее чем scrolllock
в новой версии хром сработало
8 байт судьбы. Инженерное дзюдо уровня Хабра
в версии поменялось .66 на .77, и патч перестал работать
"работа с ютуп" :-))) смешно сказано :-) "работники" который день обсуждают замену восьми байтов :-)))
Ну все, господа, разбирайте, собирайте сами, просите меинтейнеров ваших любимых форков добавить
https://github.com/uazo/cromite/commit/cb240536bfb15d4eb1304bee644747ad25ffbcc1#diff-6368c0b65eaef4956c67377b7c3f56756df2603efb8726191943b205e8efb62e
Патчим Chrome для работы с YouTube