%BEGIN {Protgen.exe} 
%AUTHOR: {Александр А.Фирсов , т.(044)-441-1010(р)  (044)411-5634(д),адрес К-191 ул.Кр.'Аврора'
д.1/2 кв.51,КПИ ФИВТ корп.18 лаб.337
}
%RESUME: {Конфигуратор драйвера защиты жесткого диска}
%VERSION: 1.1
%STATUS: {Freeware}
%ISSUE: {C}
%CATALOG: {PROTECT}
%ANALOGS: {неизвестны,точнее - неизвестны рабочие.Предшественники не являются
аналогами. Некоторые "Стражи" выполняли данные функции, однако их объем(тут -
c 400 байт в SYS-режиме) и отсутствие настройки на конкретную  конфигурацию -
делало их малоэффективными. Наиболее  функционально  полным (но  взломанным),
является ADM. Коммерческие продукты, увы, не пробовал.}

%OS: {MS-DOS > 3.3}

%LIMITATION: {работает только на >186 ,EGA совместимых}

%HISTORY:  { версия является побочным продуктом  разработанного  пакета  рас-
пределения доступа  к жесткому  диску (обращайтесь). Возможны  незначительные
дополнения - не более. }

%LANGUAGE: { Borland C++,TASM }

%СОММЕNTS: { Программа генерирует COM-файлы, работающие и в SYS-режиме.
 Т.е. возможная установка в CONFIG.SYS:
DEVICE=C:\SYS\MYPROT.COM
 или
INSTALL=C:\SYS\MYPROT.COM
	Резидентная часть перехватывает 13h прерывание( доступ к диску),
обеспечивая на интервале следующие режимы доступа:
WRITE - без ограничений
READ  - только чтение, при попытке записи выдается ошибка "защищита записи"
SYS   - аналогично, предупреждая об возрате ошибки
HIDEN - запрет всех операций
IGNOR - псевдозапись - возврат без обработки.
	Для задания конфигурации программа сканирует диск, формируя  начальную
таблицу адресов.
	В таблице указано начало интервала ( номер цилиндра, а по -F9- сектора,
головки и диска) с заданным атрибутом. Поскольку  режим доступа осуществляется
поиском первого превышающего адреса в таблице, она должна  быть  отсортирована
-F8-. Два смежных интервала с одним атрибутом суть один, а, значит, нет 
необходимости хранить вторую запись. Ее можно удалить -Del- или оптимизировать
всю таблицу -F7-.
	Для защиты отдельных областей , вычислите  их  физическое ( на  уровне 
int13) местоположение, продублируйте ближайшую снизу  запись -Ins- , настройте
адрес и установте режим. Не забудьте, что интервал  будет длиться до следующей
записи.
	Драйвер запрещает  трассировку int 13, а  при попытке предупреждает  и 
ЖДЕТ нажатия Escape. Аналогичны его действия при попытке изменения областей  с
SYS атрибутом. Рекомендую кадый раз поинтересоваться причиной попытки перехода
через дозволенные рамки, вдруг это вирус, а не AIDSTEST трассирует 13 прерыва-
ние, или кто желает изменить загрузочную запись.
	Для некоторых любителей брать у ДОСа обработчик int13( Sentinel & др.)
эта возможность отбирается.
	В несколько  более  простом  режиме  инсталятор  может  сам  исполнять
функции драйвера и садиться в резидент. Количество занимаемой  памяти при этом 
так же , как и у драйвера , не превысит 400 байт + PSP + ENVIRONMENT. Ситемные 
области  будут  отрабатываться  с  атрибутом  SYS , а остальные - по командной
строке. Интерфейс для обнаружения себя в памяти отсутствует. Снять защиту воз-
можно лишь RELEASE или аналогичной утилитой. Узнать ключи можно по /?.
	Извесна ошибка: при запуске с коммандной строки - не восстанавливается
вектор прерывания 0 - ошибка деления на 0.
}
%END
? Прости, многоуважаемый User, за качество интерфейса. Это первая проба про-
? граммировать на C++.
? 
