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. Сейчас тоже вряд ли. ──────────────────────────────────────────
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября