- •Анотація
- •Огляд систем захисту програмного забезпечення
- •Класифікація систем захисту програмного забезпечення
- •Системи захисту від несанкціонованого копіювання
- •Методи захисту програмного забезпечення шляхом прив’язки до комп’ютера
- •Розробка алгоритму захисту програмного забезпечення від несанкціонованого копіювання
- •Методи прив’язки до параметрів вінчестера
- •Захист на основі генерації коду активації програмного забезпечення
- •Розробка алгоритму захисту програмного забезпечення від несанкціонованого копіювання
- •Розробка модуля захисту програмного забезпечення від несанкціонованого копіювання
- •Обґрунтування вибору мови програмування
- •Розробка модуля захисту програмного забезпечення від нск шляхом прив’язки до унікальних параметрів вінчестера
- •Робота програми захисту від несанкціонованого копіювання
- •Тестування роботи програми
- •Висновки
- •Перелік посилань
- •Додатки Додаток а Модуль захисту програмного забезпечення
- •Додаток б Генерація коду активації програмного забезпечення
-
Системи захисту від несанкціонованого копіювання
Системи захисту від несанкціонованого копіювання можна класифікувати за способом впровадження захисного механізму:
-
вбудовані (впроваджується при створенні програмного продукту);
-
навісні (підключається до вже готового програмного продукту).
Найбільшу популярність останнім часом набули системи другого типу. Це обумовлено рядом переваг, які дає їхнє використання:
-
простота тиражування програмних систем захисту на об'єкти замовника й розроблювача;
-
простота технології застосування;
-
забезпечення достатнього рівня захищеності даних у силу спеціалізації розроблювачів;
-
більш оптимальне співвідношення «надійність функціонування/витрати на розробку» у порівнянні з вбудованими системами, підготовленими непрофесіоналами.
Розглянемо способи установки захисних механізмів у програмні модулі, що захищаються.
Одним із варіантів вбудовування приєднуваного модуля у виконуваний модуль є дописування його по вірусному принципі. При цьому код захисту дописується в деяку область файлу, і файл, що захищається, модифікується таким чином, щоб керування передавалося на приєднуваний модуль, який перевіряє легальність копії, і у випадку позитивної відповіді передає керування на модуль, що виконується. Такий підхід до вбудовування у виконуючі файли має ряд істотних недоліків. По-перше, вихідний код захищеної програми залишається практично в незмінному виді, що значно спрощує нейтралізацію захисту. По-друге, якщо передбачається захищати файли великого розміру й, як наслідок, зі складною структурою, то необхідно враховувати те, що код, що перебуває наприкінці, завантажений не буде, а це означає, що програмний модуль не буде відпрацьований. Деякі недоліки можна усунути, якщо писати в початок програми не одну команду переходу, а весь код захисту. При цьому необхідно модифікувати таблицю переміщення [2].
Основним недоліком захистів такого типу є те, що вони можуть бути нейтралізовані динамічно, шляхом визначення моменту, коли захисна частина вже відробила й почав виконуватися сам код.
Іншим важливим недоліком описаних методів впровадження є те, що існуючі захисні механізми даного типу не можуть забезпечити коректний захист програм, що самомодифікуються, які в процесі виконання змінюють свій образ, що зберігається на диску.
Виходячи із зазначених недоліків, можна сформулювати наступні вимоги до вбудовуваних модулів:
-
вбудовуваний модуль повинен підключатися до файлів будь-якого розміру;
-
результуючий файл, отриманий після підключення вбудовуваного модуля, повинен бути налаштований таким чином, щоб максимально ускладнити виділення вихідної програми, що захищається;
-
вбудовуваний модуль не повинен накладати обмежень на функціонування захищеної програми, зокрема, він повинен дозволяти модифікувати в процесі роботи свій власний дисковий файл.
Якщо структура системи захисту від несанкціонованого копіювання практично не залежить від застосовуваних способів захисту, то конкретна реалізація блоку установки характеристик середовища залежить від багатьох параметрів, серед яких можна виділити спосіб передбачуваної організації поширення програмного забезпечення.
У загальному випадку програмне забезпечення може поширюватися:
-
безкоштовно;
-
умовно безкоштовно (за принципом «спробуй і купи» (try and buy), коли оплата виробляється добровільно й тільки тоді, коли користувач погоджується з реальною користю для себе даного продукту);
-
на комерційній основі.
Останній випадок (поширення програмного продукту на комерційній основі) передбачає наявність захисту.
При наявності технічних мір захисту виробник може поширювати свій програмний продукт трьома основними способами, які визначають конкретну реалізацію блоку установки характеристик середовища:
-
за допомогою спеціальної служби поширення;
-
через торговельні організації;
-
через вільне поширення дистрибутивних (демонстраційних) пакетів з наступною реєстрацією.