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