Рейтинг@Mail.ru
[EXT] [EXT]
[EXT]

Вскрываем DVD

Крис Касперски
Хакер, номер #099, стр. 064

Как сломать DVD-диск без помощи топора

Чего только не придумают медиамагнаты, чтобы отравить жизнь рядовому пользователю. Речь идет даже не о деньгах, а о неудобстве использования защищенных DVD, с которыми активно борются их копировщики. Но, увы, без поддержки со стороны пользователя и без гибкого человеческого ума эта борьба обречена на поражение. Сегодня я покажу, как разгрызть два наиболее популярных типа защит на примерах фильмов "Pirates of the Caribbean: Dead Man's Chest" и "The Fog".

На самом деле, эта статья не о технике взлома DVD-дисков, а о методиках их защиты, которые может применить каждый желающий - от владельца пишущего привода до крупного производителя. Естественно, защищая диск и накладывая на его использование определенные ограничения, мы лишаем потребителей части свобод и прав, в том числе и права на "честное использование" (fair use), поэтому нам следует быть готовыми к тому, что защиты будут ломать.

Пираты Карибского моря

Дали мне как-то диск "Pirates of the Caribbean: Dead Man's Chest" от ООО "Си Ди КЛУБ", сразу же предупредив, что он защищен от копирования (о чем свидетельствовал традиционный логотип "This DVD is copy protected" на задней обложке диска) и что все хомяки, колдовавшие над ним, перепробовали целое полчище копировщиков, но так ничего и не скопировали. Это был вызов! Я тут же схватил диск и потащил к себе в нору на исследование.

PowerDVD и автономный DVD-плеер от BBK показывали фильм вполне нормально, с защитой не конфликтовали, что вселяло определенную надежду. Раз диск можно посмотреть, то его (в принципе) можно и скопировать, а копировать я решил своим любимым DVD Decryptor'ом - одним из самых мощных копировщиков, с кучей опций "тонкой" настройки, да к тому же еще и бесплатным, последняя версия которого лежит на www.doom9.org/Soft21/Rippers/SetupDVDDecrypter_3.5.4.0.exe.

Привод нормально зажевал диск, отображая в DVD Decryptor'е всю его структуру. Если этого не произошло, нажми клавишу "I" для перехода в IFO-mode, с которым работает подавляющее большинство риперов и кодеров. Внешне все выглядело нормально. В закладке "Stream Processing" мы можем выбрать, что следует выбросить за ненадобностью (русские, турецкие, латвийские, литовские, эстонские и украинские субтитры вместе с русской, турецкой и украинской звуковой дорожкой), а что - оставить (видеопоток в формате PAL и оригинальную английскую звуковую дорожку). Впрочем, некоторые предпочитают поступать иначе, сохраняя переводную дорожку и выбрасывая оригинальную. Но даже хороший дубляж (вещь, кстати говоря, уникальная и в живой природе практически не встречающаяся) не заменит "родной" озвучки.

Находясь в основном меню DVD Decryptor'а, нажимаем зеленую стрелочку, символизирующую процесс копирования и обламываемся по полной программе! Сначала DVD Decryptor одним махом пропускает вереницу секторов, ругаясь на отсутствие заголовка - "Skipping Sector XXX - Pack Header Not Found", после чего врезается в литосферную плиту плохих секторов - "Failed to Read Sector XXX - Uncovered Read Error" (провал чтения сектора XXX - невосстановимая ошибка чтения).

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

Хорошо, начинаем копать от забора до обеда. Судя по всему, на DVD имеется непроштампованная зона, на которую отсутствует ссылка в меню, поэтому плееры нормально просматривают фильм, а копировщики, пытаясь скопировать весь диск целиком, как раз на эту самую зону и натыкаются. Эта гипотеза подкрепляется тем фактом, что первые несколько десятков тысяч секторов читаются вполне нормально, но пропускаются копировщиком как не содержащие заголовка. Это и есть "пограничная" область непроштампованной зоны, за которой начинается царство сплошных плохих секторов, пересечь которое очень трудно. А зачем нам его пересекать, если там заведомо нет ничего интересного?

Просматривая обложку диска, обращаем внимание, что оглавление содержит 28 эпизодов (или, по-английски, chapter'ов), а DVD Decryptor рапортует о 29-ти. В душу закрадывается смутное подозрение, что один из эпизодов "лишний", то есть специально помещенный на диск, но не проштампованный. Рассматривая диск в ярком отраженном свете, падающим под определенным углом, эту область можно отличить по неоднородностям в цветовой радуге (рекомендуется использовать кварцевую лампу и увеличительное стекло).

А что если просто выкинуть эту область, попросив DVD Decryptor не копировать ее? Это действительно совсем несложно сделать. Находясь в главном окне программы, переходим к вкладке "Input", сбрасываем галочку напротив пункта "Chapter 1" и нажимаем зеленую стрелку для копирования образа DVD на диск. На этот раз копирование проходит успешно и ни один дефектный сектор на нашем пути не встречается, но скопированный фильм начинается не с самого начала, а где-то с четвертой минуты. Не такая уж и большая потеря, но все-таки впечатление от просмотра будет изрядно подпорчено.

Выходит, что chapter 1, наряду с непроштампованной зоной, содержит часть полезного видеоматериала, который мы сейчас и попытаемся скопировать. Возвратившись в основное окно программы, мы восстанавливаем галочку "Chapter 1" и переходим к списку ячеек (cell'ов) (к тому, что расположен правее). Как видно, chapter 1 содержит пять cell'ов. Первые четыре из них занимают по 26 Кб (что соответствует продолжительности в 00:00:00.14 - чтобы узнать ее, достаточно подвести к cell'у курсор и немного подержать). И только последний, пятый, cell занимает 229,824 Кб (00:04:08.09), содержащих первые четыре минуты начала фильма.

Что мы делаем? Сбрасываем галочки у первых четырех cell'ов и, нажимая зеленую кнопку, вновь повторяем попытку копирования защищенного диска, не считаясь с потерянным временем. Как говорится, лучше за полдня долететь, чем за полчаса добежать.

Операция копирования завершается безоговорочной капитуляцией защиты! Плохие секторы трусливо прячутся, ошибок чтения не возникает, и, что самое главное, сграбленный фильм начинается с первой секунды, позволяя насладиться просмотром непосредственно с жесткого диска или сжать видеоматериал любым подходящим компрессором, например XviD.

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

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

"The Fog", или "Куда подевалась моя синхронизация?"

Впервые с защитами этого типа я столкнулся при пережиме фильма "The Fog" (производитель ООО "Мега Видео") из DVD/MPEG2 в более компактный MPEG4, мирно покоящийся на винчестере.

Несмотря на отсутствие каких бы то ни было логотипов, накладывающих эмбарго на копирование, сжать фильм не получилось. Копирование происходило замечательно, но вот при попытке воспроизведения сжатого MPEG4 наступал полный несинхрон аудио и видео, стремительно увеличивающийся по мере просмотра фильма и уже на середине достигающий нескольких минут! То есть сначала слышались звон разбитого стекала и жуткий вопль зловещих мертвецов, и только потом эти самые мертвецы появлялись на экране :). Естественно, ни о каком удовольствии от просмотра говорить не приходилось. И хотя многие плееры и кодеки (в том числе и мой любимый FFDShow) позволяют менять "video delay" на лету, вручную подгоняя звук под изображение, это тяжелый труд. Причем под PowerDVD и автономными DVD-плеерами диск воспроизводился вполне нормально!

Перепробовав несколько различных кодеков и риперов, но так и не добившись успеха, я отложил диск в сторону, но потом к нему стали добавляться другие: "Wolf Creek", "Cold Creek Manor". И что самое примечательное, все они были выпущены все тем же ООО "Мега Видео", что наводило на мысль о хитрой защите от рипа. Какой смысл защищаться от рипа, если защищенный DVD можно спокойно скопировать на DVD-R/-RW или записать образ на винчестер, смонтировав его на виртуальный DVD?

Но не все так просто! Чтобы скопировать диск, к нему нужно получить физический доступ, а это не так-то легко сделать. Фактически, пиратство ограничивается узким кругом дружественных лиц, которые если даже и не скопируют DVD, то просто возьмут посмотреть его на время. Выложить же образ несжатого DVD в интернете (особенно если это DVD9) отважатся только настоящие маньяки, а качать его будут считанные единицы! Короче, мотивация производителя вполне понятна, чего нельзя сказать о ее технической реализации, скрытой в плотном тумане.

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

Для работы с видеоматериалом, естественно, требуется видеоредактор. Их много разных. Лично я предпочитаю AviDemux (http://avidemux.org) и NanDub (http://sourceforge.net/projects/ndub), обладающий одной очень замечательной функцией, о которой - чуть позже. Обе программы распространяются в исходных текстах на бесплатной основе. Халява! И зачем нам нужен этот монструозный Abode Premier?

Короче, скачиваем AviDemux, устанавливаем на свой компьютер, открываем сграбленный VOB-файл. По умолчанию DVD Decryptor склеивает все VOB'ы в один, что упрощает их обработку, но высаживает AviDemux на измену, поскольку файлы, размер которых превышает 4 Гб, он обрабатывать не умеет и вылетает по исключению. Впрочем, в будущих версиях этот недостаток скорее всего будет исправлен.

Сразу же после открытия файла, AviDemux спрашивает, хотим ли мы его индексировать или нет. А куда нам деваться. Приходится… Так что нажимаем "Yes" и ждем.

Ждать придется недолго. В зависимости от размеров файла и мощности компьютера, индексация занимает от одной до нескольких минут, сопровождаемых традиционным "термометром".

По завершении индексации нажимаем "Alt-Enter" для вызова свойств файла ("Файл -> Свойства") или давим гаечный ключ на панели инструментов, в результате чего получаем весьма интересный диалог. При частоте кадров в 23,976 продолжительность видеодорожки составляет 01:42:49.836, в то время как звуковой - всего лишь 01:42:42.464. Так вот где собака порылась! Отсюда и несинхрон!

Логично, что для обеспечения синхронизации продолжительность обоих дорожек должна совпадать, и сделать это можно путем коррекции частоты кадров. Идем в меню "Видео", там видим пункт "Частота кадров" и увеличиваем исходное значение на несколько тысячных fps, добиваясь наилучшего совпадения продолжительности, которое в данном случае достигается на частоте в 24,006 fps. При этом продолжительность видеодорожки составит 01:42:42:126, что всего лишь на 0,339 секунды меньше продолжительности звуковой дорожки. То есть даже в конце фильма несинхрон не будет превышать 1/3 секунды, что уже вполне терпимо, хотя и большого восторга не вызывает. К сожалению, точнее подобрать частоту не получается, поскольку доступный ряд частот образуется путем деления частоты базового кварцевого генератора. Попадание в "эпицентр" происходит крайне редко, и обычно мы имеем либо недобор, либо перебор.

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

Но это еще не самое страшное. Оригинальный DVD (как этого и требует стандарт) разбивает видеопоток на несколько VOB-файлов (в данном случае - три), в начале каждого из которых звук и видео полностью синхронизованы, а потом начинают расходиться в разные стороны, и чем дальше - тем сильнее.

Если мы объединяем несколько VOB-файлов в один, подгоняя fps по общей продолжительности звуковой дорожки, неизбежно образуются "биения" - звук будет то отставать от изображения, то обгонять его. Чтобы этого избежать, каждый VOB следует обрабатывать индивидуально, запретив DVD Decryptor'у заниматься их склейкой. А при отсутствии CSS-защиты (как, например, в данном случае), необходимо просто скопировать VOB'ы на жесткий диск FAR'ом, выбрав самые большие из них (остальные содержат всякие дополнения, типа рекламы, клипов и т.д.)

Подобрав частоту каждого VOB'а и перегнав его в сжатый AVI, клеим все AVI вместе с помощью AviDemux'а или любого другого видеоредактора. "Биения" синхронизации при этом исчезают, но проблема нестандартной частоты по-прежнему остается. Решить ее можно, оставив fps в покое и подогнав длительность звуковой дорожки в звуковом редакторе типа Cool Edit, соответственно, скорректировав тональность, чтобы сохранить оригинальный колорит звучания (или, точнее, то, что от него осталось). Это снимает проблему нестандартных fps, но порождает аудиоискажения, которым обладатели хорошей акустики навряд ли обрадуются. Но такова суровая правда жизни. Либо одна дырка, либо другая. А до истины еще докопаться нужно!

Кстати, чтобы не подбирать fps вручную, можно воспользоваться уже упомянутой программой NanDub, делающей это автоматически. Отрываем видеофайл. Увы, NanDub в упор не видит MPEG2, упрятанный в VOB, поэтому приходится подавать ему avi-файл, сжатый любым видеокомпрессором без коррекции fps, либо скармливать вывод AviSynth или другой аналогичной программы, конвертирующей MPEG2 на лету. В меню "Video" находим пункт "Frame rate" (или нажимаем "CTRL-R") и в появившемся диалоговом окне переводим радиокнопку "Frame rate conversion" в положение "Change so video and audio durations match". После этого требуемый fps будет вычислен за нас с максимально возможной точностью (однако все-таки привязанной к частотному ряду кварцевого генератора).

Чтобы не пережимать уже сжатое видео, в меню "Audio/Video" следует выбрать режим "Direct stream copy" и сохранить полученный avi-файл на диск. Все!

На самом деле, это не все, а только начало. После всех махинаций и танцев с бубном возникает резонный вопрос или даже целых два:

а) как все-таки DVD-проигрыватели ухитряются проигрывать такие диски и почему с ними не могут справиться программы видеосжатия?

б) какие конкретные причины приводят к несинхрону?

Чтение стандартов показывает, что MPEG2 (как, впрочем, и AVI) поддерживает режим синхронизации аудио и видео, позволяющий закреплять за каждым кадром (или за группой кадров) соответствующий ему аудиосэмпл. Если время проигрывания видеосэмпла превышает время показа кадра, то плеер обязан дублировать кадр один или более раз. Соответственно, наоборот, если время проигрывания аудиосэмпла короче показа кадра (группы кадров), то один или несколько кадров выбрасываются. Конечно, в правильно записанном AVI-/VOB-файле ничего подобного происходить не должно, и таких файлов большинство. Поэтому программы видеосжатия игнорируют данные синхронизации. Они просто отделяют звуковую дорожку (дорожки) от видео, сжимают видео отдельно от звука (при необходимости также сжимая звук или переводя его в другой формат, скажем, из AC3 в MP3), а потом накладывают его на сжатое видео, генерируя данные синхронизации от фонаря. То есть из расчета, что в исходном файле видео и аудио синхронизованы с точностью до одного кадра. Таким образом, создать защиту от пережатия видеоматериала очень легко. Достаточно внести в файл определенный несинхрон. DVD-проигрыватели, использующие данные синхронизации, восстановят синхрон на лету, а вот программы видеосжатия попадут в западню, вызванную излишней оптимистичностью и игнорированием стандарта.

Можно ли взломать такую защиту, не прибегая к описанному выше шаманскому танцу? А то! Достаточно найти программу сжатия, придерживающуюся стандарта, вот и все! Увы, разносолами здесь не пахнет, и единственным известным мне инструментом профессиональной работы с видео является культовый плеер MPlayer (www.mplayerhq.hu), а точнее, входящий в его состав компрессор Mencoder с кучей всевозможных кодеков и фильтров. Обе программы портированы под множество операционных систем (в том числе и Windows), распространяются в исходных текстах на бесплатной основе и, что важнее всего, чрезвычайно качественно документированы.

Mencoder великолепно следит за синхронизацией аудио и видео, автоматически выбрасывая или повторяя кадры для достижения желаемого результата. И весь "взлом" фактически сводится к освоению синтаксиса великой и могучей командной строки, даже сжатое описание которой занимает сотни килобайт!

Чтобы не отсылать читателя к man'у (которым обкуриться можно), я предлагаю готовый bat-файл собственного изготовления с необходимыми комментариями и легко настраиваемыми опциями. Его ты сможешь найти на нашем диске.

Запускаем menc.bat и смотрим за процессом. Типа наблюдаем. А наблюдать тут есть чего. По ходу сжатия фильма постоянно попадаются битые AC3-сэмплы с неверной CRC, вынуждающие Mencoder пропускать определенное количество кадров для обеспечения синхронизации. В нормальных условиях это бы неизбежно приводило к дерганому изображению (дефект мастеринга), но раз такого не наблюдается, то выходит, что битые аудиосэмплы встроены нарочно и часть кадров заранее продублирована, то есть их выпадение с целью обеспечения синхронизации не приводит ни к каким искажениям. Следовательно, защита работает исправно и легальным пользователям не создает никаких неудобств.

Защищенный файл, сжатый компрессором Mencoder, по качеству ничуть не уступает оригиналу (естественно, я не имею ввиду качество самого MPEG4, x264 и т.д.). Это позволяет рекомендовать его для сжатия любых DVD-дисков, поскольку тщательное расследование показало, что все они, так или иначе, содержат небольшой несинхрон, автоматически устраняемый Mencoder'ом, но игнорируемый остальными программами сжатия.

Возвращаясь к диску "The Fog", необходимо отметить, что битые сэмплы расположены неравномерно и простая подстройка fps, которой мы занимались вначале, принципиально не способна обеспечить полную синхронизацию аудио- и видеодорожек. Максимум, что она может дать, - это уменьшить несинхрон до умеренных пределов, которыми, в принципе, можно и пренебречь. Но впечатление от фильма все-таки будет уже не тем.

Кстати говоря, сведением аудио и видео на киностудиях далеко не боги занимаются, и "врожденный" несинхрон отдельных сцен встречается в достаточно многих фильмах. Естественно, к защите от сжатия никакого отношения он не имеет.

Заключение

Мы рассмотрели два наиболее распространенных типа защит DVD-дисков от сжатия/копирования, а всего их очень много. И хотя разработчики копировщиков не сидят сложа руки, до полной победы над мировым империализмом еще далеко. Тем не менее, правило, заключающееся в том, что "то, что сделано одним человеком, может быть сломано другим", еще никто не отменял, так что… Сжав свыше тысячи DVD, я перепробовал кучу программ и пришел к выводу, что все они, за исключением MPlayer'a и Mencoder'а, - гадость. И это вопрос не вкуса, а предоставляемых ими возможностей!

WARNING

Данную статью стоит воспринимать только как информацию к размышлению. Автор не призывает к нарушению авторских прав, а просто говорит о несовершенстве защит DVD.

Главная Вверх

© 2008
Сальников Александр
sasha12-15@yandex.ru

Сайт оптимизирован под разрешения 1024х768 и 1280х1024, нажмите F11, для более полного погружения в контент сайта

Используются технологии uCoz