Смотрим полноэкранное флеш-видео на втором мониторе, работаем на первом

Просмотр видео во флеше (youtube и другие) на полном экране имеет пару недостатков, которые полезно исправить прямо в библиотеке флеша, выполнив патч некоторых файлов, появившихся в системе после процедуры инсталляции или обновления флеш-плеера.

Недостатки:

1) (основной) развёрнутый на полный экран флеш-ролик фильма (или анимации) сворачивается при потере фокуса окном. Например, стоит заглянуть в ICQ, Скайп на другом мониторе, в другое окно браузера, запустить или перейти в другую программу — развёрнутый флеш беспощадно сворачивается в прежние размеры;

2) (тоже неприятное свойство) при разворачивании в полное окно флеш-ролик с упорством робота повторяет одну и ту же фразу в течение 3-4 секунд, мешая просмотру: «Press Esc to exit full screen mode», забывая, что у пользователей тоже есть память.

Результат приведён в виде нескольких правил для ручного патча и в виде архива пропатченных файлов библиотеки флеш-плеера текущей версии 10.1.85.3.

Даже если у вас один монитор, второй патч и в этом случае будет полезен.

(UPD: Статья-продолжение, для версии 10.1.102.64. приведена пошаговая методика выполнения патчей, идентичная описанной; выложены файлы для версии флеша.)

Лечится это медицинским хирургическим вмешательством — программой-патчем или ручной правкой кода. Вторую задачу решим заодно с первой, чтобы эффективнее использовать время, раз уж взялись за HEX-редактор. Версии флеша обновляются, прежние советы по улучшению флеша устаревают.

Патч придётся обновлять и применять при каждом обновлении плеера. В будущих версиях плеера патч-программа, имеющаяся сейчас под Windows, может перестать работать, поэтому ниже объяснены метод и суть построения патча. Для случая Linux придётся воспользоваться приведённой ручной методикой или написать что-то своё.

Используем готовый хак (неполное решение, для Windows и части браузеров)

Программа хакинга FlashHacker.zip [2] в последней версии от июня 2010, рассчитанная на флеш v.10.1.53.64, нормально работает и с актуальной на данный момент версией 10.1.85.3 (от середины сентября 2010), потому что, как видно по открытому

приложенному коду, её алгоритм заключается в поиске и замене пары байтов 11-байтовой строки в файле с:\WINDOWS\system32\Macromed\Flash\NPSWF32.dll или в подобной для Windows 7.

К сожалению, на этом победные реляции заканчиваются. Далее, программа пытается найти библиотеки для Хрома 6-й версии и Оперы в Висте (в "%PROGRAMFILES(X86)%), не пытается патчить Flash10.ocx для IE. Итого, обеспечивает безбедный патч для 2 с половиной браузеров. Для Хрома-6,7 есть другая программа — DrizzlyChrome.zip того же автора. Для других придётся действовать руками.

У программы, есть ряд ограничений: она работает только на Windows, требует .NET 3.5 Framework, не поясняет свои принципы работы. Решает только первую из 2 поставленных в начале статьи задач.

В другом месте [8] суровый программист на Visual Си и Qt пишет аналогичный патч с открытым кодом и доступным SVN, который, к тому же, умеет определять обновления флеша, чтобы автоматически переинсталлировать себя (фича добавлена в сентябре 2010). IgnoFlash-1.3.1.zip, 4.0 MB. Вопрос с IE давно решён; подход выглядит более серьёзным.

Ручной хакинг файла библиотеки флеша

Перейдём на более глубокий уровень, чтобы не зависеть от инициативы других хакеров и сделать то же самое руками в любой новой версии флеша, для любого браузера, для любой ОС. Это частично выяснили до нас, поэтому я просто процитирую объяснения из статьи [4] .

Суть хака в том, что в библиотеке флеша отыскивается код, который на псевдокоде выглядел бы примерно так:

if (msg == WM_KILLFOCUS)

jump to kill_focus

if (msg == WM_PAINT)

jump to paint и переделывается в код

if (msg == WM_KILLFOCUS)

nop

jump to paint Например, для версии флеша 10.1.53.64 (и для 10.1.85.3) окружающий код выглядит так:

74 39 83 E8 07 74 11 83 E8 05 75 13 8B

Источник: habrahabr.ru

Категория: Онлайн-шоппинг

Похожие статьи: