Р. П. Шевчук // Опорний конспект лекцій з дисципліни „Методи та засоби захисту програмного забезпечення", для студентів напрямку „Комп’ютерні науки"



Pdf көрінісі
бет12/23
Дата10.09.2023
өлшемі0.66 Mb.
#477061
түріКонспект
1   ...   8   9   10   11   12   13   14   15   ...   23
Опорний конспект лекцій з дисципліни Методи та засоби захисту програмного забезпечення

4.4. Навісні захисти (протектори) 
Протектором називають програмних код, який вмонтовується у виконуваний 
файл та відповідає за правильне завантаження всіх змінних цього файлу в пам’ять. 
Практично для всіх форматів виконуваних файлів були розроблені алгоритми, що 
дозволяють додавати новий код так, щоб він виконувався до основної програми, не 
порушуючи при цьому її функціональності. Швидше за все, основні дослідження в 
цій області були виконані авторами вірусів, оскільки додавання тіла вірусу до 
програми є одним з основних методів зараження. Код, дані і ресурси зазвичай 
захищаються за допомогою шифрування. Алгоритм, що використовується не 
обов'язково повинен бути криптографічно стійким, оскільки ключ шифрування все 
одно неможливо зберегти в цілковитій таємниці. Дуже часто до шифрування 
застосовується стиснення даних, що дозволяє компенсувати збільшення розміру 
виконуваного файлу, що відбувається внаслідок додавання коду протектора. А іноді 
результуючий захищений файл навіть зменшується в розмірі в порівнянні з 
початковим файлом. 
При запуску захищеної програми управління відразу отримує код протектора, 
який виконує передбачені перевірки і розшифровує у пам'яті всі необхідні області, а 
також проводить налаштування таблиці адрес функцій, що імпортуються. Після 
успішного завершення процедури налаштування протектор передає управління на 
оригінальну точку входу (Original Entry Point, OEP) і починається виконання 
основної програми. 
Перевірки, що виконуються протектором до початку роботи програми, можуть 
бути різного роду. Це можуть бути перевірки, що стосуються наявності ліцензії (щоб 
без ліцензії програма просто не запускалася) або порівняння поточної дати із 
значенням, після якого програма повинна перестати працювати, а також спроби 
визначити наявність запущеного відлагоджувача. 
Протектори розроблялись з метою забезпечення захисту вмісту виконуваного 
файлу від дослідження і модифікації. Але часто виходить, що захищена програма по 
деяких характеристиках виявляється для користувача гірше, ніж та ж програма без 
захисту.


26 
 
4.5. Захист від несанкціонованого копіювання 
При захисті ПЗ від несанкціонованого копіювання використовуються методи, 
що дозволяю реалізовувати в ПЗ функції прив’язки процесу виконання коду 
програми до ПК на яких дана програма виконується. Інстальована програма для 
захисту від копіювання при кожному запуску повинна виконувати наступні дії: 

аналізувати програмно-апаратне середовище ПК, на якому вона запущена та 
формувати на основі цього аналізу характеристики свого середовища 
виконання; 

провіряти ідентичність середовища виконання шляхом порівняння поточних 
характеристик з еталонними, що зберігаються на жорсткому диску ПК; 

блокувати свій запуск у випадку неспівпадання поточних характеристик з 
еталонними. 
До основних методів захисту від копіювання можна віднести: 

криптографічний метод. Для цього методу інсталятор програми повинен 
виконувати: 1. аналіз програмно-апаратного середовище ПК, на якому він 
інстальована програма та формувати на основі цього аналізу еталонні 
характеристики середовища виконання програми; 2. проводити запис 
криптографічних перетворень еталонних характеристик програмно-апаратного 
середовище ПК на жорсткий диск. 

метод прив’язки до ідентифікатора. Зміст даного методу заключається в тому, 
що на жорсткому диску при інсталяції захищеної від копіювання програми 
формується унікальний ідентифікатор, який звіряється при кожному запуску 
програми. При відсутності чи неспівпадінні цього ідентифікатора програма 
блокує своє виконання.

метод маніпуляції з кодом програми. Є два способи реалізації даного методу: 1. 
включення в тіло програми пустих модулів, на які імітується передача 
керування; 2. зміна початку захищеної програми таким чином, щоб стандартний 
дизасемблер не зміг її правильно дизасемблювати.


Достарыңызбен бөлісу:
1   ...   8   9   10   11   12   13   14   15   ...   23




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет