Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
IBIZI.doc
Скачиваний:
38
Добавлен:
21.04.2019
Размер:
2.31 Mб
Скачать
    1. Введение ограничений на использование программного обеспечения

В одном из способов защиты программного обеспечения от незаконного использования применяются ограничения по:

  • времени его эксплуатации;

  • количеству запусков;

  • его перемещению для использования на других машинах.

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

Еще одним способом ограничить использование программного обеспечения является введение счетчика запусков. Обычно такой счетчик устанавливают в:

  • CMOS памяти;

  • теле программы или в специальных числовых файлах;

  • загрузочном секторе диска(вместо информации о версии DOS);

  • FATе (в первом элементе таблицы, обычно заполненном кодом FFF);

  • резервных секторах;

  • сбойных секторах;

  • системном реестре;

  • за концом одного из файлов на локальном диске.

Уменьшая значение счетчика при каждом запуске, контролирующая часть программы следит за ним и при достижении нулевого значения выполняет предусмотренные разработчиком действия.

Вопросы по теме

13Защита исходных текстов и двоичного кода

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

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

    1. Противодействие изучению исходных текстов

Вообще говоря, открытость исходных текстов - понятие расплывчатое. Вопрос: "Является ли бинарная программа в 1 Kбайт более открытой, чем миллион строк исходников без адекватной инфраструктуры и документации?" В самом деле, мало иметь исходный текст - в нем еще предстоит разобраться. Достаточно удалить все или, по крайней мере, большую часть комментариев, дать переменным и функциям бессмысленные, ничего не говорящие имена, как в программе не разберется и сам автор. А наличие и полнота комментариев к исходному тексту в контракте, как правило, не оговаривается. Получается, что контракт может быть формально выполнен, а предоставленный заказчику исходный текст практически бесполезен. "Практически" не означает "полностью": такой простой прием не позволит обеспечить абсолютную защиту.

Воспрепятствовать анализу можно отделением, абстрагированием алгоритма от языка реализации. Например, реализовать критичные для раскрытия компоненты на машине Тьюринга, а ее поддержку обеспечить на целевом языке. Уровней абстракции может быть несколько - чем их больше, тем труднее осуществлять анализ. Помимо машины Тьюринга для этой цели подходят стрелка Пирса, сети Петри и т.д. Такой подход дает превосходный результат, но требует глубоких математических знаний и значительных накладных расходов - программировать на машине Тьюринга намного сложнее, чем на ассемблере. Отдельный вопрос - эффективность полученной программы. Для многих проектов это неприемлемо, поэтому приходится использовать другие приемы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]