"С.П.Расторгуев, А.Е.Долгин "Как защитить информацию" (пособие по борьбе с хакерами)" - читать интересную книгу автора

каких-либо производстводственных мощностей, в то же время обеспечивают
достаточный уровень защищенности. Впрочем, надежность в этом случае
определяется знанием последних достижений общей теории
программирования и умением разработчика использовать специальные
приемы. Естественно, что новинки систем охраны влекут и
совершенствование способов "взлома" - извечное противоборство "щита и
меча".
Вот некоторые из наиболее популярных приемов защиты.
Преобразование ФОРМАТА ДИСКЕТЫ - наиболее простой путь
предотвращения ее копирования средствами DOS. Даже незначительные
изменения в структуре или расположении системных таблиц или каталога
приводят к тому, что дискета становится непонятной "операционке".
Можно "перепутать" адреса секторов, на которых расположены защищаемые
файлы; пометить отдельные кластеры, занятые данными, как сбойные;
переделав запись в BOOT-секторе, изъять из доступного системе
пространства несколько треков (дорожек); в конце-концов - просто
применить иную структуру, взяв за основу аналог из других операционных
систем (например, RT-11 от ДВК). Разумеется, работать с такой дискетой
сможет только специальная программа, полностью заменяющая стандартные
функции ввода-вывода.
Одним из способов ШИФРАЦИИ данных является их архивация по
специальным алгоритмам, что позволяет к тому же и сэкономить место на
магнитном носителе. Правда, сами кодирующие блоки программ оказываются
слабым местом. Их исследование под отладчиком или дизассемблером
позволяет хакеру понять алгоритм шифрации и повторить его. Поэтому
особенно актуальна ЗАЩИТА ОТ ИССЛЕДОВАНИЯ. Важную роль здесь играет
стиль программирования. В отличие от общепринятых "наглядности" и
"структурности", для охранных механизмов следует применять
"изощренность", то есть такой стиль, который позволит получить сложный
и запутанный исполняемый модуль. Еще лучше - если он будет
саморазворачивающимся в процессе работы (программа "дописывает" свои
части, отсутствующие на винчестере). Очень полезными могут оказаться
приемы, о которых журнал "ТМ" рассказывал в 1986 - 1988 годах в
разделе "Клуб электронных игр" (использование кода оператора в
качестве операнда, набора констант по прямому назначению и как
подпрограммы, передача управления в середину сложной двух-трехбайтовой
команды, проход "своим ходом" через данные и другие хитрости, не
только экономящие память, но и запутывающие алгоритм).
Но это пассивная защита, а в качестве активной - рекомендуем
ПРЕСЕКАТЬ ПОПЫТКИ ИССЛЕДОВАНИЯ ИЛИ НЕСАНКЦИОНИРОВАННОГО "РАЗМНОЖЕНИЯ":
периодически определять контрольную сумму всех кодов образа задачи в
процессе работы (не "отрезан" ли какой-либо блок); сравнивать
свободную память с тем объемом ОЗУ, к которому программа привыкла или
приучена (не запущены ли паралельно резидентные "отмычки"); проверять
вектора прерываний (нет ли их перехватов); используя компьютерный
таймер, контролировать время прохождения отдельных частей (выявление
"остановов" и "потактового режима" отладчика).
Изучение операционных систем, аппаратных особенностей ЭВМ
позволяет выделить индивидуальные отличия и использовать их для
НАСТРОЙКИ НА КОНКРЕТНУЮ ПЭВМ, СИСТЕМУ или ДИСКЕТУ, что делает