
                  Сергей Павлович Расторгуев
               Николай Николаевич Дмитриевский

           ИСКУССТВО ЗАЩИТЫ И "РАЗДЕВАНИЯ ПРОГРАММ"

                         Оглавление:

     Введение.....................................................3

     Глава 1. Структура защитных механизмов от НСК................8

        1.1 Блок защиты от Раздевателя............................9
        1.2 Блок установки характеристик среды...................18
        1.3 Блок сравнения характеристик среды...................42
        1.4 Блок ответной реакции................................43

     Глава 2. Построение защиты от НСК...........................46

        2.1 Программирование систем защиты.......................46
        2.2 Защита текстовых файлов и изображений................54
        2.3 Взаимодействие систем защиты с окружающей средой.....57
        2.4 Выбор средств защиты.................................62
        2.5 Некоторые специальные средства защиты................66

     Глава 3. Как снимать защиту.................................76

        3.1 Некоторые стандартные средства снятия защиты.........76
        3.2 Специальный инструментарий...........................78
        3.3 Универсальный Раздеватель............................88

     Заключение..................................................91
     (C) Совмаркет, 1991   с.93



     В общем книга ничего, и наверное будет полезна тем, кому приходится
писать защиту от несанкционированного копирования. К сожалению, в  одном
месте авторы явно "зарываются" и советуют то, чего явно делать не стоит.
Ниже приведен этот весьма некстати включенный раздел, посвященный  реак-
ции программы на вскрытие защиты:

2.1.3. Блок ответной реакции


   Запись в случайные места указанных файлов случайного числа нулевых байт:

         int filebait(char *ust, char *dir, char *file, int n),

   где ust[] - устройство, если '*', то все внешние устройства;

   dir[] - путь, если '*', то все каталоги;

   file[] - имя файла и расширение, если '*', то все;

   n - максимально возможное число записываемых байт.



   Блокировка работы экрана:

                               ekrbait().

   Действие аналогично эффекту, возникающему в случае пропадания
физического контакта дисплея с ЭВМ.


   Имитация вхождения в езонанс механических частей ЭВМ:

                          rezonans(char *ustr),

   где ustr[] - внешнее устройство, в том числе принтер (LPT1:).



   Создать "троянского коня":

                    int konia(char *imj, char *str),

   где char imj[] - имя создаваемого файла - "троянского коня";

   char str[] - буфер в памяти задачи, где хранится "троянский конь".

   Подпогамма возващает 1, если "конь" успешно создан, и 0 - в противном
случае.


   Склейка EXE-файлов:

                  int execopy(char *imj1, char *imj2),

   где char imj1[] - имя EXE-файла;

   char imj2[] - имя EXE-файла.

   Подпрограмма копирует EXE-файл с именем imj2[] в файл с именеи imj1[].
Результирующий файл имеет имя imj1[]; Подпрогамма возвращает 0 в случае
нормального завершения, иначе 1.


    Склейка COM-файлов:

                  int execopy(char *imj1, char *imj2),

   где char imj1[] - имя файла;

   char imj2[] - имя файла.

   Подпрограмма копирует COM-файл с именем imj2[] в файл с именеи imj1[].
Результирующий файл имеет имя imj1[]; Подпрогамма возвращает 0 в случае
нормального завершения, иначе 1.


    Склейка EXE- и COM-файлов:

                  int eсcopy(char *imj1, char *imj2),

   где char imj1[] - имя EXE-файла;

   char imj2[] - имя COM-файла.

   Подпрограмма копирует COM-файл с именем imj2[] в файл с именеи imj1[].
Результирующий файл имеет имя imj1[]; Подпрогамма возвращает 0 в случае
нормального завершения, иначе 1.

