ЗАЩИТА ИНФОРМАЦИИ
(c) Himik's ZxZ/PoS-Wt
──────────────────────────────────────────
┌─
│
└─егодня я хочу поговорить на тему за-
щиты информации от несанкционированного
копирования. Существует великое множество
aлгоритмов защиты и анализа информации,
но в каждом из них есть свои недостатки.
Скажу сразу: идеальную защиту написать не-
возможно, т.к. она будет все равно слома-
на в самые кратчайшие сроки. Сколько на
нашей памяти примеров? Сейчас постараюсь
вспомнить некоторые из них:
1. Disk Control Utility
(DCU by N.Rodionov).
Надо отметить, что программа была написана
просто великолепно! В те времена вряд ли
можно было найти достойную замену, но вот
проблема: в самой последней версии была
использована система защиты от копирова-
ния. В чем ее суть? При запуске программа
думала некоторое время, а потом ругалась,
что она есть несанкционированная копия. В
чем был подвох? Мы сами долгое время не
знали, что нам делать, но вот однажды нам
в руки попала авторская программа для
"санкционирования" копии DCU. Сначала мы
ее упорно юзали, а потом решили посмот-
реть, что там происходит. Если мне сейчас
не изменяет память, на нулевой дорожке
диска создавался сектор с номером #FB
(253), а при запуске DCU давалась команда
на чтение этого сектора, и на основе ре-
зультатов чтения строилось дальнейшее уп-
равление программой. Все было просто: если
сектор есть, то он читался, и ошибки не
было, а если сектор отсутствовал, то про-
исходил переход по ошибке, обработку кото-
рой брала на себя DCU - в результате, от-
ловив ошибку, делаем вывод - сектора нет,
а значит программа скопирована нелегаль-
но. Такую защиту можно скопировать практи-
чески любым копировщиком.
2. ZX-Format Electronic Computer Magazine.
В первых номерах защита как таковая отсут-
ствовала, но потом появилась программа
MicroProtector, с помощью которой и стал
защищаться данный журнал. Конечно, понача-
лу были проблемы с копированием, но потом
в наши руки попал Mc.Donald Copy, который
делал отличную копию диска.
Чуть позже появилась новая версия Micro-
Protector: при попытке скопировать защиту
Mc.Donald выдавал на экран кучу атрибутов
и зависал. Вот облом: защита стала круче,
ломать руками было лень, но делать нечего,
пришлось ломать.
В чем суть защиты? Тут алгоритм посложнее,
чем в первом примере, т.к. работа защиты
построена на изменении индексного поля до-
рожки, вписывая туда свои <гадостные> мет-
ки. Почему мы не могли создать копию? Ал-
горитм копировщика построен на анализе ин-
дексного поля дорожки для воссоздания фор-
мата диска. Ну естественно, если там попа-
дались совсем нереальные комбинации байт,
то копировщик просто сходил с ума и зави-
сал. Куда ставилась защита? Тут все прос-
то: в нужный вам файл, к примеру, boot.B,
прописывался кусок кода (как вирус?), ко-
торый считывал и проверял наличие меток на
диске, и на основе полученного шифр-кода
расксоривал тот файл, который надо было
запустить, а потом передавал ему управле-
ние.
Какие в этом минусы? Ну, во-первых, сразу
можно определить, где сидит анализатор за-
щиты, и разобрать его на мелкие запчасти,
а впоследствии снять защиту к чертям.
Эту особенность не пропустили мимо себя
SysOp (SP) и Sleeping Man (все из группы
Power Of Sound) и написали антисистему для
данного типа защиты. Программа получила
название S.A.P.S. (Super AntiProtection
System). Кроме системы MicroProtector, эта
программа снимала защиту Grid v1.0, о ко-
торой я скажу позже.
3. UFO: Enemy Unknown (by V. Mednonogov)
Так уж случилось,что с этой игрой у нас не
было особых проблем, т.к. у нас был копи-
ровщик, который делал рабочую копию защи-
щенного диска.
Теперь заметим, что это, пожалуй, самые
продвинутые защиты тех времен, но механизм
защиты действует и по сей день. Заметим,
алгоритм работы - это изменение и анализ
индексного пространства дорожки диска. Ес-
ли кто не знает, то в этом пространстве
пишется служебная информация для контрол-
лера, такая как: размер сектора, номер
сектора и дорожки, а также синхронизирую-
щее пространство и еще некоторые прибамба-
сы.
По моим данным, первая программа, которая
использовала подобный алгоритм защиты, но
уже на целый диск с более-менее спрятанной
системой анализа - Grid Protection System
v1.0. Мне, как одному из авторов данной
программы, был сделан заказ из Москвы на
ее написание от местного рыночного бары-
ги - SoftStar'а. Мной были разработаны и
расписаны алгоритмы защиты и анализа на
бумаге, а всю кодовую часть делал Alex
Heather/PoS. Но SoftStar оказался нату-
ральным барыгой, и когда программа была
передана ему, мы не получили от него ниче-
го.Я говорю не о деньгах, а о новом ПО,
которое у него было всегда. А вскоре мы же
делаем S.A.P.S., который снимает эту защи-
ту, да и защита изнутри оказалось малость
дырявой. Первый блин комом. (*.com)
Теперь я скажу свое мнение о том, что дол-
жно быть в защищенном диске (пример для
моноблоков):
1. Спрятан каталог диска, или вообще от-
сутствует.
2. Желательно, по всевозможным командам
TR-DOS должен происходить запуск диска.
3. Должен вестись учет файлов на диске, и
в случае, если на диске всего один
файл - сразу его запустить, пропустив
boot.
4. Защита должна занимать как можно меньше
места на диске.
5. Диск не должен приводить в зависание
копировщики, чтобы облом приходил не
сразу, а после 30-и минутного копирова-
ния.
6. Basic-файлы на диске должны работать
только в защищенном режиме, т.е. если
некий умник полез ковыряться диск-док-
тором в данных на диске с целью просто
найти ту программу, которую ему надо с
этого диска, чтоб его ожидал <Розовый
Обломинго>.
7. Процесс запуска защищенного диска дол-
жен быть простым и быстрым.
8. Даже если запущенный boot сохранили
MAGICом или еще какой хренью, в памяти
мы не должны найти каталог диска.
9. Стабильная работа на всех типах диско-
водов.
10. Стопроцентный запуск программ из boot.
Итак, мы получили кучу требований к защи-
те, но я не сказал самого главного - защи-
та должна быть такой, которую нельзя ско-
пировать самыми продвинутыми копировщика-
ми. Лично я знаю: такая защита существует,
и она есть в приложении к этому номеру га-
зеты. Это две версии Grid v2.0 (for mono-
block files) и Grid v3.0 (for read with
name programm). Сразу скажу: на эмуляторах
эта вещь не будет работать, т.к. нет еще
такого формата образа диска, в котором со-
держалась бы вся та индексная информация,
которая используется в данном типе защиты.
Ее нынешний недостаток в том, что можно
проследить весь ход событий анализатора с
помощью разнообразных мониторов-отладчи-
ков, но это не даст особого результата.
Скопировать, а главное, написать антипро-
тектор пока еще не удалось никому. Может
быть, просто не брались, а может - не смо-
гли.
Теперь о самой программе.
1. Каждый Basic-файл на диске оригинально
шифруется и расшифровывается непосредст-
венно перед запуском в памяти.
2. Индексная метка на диске генерируется
всегда случайным образом и имеет длину до
64 символов, включая тройную систему пере-
счета.
3. Кроме случайной метки на диск записыва-
ются специальные авторские метки, по кото-
рым делается самый первый анализ диска.
4. Каталог диска модернизируется, делится
на несколько разнообразных частей и ориги-
нально шифруется по частям.
5. Записываемый на диск boot имеет длину
всего 16 секторов с учетом музыкального
сопровождения.
6. Весь каталог и первая часть системы
анализа диска находится в нулевой дорожке
диска.
7. Анализ защиты делается и при установке,
т.е. ставим защиту, а потом тестируем на
возможность использования, и если есть
ошибки, то все ключи генерируются снова, и
диск защищается повторно до тех пор, пока
метка не будет идеальной. Это приводит к
повышению процента работоспособности защи-
ты на других компьютерах.
8. В анализатор метки вставлены временные
задержки, чтобы избежать асинхронной рабо-
ты на дисководах разных производителей, а
также на турбированных контроллерах диско-
вода.
9. Если на диске всего один файл, то после
проверки защиты он сразу стартует. Это
удобно, если вы защитили свою игру - зачем
лишний раз выводить boot.
Думаю, хватит. Каждый, если захочет, смо-
жет протестировать данную защиту сам.
У версии 2.0 есть один недостаток: перед
защитой диск надо подготовить, после чего
записать на него нужный софт, а уже после
этого ставить защиту. Что делает подготов-
ка? Просто обнуляет каталог диска и уста-
навливает первую свободную дорожку не
один, а два. Это из-за того, что boot име-
ет фиксированные данные о расположении на
диске.
В версии 3.0 такого нет, да там, собствен-
но, и защита более открытая, т.к. нет ав-
тостарта диска, и каталог частично есть.
Во всяком случае, в 1996 году скопировать
защищенные диски было невозможно ни на ZX,
ни на IBM. Сейчас тоже вряд ли.
──────────────────────────────────────────