Один словом: все, что легко
Один словом: все, что легко защищается, легко и ломается. Впрочем, квалифицированных хакеров не так уж и много, и для предотвращения "утекания" своей продукции для нас с вами достаточно добиться некопируемости ключевого диска распространенными копировщиками в автоматическом режиме. И, как мы увидим в дальнейшем, защита данного типа полностью удовлетворяет этому требованию.
Процесс подготовки защищенного диска не лишен определенных тонкостей. Создание фиктивного трека с нулевым номером не вызывает особых трудностей, но вот вопрос: где его разместить? В первой, а, может быть, лучше во второй сессии? До подлинного трека или после? Поскольку вводная область первой сессии недоступна для чтения на субканальном уровне, то прочитать TOC первой сессии вручную нельзя. Нельзя и закладываться на команду READ TOC, поскольку, как уже было сказано выше, ее корректное выполнение не гарантируется. Вводные области второй и всех последующих сессий свободно доступны на субканальном уровне и ручное чтение хранимого ими TOC'а все-таки возможно. Конкретная позиция нулевого трека внутри сессии особой роли не играет, и нулевой трек может быть с одинаковым успехом размещен как до ненулевого трека, так и после него.
Только, пожалуйста, не забывайте о необходимости коррекции point'а A0h, хранящего номер "первого" трека всякой сессии. Если его значение оставить без изменений, то образ диска запишется без каких-либо препирательств со стороны Clone CD, но никаких упоминаний о нулевом треке в TOC'е прожженного диска не окажется! Точно так же ведет себя и Алкоголь. Чтобы этого избежать, значение point'а A0h той сессии, к которой вы добавляете нулевой трек, должно быть сброшено в Zero.
Фрагмент отредактированного CCD-файла приведен ниже:
TocEntries=13 | TocEntries=14; | корректируем количество входов в TOC |
[Entry 8] | [Entry 8]; | это вход не обязательно должен быть восьмым… |
Session=2 | Session=2; | …главное, чтобы Session == 2, а Point == A0h |
Point=0xa0 | Point=0xa0; | этот Point отвечает на номер первого трека |
ADR=0x01 | ADR=0x01; | это служебные поля ADR/Control, описывающие |
Control=0x04 | Control=0x04; | режим обработки трека (это трек с данными) |
TrackNo=0 | TrackNo=0; | TNO = 0 – это Lead-In область |
AMin=0 | AMin=0; | \ |
ASec=0 | ASec=0; | +- условный текущий абсолютный адрес |
AFrame=0 | AFrame=0; | / |
ALBA=-150 | ALBA=-150; | условный текущий LBA-адрес |
Zero=0 | Zero=0; | это поле всегда равно нулю |
PMin=2à | PMin=0; | корректируем номер "первого" трека |
PSec=0 | PSec=0; | эти поля не имеют никакого смысла и должны |
PFrame=0 | PFrame=0; | быть равны нулю |
PLBA=8850 | PLBA=8850; | LBA-"адрес" номера "первого" трека |
[Entry 11]; | добавляем еще одно Entry, описывающее нулевой трек | |
Session=2; | нулевой трек должен быть не в первой сессии | |
Point=0x00; | номер трека - ноль | |
ADR=0x01; | Sub-channel Q encodes current position data | |
Control=0x04; | трек с данными | |
TrackNo=0; | это Lead-In | |
AMin=0; | \ | |
ASec=0; | + - условный абсолютный адрес Lead-In | |
AFrame=0; | / | |
ALBA=-150; | условный LBA-адрес Lead-In | |
Zero=0; | это поле должно быть равно нулю | |
PMin=3; | \ | |
PSec=1; | + - абсолютный стартовый адрес нулевого трека | |
PFrame=66; | / | |
PLBA=13458; | LBA-адрес нулевого трека |
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий