On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru








 

Тестируем защиту CD-дисков

Александр Стрельцов

В последнее время все больше людей может позволить себе приобрести записывающий или перезаписывающий привод для компакт-дисков CD-R/RW. Даже поверхностный анализ показывает, что эти диски на сегодняшний день являются самыми дешевыми средствами хранения информации. Как правило, человек приобретает записывающее устройство в тех случаях, когда занимается разработкой каких-то программных продуктов или оперирует большими объемами информации.


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

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

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

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

Так или иначе, не располагающие большими деньгами люди стали придумывать способы защиты, реализуемые в домашних условиях. Самыми известными и распространенными среди них стали:

  • Overburn - перезаполнение указанной максимальной емкости носителя до тех пор, пока это позволяет привод. Имеют такую возможность далеко не все записывающие устройства, да и это "пережигание", как правило, составляет всего несколько минут. Поэтому с появлением 80-минутных дисков оно стало бесполезным, т. к. диск, скажем, в 660 Мбайт можно спокойно записать на 700-Мбайт (80 мин) болванку, не применяя "пережигания" носителя, емкость которого номинально составляет 650 Мбайт.
  • Создание фиктивных файлов большого размера - общий объем CD становится порядка 1-2 Гбайт и столько же и занимает при списывании на жесткий диск. Эта защита актуальна до сих пор, по крайней мере, в отношении создания CD RIP'ов - урезать такой диск достаточно трудно даже для опытных взломщиков. Впрочем, ничто не мешает скопировать такой диск один к одному, если он дополнительно больше никак не защищен.
  • Заведомо неправильная TOC (Table Of Contents) - описание структуры CD-диска. Защита заключается в добавлении дополнительных датовых или аудиотреков, что противоречит стандарту ISO. Большинство новых программ для копирования дисков предусматривают беспроблемный обход такой защиты, но при правильном использовании она все же бывает эффективной.

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

Программы и их методы защиты

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

WinLock

Защита этой программы основана на добавлении фиктивных аудио- и датовых треков в cue-файл картинки диска для программы CDRWin. Данный cue-файл представляет собой примерно следующий простой текстовый документ:

FILE "D:\TEST\ALEX1.BIN" BINARY
TRACK 01 MODE2/2352
INDEX 01 00:00:00

File C:\WinLock.PSX binary
Track 02 Audio
Pregap 00:10:00
Index 01 00:00:00

File C:\WinLock.PSX binary
Track 03 mode1/2352
Index 01 00:00:00

File C:\WinLock.PSX binary
Track 04 mode2/2352
Index 01 00:00:00


 Примерно такой ошибкой будет заканчиваться создание защищенного диска с помощью программы CDRWin. Это нормально, так что не пугайтесь.

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


 Вот так выглядит интерфейс программы WinLock.

Создание такого диска приводит к тому, что большинство программ для записи/копирования CD-дисков не могут его продублировать. Правда, при этом содержимое диска без проблем списывается на винчестер и работает с него, если не предусмотрена дополнительная защита. Так что полезной эта программа может быть в основном для создания защищенных дисков для PlayStation, для чего она собственно изначально и предназначена.


 Структура защищенного диска, созданного с помощью WinLock.

TZcopyprotection

Надо сказать, что эта программа намного интереснее и функциональнее, чем предыдущая, да и все остальные. На момент написания статьи последняя версия была 1.1 beta II. Она так же, как и WinLock, создает аудио- и датовые треки малой длины. После основного трека с данными создаются 4 аудиотрека, после чего идет второй датовый трек.


 В правом окне программы Tzcopyprotection вы видите содержимое будущего диска.

Он позволяет обеспечить лучшую защиту благодаря тому, что в него можно помещать файлы, используемые для работы вашей программы/игры. Размер файлов должен быть больше 16 Кбайт, и на них накладывается ограничение файловой системы DOS, проявляющееся в том, что длина имени файла не должна превышать 8 символов. Кроме того, если ваш диск Mixed Mode, т. е. по замыслу содержит данные и аудиодорожки, то этот второй трек с данными нельзя будет создать.

Впрочем, это не так страшно, потому что это далеко не основная защита в данном случае. Другая часть защиты состоит в том, что программа случайным (секретным) образом меняет структуру диска. В чем это проявляется, сказать трудно, но в некоторых случаях возможны и сбои, так что данная защита работает не на 100%.


Структура защищенного диска, созданного с помощью TZcopyprotection.

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

Вообще, эту защиту сможет обойти только неплохой хакер - среднестатистического пользователя она, несомненно, поставит в тупик. Диск, защищенный Tzcopyprotection, списать на винчестер не удается, по крайней мере, тот файл, размер которого виртуально делается 900-мегабайтным. Так что это во всех отношениях очень привлекательная программа. Увы, но у нее есть небольшой недостаток - некоторые специализированные программы могут скопировать защищенный ею диск. Однако, во-первых, надо знать, что это за программы (по понятным соображениям я не буду здесь приводить их названия), а, во-вторых, есть способы улучшить это положение (о них я расскажу попозже).

FreeLock

Продукт, тоже изначально предназначенный для защиты PlayStation-дисков. Последней на момент написания статьи была версия 1.2, и работала она под DOS в основном все по тому же принципу - добавляя в cue-файл треки нелегального размера. Впрочем, есть интересные заявленные особенности, например возможность физического доведения временной емкости диска до 95 мин и более!


 Интерфейс этой программы не способен смутить разве что пользователя старой закалки.

Понятно, что такой диск ничем не скопируешь. Однако с самого начала это было подозрительно, и тесты только доказали мою правоту. Пока же вернемся к другим особенностям программы. Она работает только со специально создаваемой для нее испорченной дискеты. В этом как бы и состоит 90% защиты. Дискету эту после создания не рекомендуют проверять ScanDisk'ом или другими утилитами, исправляющими ошибки, но я все-таки не удержался. Тестирование показало, что файл freelock.exe - собственно сама программа, на которую и ссылаются дополнительные треки, занимает на диске не соответствующее реальному пространство. Казалось бы, действительно неплохой алгоритм, но, увы, на практике это оказалось не так.

CD Protector

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


 Экран-заставка программы CD Protector.

Диск, записанный с двумя аудиотреками отдельными сессиями, да еще и не закрытыми, будет весьма тяжело читаться, да еще, кстати говоря, и не каждым приводом. Поэтому при его копировании у записывающего устройства с вероятностью на 90% случится нехватка данных в буфере (так называемый buffer underrun). Процесс записи прервется, оставив незадачливого копировщика с испорченной болванкой, если она, конечно, не перезаписываемая. Хотя и в этом случае, несомненно, будет испорчено настроение. Но, главное, из подобной ситуации нет никакого выхода, кроме того же BlindRead'а.


 Единственное рабочее окно программы CD Protector выполнено весьма привлекательно.

Он без проблем копирует CD, но в данном случае это будет бесполезно, потому что CD Protector также шифрует основной exe-файл, обеспечивая защиту наподобие известного алгоритма SafeDisc. Единственное условие - исполняемый файл должен быть под Windows. После шифрования создаются 4 дополнительных файла: _cdp16.dat, _cdp32.dat, _cdp16.dll и _cdp32.dll. Они также являются частью защиты и должны быть записаны на диск.

Предусматривается создание диска с помощью известной программы Nero Burning ROM, но суть в том, что, во-первых, это не самая удобная программа, а во-вторых, возникают определенные трудности (о которых расскажу ниже), несмотря на то, что в help'е по шагам описан процесс создания диска.

Стоит отметить, что у этого продукта, версии 3.0, самый приятный и простой интерфейс.

Как проводилось тестирование и его результаты

Сначала записывался защищенный диск по алгоритмам, предусмотренным конкретной программой. Для тестирования работы Winlock, TZcopyprotection и FreeLock был создан 13,2-Мбайт диск со старой всеми любимой игрушкой Ultimate Doom. Для проверки работоспособности CD Protector был создан другой диск на 10 Мбайт c небольшой Windows-программой, которая идет как с диска, так и с CD, не требуя инсталляции. После записи диска предпринималась попытка скопировать диск один к одному с помощью программы CD Copier, входящей в состав мощного программного комплекса Adaptec Easy CD Creator (версия 4.0). Когда это было необходимо, подопытный диск проходил проверку мощной утилитой для копирования CD-дисков BlindRead, которая способна обходить многочисленные защиты, в т. ч. большинство промышленных, о которых было сказано в начале статьи. Также каждый раз предпринималась попытка списать содержимое CD на винчестер и оттуда снова записать диск. Сравнительные результаты тестирования по этим категориям можно посмотреть в сводной таблице.

Название программы WinLock TZcopyprotection FreeLock CD Protector
 Сколько дополнительного места требуется на CD (примерно, в Мбайт) 1,5 2 1,5 40
 Копируется Нет Нет Да Нет
Списывается на жесткий диск Да Нет Да Частично
 Ограничения по применению Для PlayStation - Практически бесполезен -
Общие впечатления по обеспечиваемой защите Плохо Хорошо Ужасно Хорошо

WinLock

Ввиду того, что интерфейс программы прост до безобразия, никаких трудностей не должно возникнуть. Сначала создается пустой "мусорный" файл на диске C по нажатию на соответствующую кнопку. После этого открывается cue-файл, созданный программой CDRWin для образа вашего будущего диска. Программа автоматически добавляет в него 3 трека со ссылками на тот самый temp-файл, созданный на предыдущем шаге. После этого можно начинать писать диск. Как только вы увидите, что запись началась, надо нажать на кнопку Modify, которая появилась на месте кнопки создания temp-файла, и его содержимое изменится. В этом и заключается защита. CDRWin выдаст ошибку в конце диска, тем самым предотвращая его будущее копирование, но все полезные данные, находящиеся в первом треке, уже будут записаны!

После записи такого диска попытка скопировать его CD Copier'ом закончилась неудачей. Запись как бы начиналась, но потом программа выдавала ошибку чтения аудиодорожки и вырубалась.

Для PlayStation, где переписывание игры на жесткий диск часто затруднено и равносильно тому, что после этого игра работать не будет, даже если вы и исхитритесь и выполните все необходимы для создания рабочего диска предписания, это, несомненно, неплохая защита, но для PC-совместимых компьютерных дисков это ничего не решает, т. к. содержимое CD без проблем переписывается на жесткий диск. Не стоит даже проверять, скопирует ли данный диск BlindRead, потому что ему это почти наверняка удастся. Так что защита, в общем, сводится на нет.

Короче говоря, трудно рекомендовать данную программу для применения, если только вам не удастся использовать ее вкупе с какой-нибудь другой, например с CD Protector.

TZcopyprotection

Работа с этой программой не намного сложнее. Запустив ее, вы открываете cue-файл, и перед вами предстает содержимое образа диска, потому что в программу встроен просмотрщик, который к тому же открывает файлы как bin-, так и iso-форматов. А после этого все идет по соответствующим кнопкам-шагам. Первый, тот самый секретный, прием делает неизвестно что и выводит сообщение об успешной операции. Потом вы жмете вторую кнопку, Second Data Track, и выбираете файл, который необходимо поместить в данный трек. После этого опять нажимаете на эту кнопку и получаете подтверждение об успешно завершенной операции. Этот шаг можно повторять до тех пор, пока вам это не надоест. Теперь переходим к третьей кнопке и выбираем файл, размер которого будет "раздуваться" до 900 Мбайт. Какой файл лучше выбрать, уже говорилось, но главное, чтобы он был необходим программе для работы, иначе хитрый недруг-пользователь просто спокойно спишет себе все остальное на жесткий диск и будет долго радоваться. После завершения всех процедур можете смело приступать к записи диска.

Я выбрал в качестве будущего 900-Мбайт файла датовый Wad-файл. После записи диска в Моем компьютере он отображался как исходный 13,2-Мбайт диск, а Проводник показывал, что всего на диске 860 Мбайт.

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

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

Обрадованный, я решил напоследок проверить еще одну мощную утилиту для копирования дисков. Тут меня ждало разочарование: эта программа без проблем скопировала мой свежесозданный CD на жесткий диск. Однако это не решает проблемы "призрачного" 900-Мбайт файла. Согласитесь, обидно тратить целую болванку на программу в 13 Мбайт! Так что, если тот, к кому попадет ваш диск, не матерый хакер, он вряд ли что-то сможет с ним сделать в плане урезания объема.

В общем, TZcopyprotection - однозначно Выбор редакции как лучшее из имеющихся под рукой средств для защиты ваших уникальных CD-дисков!

FreeLock

Знакомство с этим продуктом у меня вызвало только отрицательные эмоции, и я рассказываю о нем лишь для того, чтобы предостеречь вас, дорогие читатели, от использования этой программы. Итак, как вы помните, запускается это чудо только с дискеты. Процесс этот полностью автоматический, надо запустить файл install.bat, и все будет создано без какого-либо вашего вмешательства. После этого вы обнаружите на дискете файл freelock.exe, который и надо запускать. Редактирование cue-файла происходит опциями из командной строки. Собственно эти опции - разные степени защиты диска. Первая защита - создание после основного датового трека двух других "мусорных" датовых треков, вторая - первый дополнительный трек делается звуковым, а второй - содержащим данные. Ну и третья опция, которая меня больше всего интересовала и одновременно несколько пугала, создание CD емкостью в 95 мин путем добавления temp-треков (то датовых, то аудио) к основному до тех пор, пока CDRWin не выдаст ошибку записи.

Сначала я проверил первую и вторую защиты.

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

Тогда я решил попробовать последний способ, в глубине души переживая за последующую работоспособность своего рекордера. Но любопытство победило страх, и я приступил к тестированию. Temp-файлы размером от 9 до 11 Мбайт создаются специальной программкой genlock, также находящейся на дискете. Причем создается temp-файл только на диске С, после чего надо модифицировать cue-файл со специальным ключом. По завершении этой операции меня ждал первый сюрприз: общее количество созданных FreeLock'ом треков оказалось равным 100, хотя всем, кто хоть немного знаком со спецификацией CD-диска и основами записи на него, известно, что максимальное количество треков на диске - 99. Что это - маленькая недоработка авторов? Тем не менее я решил проверить и стал загружать этот cue-файл в CDRWin. Умная программа быстро сообразила, что тут что-то не так, о чем и не замедлила сообщить. Тогда я вручную вытер одну запись. После этого файл был обработан CDRWin'ом, и оказалось, что размер будущего диска равен 96 с небольшим мин. Я нажал кнопку записи и получил первое предупреждение о том, что диск получается больше 74 мин. Ничего, решил я, раз уж идти - так до конца, и проигнорировал сообщение. Но мой записывающий драйв, который, несомненно, намного разумнее и осмотрительнее, чем я, довольно недвусмысленно сообщил, что он отказывается выполнять столь безрассудные операции, и выкатил трей наружу.

Из всего этого можно сделать пару неутешительных выводов. Во-первых, программа неудобная. Во-вторых, работает она, мягко говоря, не везде, если работает вообще. Единственное, что я могу сказать в ее защиту,- очевидно, для последней операции, если ее все-таки разрешит CDRWin, нужен привод, поддерживающий функцию overburn - запись большего количества информации, чем предусматривает носитель. Мало того, что операция эта, как вы уже, наверное, поняли, весьма рискованная, так еще и поддерживают ее далеко не все драйвы.

В общем, как говорится, "овчинка выделки не стоит" - в данном случае по причине практически полной бесполезности программы даже для тех, кто записывает свои диски для игровой приставки PlayStation.

CD Protector

Итак, основная работа с данной программой производится с помощью другого продукта Nero Burning Rom. Как создать диск с помощью этой программы, подробно описано в help'е CD Protector'а. Правда, не очень понятно, каким образом изначально предполагается осуществлять запись двух аудиотреков, предусмотренных его программой,- в две сессии или в одну. По картинкам в help'е получается, что в одну, по описанию к этим картинкам - в две.

Впрочем, это не суть важно. Наиболее интересное в этой программе - кодирование главного исполняемого файла.

Но начнем по порядку, т. е. с тех самых аудиотреков. Сначала надо выбрать на будущем диске директорию, на которую они будут ссылаться. После этого - exe-файл, который вы будете кодировать, и ключ кодирования (любое шестнадцатеричное число). Также можете написать послание будущим пиратам о том, что выходка их не пройдет, и после этих операций нажимаете кнопку Accept! Все, на этом работа с CD Protector'ом заканчивается, и все остальное делается в Nero.

Результат получился примерно такой, как я говорил при описании самой программы: нам удалось создать с трудом читающийся диск, который CD Copier'ом по этой причине и не копировался. Что касается BlindRead'а, то он без проблем этот диск прочитал и списал на жесткий диск. Другое дело, что это не очень помогло, бесполезной оказалась и попытка просто списать данные на винчестер, потом записать диск еще раз оттуда. Тут в дело вступает то самое шифрование файла, и, когда вы запускаете этот exe-файл со скопированного CD или жесткого диска (т. к. он все равно ссылается на CD-диск), вам выдается то самое радостное сообщение, которое вы ввели для таких вот переписчиков. Так что шифрование файлов - это хорошо.

В заключение давайте представим себе такую комбинацию, как TZcopyprotection + CD Protector - на подобную возможность я намекал ранее. Для этого, правда, придется изучить правила написания cue-файлов. Я думаю, если поэкспериментировать, можно добиться больших результатов. И если у вас получится скомбинировать эти способы защиты, то продвинутому пользователю такой двойной преграды не обойти никак, да и хакеру придется повозиться. Так что дерзайте, господа, все в ваших руках. Удачной вам борьбы с пиратами!



Литература по компьютерной безопасности