Автоматическое копирование и обсуждение его результатов
В какой бы привод защищенный диск не был вставлен, Clone CD выдает неизменно постоянный результат, не имеющий ничего общего с реальной действительностью. По его скромному мнению, диск содержит всего одну сессию с общей протяженностью в 4,6 мегабайт, но зато размер единственного трека последней составляет ни много ни мало – 3,9 терабайт!
ИНФОРМАЦИЯ О CD В ДИСКОВОДЕ:
Число сессий:
Занято на диске: 4726 Кбайт
Секторов: 2058
Время: 00:27:33 (мин:сек:кадр)
ИНФОРМАЦИЯ О СЕССИИ 1:
Размер сессии: 4726 Кбайт
Число треков: 1
Pregap: Данные Mode 1, размер: 103359 Кбайт
Track 1: Data, размер: 4294868664 Кбайт
Листинг 6 таким видит защищенный диск копировщик Clone CD. Обратите внимание, что он распознал лишь одну сессию из двух (первую), да и то неправильно
Еще до завершения процесса копирования нас начинают одолевать стойкие сомнения или, я бы даже сказал, непоколебимая уверенность, в том, что диск будет скопирован неправильно. И действительно, чего мы опасались, то мы и получили! Давайте создадим образ скопированного диска в плане сравнения копии TOC'а с оригиналом.
[CloneCD] | ; | данные о копировщике |
Version=3 | ; | версия Clone CD |
[Disc] | ; | данные о диске |
TocEntries=7 | ; | кол-во элементов TOC'a == 7 (в оригинале было 12) |
Sessions=1 | ; | кол-во сессий == 1 (в оригинале было 2) |
DataTracksScrambled=0 | ; | поле DVD |
CDTextLength=0 | ; | CD-Text'a в полях подкода Lead-in области нету |
[Session 1] | ; | данные сессии 1 |
PreGapMode=1 | ; | тип трека == Mode 1 |
PreGapSubC=0 | ; | данных подканала - нет |
[Entry 0] | ; | данные элемента TOC'a No.0 |
Session=1 | ; | элемент сессии 1 |
Point=0xa0 | ; | номер первого трека сессии 1 в PMin/тип диска в PSec |
ADR=0x01 | ; | q-Mode == 1 |
Control=0x04 | ; | диск с данными, запрещенный ;-) для копирования |
TrackNo=0 | ; | трек, который мы сейчас читаем - это Lead-in трек (т.е. TOC) |
AMin=0 | ; | \ |
ASec=0 | ; | + - абсолютный адрес текущего трека |
AFrame=0 | ; | / |
ALBA=-150 | ; | LBA-адрес текущего трека |
Zero=0 | ; | это поле должно быть равно нулю, как оно и есть |
PMin=1 | ; | номер первого трека сессии 1 |
PSec=0 | ; | тип диска CD-DA и CD-ROM диск в Mode 1 |
PFrame=0 | ; | не несет никакой полезной информации |
PLBA=4350 | ; | номер трека представленный CloneCD как LBA-адрес, т.е. чушь |
[Entry 1] | ; | данные элемента TOC'a No.1 |
Session=1 | ; | элемент сессии 1 |
Point=0xa1 | ; | номер последнего трека сессии 1 в PMin |
ADR=0x01 | ; | q-Mode == 1 |
Control=0x04 | ; | диск с данными, запрещенный ;-) для копирования |
TrackNo=0 | ; | трек, который мы сейчас читаем - это Lead-in трек (т.е. TOC) |
AMin=0 | ; | \ |
ASec=0 | ; | + - абсолютный адрес текущего трека |
AFrame=0 | ; | / |
ALBA=-150 | ; | LBA-адрес текущего трека |
Zero=0 | ; | это поле должно быть равно нулю, как оно и есть |
PMin=1 | ; | номер последнего трека сессии 1 (в сессии только один трек) |
PSec=0 | ; | не несет никакой полезной информации |
PFrame=0 | ; | не несет никакой полезной информации |
PLBA=4350 | ; | номер трека представленный CloneCD как LBA-адрес, т.е. чушь |
[Entry 2] | ; | данные элемента TOC'a No.2 |
Session=1 | ; | элемент сессии 1 |
Point=0xa2 | ; | положение Lead-out области в PMin:PSec:PFrame |
ADR=0x01 | ; | q-Mode == 1 |
Control=0x04 | ; | диск с данными, запрещенный ;-) для копирования |
TrackNo=0 | ; | трек, который мы сейчас читаем - это Lead-in трек (т.е. TOC) |
AMin=0 | ; | \ |
ASec=0 | ; | + - абсолютный адрес текущего трека |
AFrame=0 | ; | / |
ALBA=-150 | ; | LBA-адрес текущего трека |
Zero=0 | ; | это поле должно быть равно нулю, как оно и есть |
PMin=0 | ; | \ |
PSec=29 | ; | + - абсолютный адрес Lead-out области сессии 1 |
PFrame=33 | ; | / |
PLBA=2058 | ; | LBA-адрес Lead-out области сессии 1 |
[Entry 3] | ; | данные элемента TOC'a No.3 |
Session=1 | ; | элемент сессии 1 |
Point=0x01 | ; | данные трека 1 сессии 1 |
ADR=0x01 | ; | q-Mode == 1 |
Control=0x04 | ; | диск с данными, запрещенный ;-) для копирования |
TrackNo=0 | ; | трек, который мы сейчас читаем - это Lead-in трек (т.е. TOC) |
AMin=0 | ; | \ |
ASec=0 | ; | + - абсолютный адрес текущего трека |
AFrame=0 | ; | / |
ALBA=-150 | ; | LBA-адрес текущего трека |
Zero=0 | ; | это поле должно быть равно нулю, как оно и есть |
PMin=10 | ; | \ |
PSec=2 | ; | + - абсолютный адрес начала трека 1 сессии 1 |
PFrame=0 | ; | / |
PLBA=45000 | ; | LBA-адрес начала трека 1 сессии 1 |
[Entry 4] | ; | данные элемента TOC'a No.4 |
Session=1 | ; | элемент сессии 1 |
Point=0xb0 | ; | позиция следующий записываемой области в AMin:ASec:AFrame |
ADR=0x05 | ; | q-Mode == 1 |
Control=0x04 | ; | диск с данными, запрещенный ;-) для копирования |
TrackNo=0 | ; | трек, который мы сейчас читаем - это Lead-in трек (т.е. TOC) |
AMin=2 | ; | \ |
ASec=59 | ; | + - абсолютный адрес следующей записываемой области |
AFrame=33 | ; | / |
ALBA=13308 | ; | LBA-адрес следующей записываемой области |
Zero=3 | ; | кол-во pointer'ов в Mode 5 |
PMin=22 | ; | \ |
PSec=14 | ; | + - абсолютный адрес максимальной записываемой области |
PFrame=34 | ; | / |
PLBA=99934 | ; | LBA-адрес максимальной записываемой области |
[Entry 5] | ; | данные элемента TOC'a No.5 |
Session=1 | ; | элемент сессии 1 |
Point=0xc0 | ; | стартовый адрес Lead-in области Hybrid диска (если он есть) |
ADR=0x05 | ; | Mode 5 (Оранжевая книга) |
Control=0x04 | ; | диск с данными, запрещенный ;-) для копирования |
TrackNo=0 | ; | трек, который мы сейчас читаем - это Lead-in трек (т.е. TOC) |
AMin=162 | ; | рекомендуемая мощность лазера для |
ASec=200 | ; | Application code (в оригинале здесь было 128) |
AFrame=224 | ; | в оригинале здесь было 140 |
ALBA=294074 | ; | LBA-"адрес" трех предыдущих полей |
Zero=0 | ; | зарезервировано |
PMin=97 | ; | \ |
PSec=27 | ; | + - абсолютный адрес Lead-in области Hybrid диска |
PFrame=21 | ; | / (адрес лежит за пределами диска, т.е. Hybrid-диска нет) |
PLBA=-11604 | ; | LBA-адрес Lead-in области Hybrid'a(вычислен с переполнением) |
[Entry 6] | ; | данные элемента TOC'a No.6 |
Session=1 | ; | элемент сессии 1 |
Point=0xc1 | ; | копия ATIP-информации |
ADR=0x05 | ; | -+ |
Control=0x04 | ; | -+ |
TrackNo=0 | ; | -+ |
AMin=4 | ; -+ | |
ASec=192 | ; | -+ |
AFrame=150 | ; | -+- ATIP (изменена!) |
ALBA=32400 | ; | -+ |
Zero=0 | ; | -+ |
PMin=0 | ; | -+ |
PSec=0 | ; | -+ |
PFrame=0 | ; | -+ |
PLBA=-150 | ||
[TRACK 1] | ||
MODE=0 | ||
INDEX 1=45000 |
Листинг 7 образ защищенного диска, снятый программой Clone CD (несоответствующие поля выделены жирным шрифтом)
Сокращение сессий с двух до одной очень сильно смущает. Куда девалась вторая – неискаженная(!) – сессия вообще непонятно. И хотя искаженные данные первого трека сохранились, оказались неожиданно измененными поля ApplicationCode и ATIP (и это несмотря на то, что запись производилась на ту же самую CD-RW болванку, что и раньше, хотя и ее "прожиг" осуществлялся различными приводами).
Как следствие: скопированный диск оказывается работоспособен не на всех приводах (ASUS и NEC его прочитают, а вот PHILIPS – нет), к тому же защите ничего не стоит прочитать текущий TOC и сравнить его с эталонным.
Короче говоря, "факир был пьян и фокус не удался". Что ж, попробуем обратиться за помощью к Алкоголю – уж он-то должен наверняка с этим справиться. Действительно, Алкоголь видит обе сессии: как искаженную, так и неискаженную, ? однако по малопонятным причинам сохраняет в образ лишь вторую из них (Clone CD сохранял первую). Ну что это за зоопарк, а? Содержимое TOC'а скопированного диска можно даже и не сравнивать – там будет далеко не то, что защита собирается ожидать. И напрасно! Содержимое TOC'а, снятое Алкоголем, практически полностью соответствует оригиналу. Единственно, в чем ошибся Алкоголь, – определил тип pre-gap обоих треков не как Mode 1, а как Mode 2. Впрочем, в силу отсутствия в образе первой сессии, полученная с его помощью копия диска все равно оказывается неработоспособной.
Рисунок 2 Алкоголик видит обе сессии защищенного диска, но…
Рисунок 3 копирует лишь вторую из них, а первую нагло пропускает
А ведь заявлялось, что Clone CD/Alcohol 120% способны копировать любые существующие на сегодняшний момент защищенные диски, и вдруг на поверку оказывается, что даже такую простую защиту, которую может создать на кончике пенька любой программист, они преодолеть ни вместе, ни по раздельности не в состоянии! Причем аппаратура, на которой все эти эксперименты и осуществлялись, возможность корректного копирования искаженного диска гарантированно поддерживает (сам проверял), и потому отмахнуться физическими ограничениями приводов разработчикам обоих копировщиков уже не удастся!
Даже не верится, что такой простой прием "ослепляет" лучшие копировщики защищенных дисков! Неужели и вправду, создание некопируемых дисков вполне осуществимо на обыкновенном бытовом оборудовании?! Да! Именно так! Конечно, не стоит путать некопируемость диска автоматическими копировщиками с принципиальной невозможностью получения его идентичной копии. В ручном режиме копирование таких дисков вполне осуществимо (правда, при условии, что ваш пишущий привод поддерживает режим RAW DAO, а читающий – читает сектора из обеих секций) и сейчас мы продемонстрируем как.