НОВАЯ РЕГИОНАЛЬНАЯ ЗАЩИТА DVD ТРЕТЬЕГО ПОКОЛОЕНИЯ –
ПРАВДА И ВЫМЫСЛЫ


публикуется с любезного разрешения автора

Раньше с защитой 3 поколения было всего несколько дисков, ну а после того как Уорнер украл (?) и присвоил себе авторство на алгоритм - таких дисков будет много... Я говорил о защите 3 поколения как просто о защите, а Уорнер "раздул" эту тему до МИРОВОЙ БОРЬБЫ С МУЛЬТИЗОННЫМИ ПЛЕЕРАМИ, годами "исследований в лаборатории", разработке "суперкода", etc. В общем, дешевая самореклама и страшные сказки на ночь.

По многочисленным просьбам трудящихся повторяю свою "лекцию" об автоматах.

С момента написания первой статьи о защитах прошло много времени, мы изменили методику взлома - с игр логическим анализатором и эмулятором еепром, на реинжиниринг внутреннего программного обеспечения плеера и последующую его модификацию. Моделей плееров появляется все больше и больше, а игра "угадай мелодию" с еепром занимает много времени и не всегда приводит к положительным результатам, а самое главное, в одной и той же модели плеера при разных версиях программного обеспечения, могут быть абсолютно разные значения регистров отвечающих за номер зоны или автомат, или вообще их не быть (новые Тошибы, Сони, Шарп), или еще лучше - может отсутствовать еепром как класс (Пионер).

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

ЗАЩИТЫ

Защита первого поколения

В общем, это даже не защита, а стандартная опция формата двд диска. На любом диске есть так называемый заголовок - файл VIDEO_TS.IFO, он дублируется на диске аж до четырех раз (наверное, на случай ядерной войны). И в этом заголовке есть поле, содержащее информацию о регионе (нах), для которого это диск предназначен. Размер поля - один байт. Регионы кодируются установкой или снятием нужного бита в этом байте. Номер региона соответствует номеру бита в байте. Формат инверсный, т.е. если бит установлен в 0 - регион разрешен, если в 1 - регион запрещен. Примеры (значения байта приводятся в двоичном /битовом/ формате: 00000000b - диск мультирегионный, т.е. должен проигрываться на плеере любого региона; 11111110b - диск 1 региона; 11101111b - диск 5 региона; 11010011b - диск будет проигрываться на плеерах 3,4 и 6 региона. Проверку этого поля (в дальнейшем я буду называть его маской регионов диска) осуществляет программное обеспечение плеера (в дальнейшем фирмваре) и при соответствии его региону плеера, либо блокирует диск (выводя соответствующую надпись на экран) либо начинает его проигрывать. Как не трудно догадаться эту проверку можно и отключить в фирмваре, мало того в половине плееров это можно сделать путем установки определенного значения в определенном регистре еепром. Производители плееров обычно оставляют такую лазейку - для сервис центров, "желтых продаж" и т.п.

Защита второго поколения

Недолго музыка играла, недолго фраер танцевал... Производителей дисков, судя по всему "достала" первая волна "всеиграющих" плеров, и самые изощренные из них придумали более сильный способ защиты... В том же всеми любимом заголовке, помимо жестких полей с информацией о диске есть так называемый навигационный скрипт. Это платформенно независимый язык, вроде Явы, с узкоспециализированным набором команд, типа: вывести фрейм с картинкой на экран и ждать, по нажатию кнопки enter на пульте начать проигрывать такой то фрагмент и т.п. Несмотря на убогость и небольшой набор команд, на этом скрипте даже умудрялись писать интерактивные игры, например игра для двд плеера. Dragon Lair, хотя первоначально предполагалось его использовать только для формирования меню и навигации. Виртуальная машина двд плеера (VM, интерпретатор обрабатывающий скрипт) одинакова для всех плееров поддерживающих стандарт DVD 1.0 , в ней пользователю производителю дисков) предоставляться два банка (набора) регистров, один банк (24 регистра, если я не ошибаюсь - лень смотреть) доступен для чтения и записи, и предназначен для нужд скрипта. Например, скрипт при разворачивание меню второго или третьего уровня может запомнить в регистре предыдущий уровень меню, чтобы вы могли вернуться именно на него при нажатии клавиши Return (или какой другой, по замыслу создателя меню). Второй банк регистров (информативный) доступен только для чтения (частично и для записи) и значения в нем заполняет уже непосредственно фирмваре плеера. В регистрах этого банка находятся значения формата экрана, предпочитаемого языка аудиодорожки, языка субтитров, и, конечно же, номер региона плеера. По замыслу создателей DVD стандарта, регистр с номером региона предназначался для того, чтобы пользователь (производитель диска) в случае если он выпускает мультирегионный диск, мог в зависимости от региона плеера добавить или вырезать те или иные эпизоды фильма, или пункты меню, или показать другой набор картинок, или еще чего... - цензура в разных странах может не разрешить показывать ту или иную видеоинформацию. А можно, например, сравнить номер региона плеера со значением внутри скрипта и вывести на экран милую синенькую картинку "Данный диск не предназначен для проигрывания на плеере данного региона" (Face Off первой зоны), или просто вывести меню и не стать обрабатывать нажатые кнопки на пульте (диснеевские фильмы первой и второй зоны). Плеер со снятой проверкой все это проглотит за милую душу - для него ведь все проверки закончились и идет проигрывание диска... Кстати, в регистре региона должен стоять строго определенный номер (1,2,3,4,5,6), причем всего один - нельзя "сказать" мол, я для всех регионов. Впрочем, производители плееров, заботясь о "желтом рынке" начали, втихаря, встраивать модули обходящие данную проблему (доблестные хакеры "ломая" плеер, всего лишь включают модуль "любезно" оставленный производителем. В наглую его производитель включить не может - лицензию отнимут, а так - ничего не знаем, никуда не летаем - все хакеры проклятые поломали, а наш плеер белый и пушистый и защита на уровне DVD стандарта). Как работает такой модуль - очень просто - он считывает маску регионов диска, смотрит для какого региона данный диск, приводит это значение к числу, засовывает его в регистр региона и запускает VM для обработки скрипта. А что делать если в маске регионов диска указано более одного региона?

Защита третьего поколения

Достали, однако, производители плееров производителей дисков. Совсем не соблюдают их интересов. Ну да ладно, вы втихаря и мы втихаря... В маске регионов диска пишем 00000000b - ура мультирегионный диск! А в скрипте подленько проверяем регистр региона: наш регион - играем, чужой - на экран


(перевод - этот диск предназначен для проигрывания на НЕМОДИФИЦИРОВАНЫХ плейерах 1 региона)
- другими словами этот диск не будет проигрываться на мультирегиональных плейерах-автоматах


вот такую вот картинку с надписью или какую другую пакость... Как можно догадаться защиту третьего поколения "автоматическим" способом не обскакать. Для VM плеера мерзкая синенькая картинка с надписью ничем не отличается от любой другой картинки меню.

АВТОМАТЫ

Автомат первого уровня

Первый "автомат" был сделан умными германскими хакерами. Так как германские хакеры очень умные - они взяли и откусили у сотого Панасоника еепром. Типа, а чего из этого выйдет... А вышло следующее, в фирмваре Панасоника не обрабатывалась ситуация "выкушенный" еепром. И он пытался его считать, честно подавая нужные импульсы, выдерживая нужные паузы и считывая... нули. А проверка диска плеером как раз и отключалась, по замыслу создателей, установкой в ноль одного из регистров еепрома... ну мало раньше было двд дисков, вдруг, в сервис центре нужно чего проверить, а нет диска требуемой зоны...

В общем, отключили немцы проверку... случайно... и тут же раструбили об этом во всех германских журналах... фотография тупого бюргера, с компьютером, тестером и осциллографом (зачем ему осциллограф я не понял, мы до сих пор им не разу не пользовались, и не видим его возможных применений при взломе dvd плееров, лучше бы банальные кусачки сфотографировали) и гордый заголовок - ОН РАЗ И НАВСЕГДА СЛОМАЛ ЗАЩИТУ ДВД! Именно после этих статей взъерепенился Дисней, и отказался от производства своих фильмов на ДВД, пока его инженеры не придумали защиту второго поколения. Но после этих статей, ушлые продавцы плееров, уяснившие для себя раз и навсегда, что плеер может проигрывать любые диски, стали подначивать производителей на встраивание модулей автоматов в фирмваре...Какие диски будут проигрываться на таком автомате (моя классификация: автомат первого уровня, ущербный): Любые диски с защитой первого поколения, Диски с защитой второго и третьего поколения проигрываться не будут, т. к. за компанию с регистром отвечающим за проверку защиты обнулен и регистр с заводским номером региона. И VM в регистр региона доблестно прописывала ноль. Но можно же включить этот автомат и, не отрывая еепром, обнулив только тот регистр который отвечает за проверку... В случае такого автомата будут проигрываться и диски с защитой второго и третьего поколения, если их регион совпадает с заводским регионом плеера (моя классификация: классический автомат первого уровня).

Автомат второго уровня

Автомат второго уровня - это как раз и есть активизация дополнительного модуля в фирмваре (если он, конечно, там есть), который считывает из заголовка маску региона и, исходя из нее, формирует значение для регистра региона VM. Но беда в том, что этот модуль доблестные программисты разных фирм реализуют по разному, а именно обработку "критической" ситуации когда в маске регионов диска открыто более одного региона. "Ущербный вариант" (первые Тошибы, Сони, Панасоники) в "критической" ситуации пишет в регистр региона VM ноль. Соответственно, ни один диск с защитой третьего поколения на нем проигрываться не будет. "Классический вариант" (новые Тошибы, Пионеры, Панасоники) в "критической ситуации" пишет в регистр региона VM заводской номер региона. Соответственно, диски с защитой третьего поколения будут проигрываться на таком автомате, но только при соответствии региона диска заводскому региону плеера.

"Извращенный вариант #1" (старые Пионеры) - за значение для регистра региона VM принимается последняя успешно декодированная маска региона диска. Т.е. если вы перед проигрыванием диска с защитой третьего уровня, засунете в плеер диск с защитой первого или второго уровня того же региона что, и желаемый вами диск, то ваш диск будет проигрываться.

"Извращенный вариант #2" (написан нами и использовался в первых пионерах) - "система качения". Т.е. мы (затыкая очередную плеерную дыру в срочном порядке - контроллер ручного переключения зон для пионера был еще не готов, а плеер было нужно сдавать заказчику) разумно предположив, что защита третьего поколения обычно ставится на диска 1 и 2 регионов, сделали следующую вещь - в "критической" ситуации в первый раз в регистр региона подставляли 1, второй раз 2. Т.е. если у клиента блокировался диск с защитой третьего уровня - ему было достаточно выдвинуть и задвинуть вновь трей с диском.

Универсальная система MAVT (или автомат с ручной коробкой переключения скоростей)

MAVT разработан нами и впервые был использован в Тошибе 3109 (ник хозяина RC). Это автомат второго уровня, который в "критической" ситуации подставляет в регистр региона VM, значение заранее выбранное пользователем с пульта управления. Для выбора - достаточно в режиме Standby плеера включить его не кнопкой Power а цифровой кнопкой на пульте соответствующей номеру требуемого региона. Справка: Еепром = EEPROM = NVRAM - микросхема перепрограммируемой энергонезависимой памяти, в которой большинство плееров запоминает и хранит установки пользователя, а также заводские установки производителя плеера, в том числе, иногда в ней хранится и заводской номер региона, и ключ активации модуля "автомата". Комментарий с раскладкой по шагам. 1) Единственное место откуда код автомата плеера может узнать регион диска это маска регионов в заголовке диска. 2) Единственный случай когда автомат не сможет принять правильное решение, это когда в маске открыто более одного региона - мультизонный диск. 3)Производитель в маске заголовка ОБЯЗАН включить бит региона диска иначе проигрывание диска заблокируется на нижнем уровне фирмварью ЧЕСТНОГО плеера и до дискового скрипта с "суперкодом RCE" плеер никогда не дойдет. 3а)Чтобы загрузился и начался проигрывать ЛЮБОЙ дисковый скрипт фирмварь честного плеера должна признать диск ЛЕГАЛЬНЫМ, т.е. в маске заголовка бит требуемого региона должен быть включен, хотя при этом могут быть включены биты и других зон (мультизонный диск). 4) Единственное место откуда скрипт диска ("суперкод RCE") может получить регион плеера - это информационный регистр ВМ. Отсюда вытекает следующее - "суперкод" чтобы "обнаружить" "автомат", может только попытаться его обмануть. Т.е. в маске заголовка диска должны быть открыты все или несколько регионов (включая требуемый), чтобы "автомат" не смог сделать выбор и засунуть в регистр ВМ требуемый скриптом регион. Других вариантов нет.

(с)2000, SAS

на страницу "технологии, советы, курьёзы"

назад на главную страницу сайта или на карту сайта

>>> пишите письма <<<