IzhNews #0D
28 февраля 2003
  Софт  

Софт - разговор на тему защиты информации от несанкционированного копирования на ZX Spectrum.


Программное обеспечение Дискуссии и размышления

       ЗАЩИТА ИНФОРМАЦИИ

(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. Сейчас тоже вряд ли.
──────────────────────────────────────────





Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
О воровстве - Онтология плагиата: критика графического редактора Excess Deluxe Paint.
Обзор - Ассемблеры, которые мы НЕ выбираем.
SOFTWARE - Трактат о великой пользительности некоторых авторский разработок.

В этот день...   18 ноября