DVD-RX, борьба с защитой

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

Так как мне до этого ни разу не приходилось иметь дело с защищёнными дисками, а в частности с DVD-RX, пришлось опробовать многие способы, чтобы получить устраивающий результат.

Содержимое диска, который был у меня, представляло из себя 30 минутный видеоролик без меню, хранящийся в виде огромного количества файлов (больше сотни) с расширением VOB и каждый размером свыше одного гигабайта. Впрочем, сам ролик является нарезкой новостей с телевидения, так что я даже ничего не нарушил. Суммарный объём содержимого составлял порядка одного терабайта, несмотря на то, что объём самого диска был стандартным, т.е. 4,7 Гб. Следовательно от копирования содержимого в виде файлов я отказался сразу. От сграбливания видео с экрана я тоже решил отказаться, хотя это было бы быстрее, но я задался идеей сделать именно копию диска. Попытка снять образ при помощи K3b ни к чему не привела, т.к. после скопированных 10 мб стали появляться ошибки чтения секторов. Несмотря на то, что в функционал K3b входит пропуск ошибок чтения и ограничение их попыток, сам привод старается прочитать каждый сектор, а на одну попытку прочтения битого сектора уходит порядка 10 секунд, что является не только затяжным процессом, но и изрядно насилует лазер в приводе.

Почитав литературу, по копированию информации с плохих носителей, я решил воспользоваться консольной программой dd_rescue, которая умеет создавать образы файлов блочных устройств, пропуская заданное количество байт вначале (забивая их нулями). К сожалению, я так и не смог найти программного решения, для быстрого поиска bad block`ов на оптических носителях. Пришлось искать методом тыка. Я знал нижнюю границу, где начинались битые сектора (10 мб), поэтому решил взять сразу 100 Мб для проверки. Как ни странно, сектор начинающийся со 100 Мб тоже был битым, как и с 200, но на 300 пошли данные, поэтому в качестве нижней границы поиска я выбрал 200 мб, а в качестве верхней — 300. В итоге мне пришлось сделать примерно 20 прыжков, чтобы найти границу между битыми и живыми секторами. Таким образом я скопировал верхнюю часть диска.

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

image

Тем же способом (запуская dd_rescue на разных местах и глядя в вывод) я нашёл нужные границы.
Одна была в районе 63 Мб, а вторая в районе 130. Итак, у меня уже был iso файл весом 10 Мб (от центра диска до первых бэдблоков), и файл размером 4,7 Гб, содержащий информацию от конца бэдблоков до края диска. Мне было необходимо сделать дамп между теми кольцами. Я воспользовался тем же dd_rescue, нажав на Ctrl+C когда посыпались бэдблоки:

$dd_rescue -s 62973431 -f /dev/sr0 /home/mascom/middle

Таким образом, у меня были три файла, которые мне нужно было соединить в один, накладывая один поверх начала другого, вроде слоёв (в том смысле что это не просто конкатенация). Я воспользовался программой split, разбив средний файл на равные части, каждая размером с малый файл.

$split -b 9997139 /home/mascom/middle

Заменив файл первой части (xaa) на 10 мегабайтный begin.iso и соединив все части в одну, у меня получился файл, содержащий информацию от физического центра диска до начала второго кольца.

$cat begin.iso xab xac xad xae xaf xag xah xai xaj xak xal xam xan xao xap xaq xar xas xat xau xav > begin1
$rm xaa xab xac xad xae xaf xag xah xai xaj xak xal xam xan xao xap xaq xar xas xat xau xav

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

Похожие публикации

Комментарии 10

    0
    Я, конечно, не знаком с защитой DVD-RX, но более общие знания подсказывают, что после прожига получится не полная копия диска. Судя по его рисунку, какие-то области (те кольца, отражающиеся не так) надо не забивать нулями, а пропускать во время прожига.
      +1
      Спасибо за статью и объяснение принципа обхода защиты. Но как по мне, так достаточно трудоёмко, особенно, если нужно сграбить не один диск. Хорошо бы иметь скрипт, который бы сам автоматизировал метод тыка для опредления границ бэд-блоков, выдирал файлы между ними, и сам же потом их соединял в ISO образ…
        0
        Пофайлово вряд ли получится — как я понимаю, кроме бэд-блоков защита состоит ещё и в том, что в файловой системе размер и расположение файлов нарочно указаны неверно.
        По идее, можно использовать VLC для проигрывания видео и записи вывода в файл.
          0
          Скорее всего тут имелось в виду объединение нескольких iso полученных между бэдами в один.
        +5
        mplayer -dumpstream?
          0
          Это понятно, ну а если бы там было меню?
            +2
            -dvd-device /dev/cd* -chapter N-N?
          +1
          ИМХО тут надо идти в сторону структуры DVD диска, если плееры его играют, значит в структуре прописано всё так чтобы не читающиеся области и никогда не читались(простите за тавтологию). Когда то я натыкался на подобный диск, там было чуть проще, там один из VOB файлов лежал на таком кольце, решилось простым копированием до начала бэдов, файл был большой но использовалось только первые 100 метров. Остальные копировались без видимых проблем, копия потом отлично работала.
            +1
            Ещё есть замечательная утилита cdrdao.
            Она позволяет снять полную копию диска вместе со служебной информацией. RAW image.
            cdrdao read-cd --read-raw data.toc
            При этом привод не запинается на битых секторах. Я как-то специально процарапал дырку в покрытии и успешно сдампил без залипаний.
              0
              Когда-то мне нужно было сделать для себя копию диска двд, на котором было куча рекламы, роликов и т.д. Без перекодировки контента вот этим чудом www.slysoft.com/en/clonedvd.html сделал все. Может оно и этот диск бы смогло сграбить? На сколько я понимаю, эта штука пытается прочитать диск как двд плеер.

              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

              Самое читаемое