ЗАЩИТА ОТ КОПИРОВАНИЯ
(С) 2001 Макс
-----------------------------------------
Привет, хакеры! На прощание решил по-
делиться с вами своим изобретением - за-
щитой от копирования Спектрумом. Сразу же
предупреждаю, что где-то какой-то маздай-
ный копировщик всё же копирует её, но это
не важно - спектрумист-реальщик не сможет
ничего скопировать, а это уже что-то!
В любом случае на рекламу в последних
номерах ни одна блядь не соизволила отк-
ликнуться, так что мой текст будет пустой
тратой времени...
Ладно, хер с вами, читайте. Итак, для
реализации данной фишки требуется наличие
кэша любого размера, лишь бы порты ВГ-шки
были в него заведены (читал где-то, что и
такая дурь бывает, как отсутствие заведе-
ния портов - зачем тогда кэш ставить?).
Выбери трек для защиты и превратись в
автора DCU или FUT`а - придётся создавать
образы трека в ОЗУ, а затем их записывать
на диск... Да, мраки, но по другому никак
не получится. Итак, создай образ трека на
любое количество секторов, но в начале ты
сделай маленький сектор байт на 10. Да, и
не удивляйся! Форматни полученным образом
трек на диске.
Следующим действием будет изврат: надо
набрать подпрограммы (можешь взять гото-
вые из ПЗУ tr-dos`а и переписать на дру-
гой адрес) работы с ВГ-шкой. Перебрось их
в кэш на любой адрес, но по адресу #3D00
надо сделать переход на них. Собственно,
весь алгоритм защиты можно всунуть в кэш,
т.к. он не велик.
Короче, набери последовательность типа
#F5, #F6, #F7, #F7, #F7 или что-то около
этого на количество 1-го короткого секто-
ра, а затем подпрограммой записи сектора
(своей, естественно) запиши эту последо-
вательность в короткий сектор. Да, забыл
сказать, что в подпрограммах записи надо
сделать цикл проверки на количество запи-
сываемых байт и по их окончании прервать
операцию командой "принудительное преры-
вание". Её код ищи в книге Родионова. По-
лучился "нормально" записанный короткий
сектор.
Далее надо немного потрахаться - зате-
реть начало сектора, чтобы осталась толь-
ко та последовательность, которая была в
коротком секторе. Это делается элементар-
но: создаёшь поле пробелов и даёшь коман-
ду форматирования на защищаемый трек, но
здесь тоже надо контролировать количество
записываемых пробелов, чтобы избежать за-
парывания данных сектора. Прервать опера-
цию "формат" надо всё той же командой для
пренудительного прерывания.
Работа эта чрезвычайно нудная вначале,
но потом, когда параметры для удаления
заголовка сектора будут приблизительно по
норме подобраны - всё будет просто и эф-
фективно! Рекомендую весь процесс зацик-
лить, но с аварийным выходом при неудаче,
а также с успешным завершебнием работ.
Ну как, понятно изложил? Это не бред -
именно такая защита применялась на игруш-
ке "Чёрный Ворон. Новые Миссии" моего из-
готовления. Можете убедиться сами, если у
вас диски не взломанные.
Ладно, пора закругляться. Извиняюсь, я
поленился выковыривать алгоритм защиты из
огромного листинга программы-создателя и
поэтому ограничился только теорией. Коро-
че, прояви смекалку и сам напиши код! А я
уже ушёл в нирвану - мне пофиг всё...
Other articles: