Копирование программ, особенно компьютерных игр, весьма
хитрая процедура из-за того, что ряд программ имеет очень
сложную структуру, состоит из большого количества разнотипных
файлов, не всегда отвечающих стандартам ОС. Ситуация осложняется
большими размерами файлов, занимающими иногда все ОЗУ без
остатка, включая экран и область системных переменных ОС,
что приводит к ее блокированию. Если вы имеете дело с чужой
(фирменной) программой, то загрузив ее, вам не так просто ее
выгрузить. Во-первых, она автостартует и остановить ее очень
сложно, во-вторых, вам неизвестны адреса блоков, из которых она
состоит. Однако все эти проблемы можно решить с помощью
специальных программ копировщиков, которых разработано очень
много. Но и копировщик может оказаться бессилен, если в
копируемой программе предусмотрены специальные, и порой весьма
изощренные, меры защиты от копирования. Лля преодоления таких
препятствий разработаны специальные программы копировщики,
которые позволяют копировать защищенные программы. Но даже если
удается скопировать программу, далеко не всякую программу можно
прочитать, внести в нее изменения, так как помимо защиты от
копирования во многих фирменных программах предусмотрены меры
защиты программ от их остановки и модификации. Ваша попытка
вмешаться в программу может привести к самым разным последствиям
- от зависания компьютера до полного обнуления его памяти -
в зависимости от того, какое "наказание" придумал автор зашиты.
Рассмотрению методов, позволяющих преодолеть встроенные
в программы средства зашиты и все-таки прочитать программу,
а при необходимости и модифицировать ее, и посвящено это
пособие.
1. ОБЩИЕ СВЕДЕНИЯ О СПОСОБАХ ЗАШИТЫ ПРОГРАММ
Напомним вкратце, что происходит при нормальном
считывании программы с ленты в компьютер. Перед загрузкой
программы убедимся, что память компьютера очишена.
Обычно СПЕКТРУМ выполняет SAVE и LOAD с одной постоян-
ной скоростью порядка 1500 бод (бит/сек)
В течение первых 1-2 секунд считывания на экране видны
широкие красные и синие полосы, а также слышен длительный
звук. Это так называемый пилот (или пилоттон, или просто
тон ) , который позволяет компьютеру синхронизироваться с
сигналом ленты, которую он будет считывать и обеспечивает
надежность ввода кодов в память компьютера. Затем появляются
мерцающие тонкие желтые и синие полоски, свидетельствующие
о том, что компьютер считывает в память байты информации.
которые могут быть и бейсиком, и машинными кодами, и данными.
Пилот вместе с последующими байтами называется блоком кодов
При считывании отдельных программ вместо плавного
перемещения по экрану красных и синих полос наблюдается
резкое (рывками) их перемещение по экрану, сопровождающееся
отрывистыми звуковыми сигналами. Это прерывистый пилот (или
джеркитон) , разработанный для защиты программ от копирования.
Его часто применяют такие фирмы как "ULTINAME" и "OCEAN".
Иногда применяют более высокие скорости считывания
информации, при этом ширина желто - синих полос на экране
меньше, а тон звука, сопровождающего чтение, выше. Надежность
считывания информации при таком способе зашиты, конечно, ниже.
Ряд фирм для зашиты своих программ от копирования разра-
ботали свои пилоты. Например может применяться значительно
более узкий пилот ( порядка 0,1 сек. вместо обычных 1-2
секунд) , или наоборот более широкий пилот. При этом бордюрные
линии становятся широкими желто-синими. Это так - называемый
ТОНИНГ -метод.
Можно записать программу без зазоров между блоками кодов,
при этом при прослушивании записи слышен один непрерывный
Тон, а полосы на экране будут широкими желто - синими.
Непрерывный тон будет сбивать копирующие программы,поскольку
они будут ждать перерыва.
Могут задаваться блоки избыточной длины ( более 5 0 К ) ,
или блоки длиной 17 байтов ( так называемые фальшхэдеры),
которые воспринимаются копировщиком как заголовок очередного
блока, в то время как они таковыми не являются.
Могут загружаться блоки с замеряемой паузой между ними.
Одни методы защиты могут применяться в комбинации
с другими, что повышает действенность защиты.
Обычно принцип их действия состоит в том, что первый блок
программы является бейсик-загрузчиком, которых подготавливает
загрузку второго блока. Второй блок в машинных кодах готовит
нестандартную загрузку прочих блоков, которые уже не могут
быть никуда загружены, где предварительно не отработал второй
блок, в том числе и в копировщик.
Лля копирования защищенных программ разработан ряд
специальных программ копировщиков (например LERM 7) , которые
со многими защитами справляются.
Если программа скопирована и считана в память компьютера,
то следующим препятствием для ее прочтения выступают встроен-
ные в программу защиты, которые не позволяют остановить
программу, "пролистать" ее, кодируют программу, тем или иным
способом делают ее текст нечитаемым, или просто стирающие DOB
память компьютера при любой попытке вмешательства в программу.
6 числе основных направлении, по которым идет разработка
методов защиты программ. можно назвать следующие:
- исключение возможности остановки программ:
- исключение возможности подачи команды LIST;
- сделать листинг программы нечитаемым;
- кодирование программ специальными кодирующими процедурами.
Приступим к подробному рассмотрению наиболее распространенных
способов зашиты программ.