Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Методи захисту програм від дослідження

Для захисту програми від дослідження необхідно застосовувати методи захисту від дослідження файлу з її виконуваним кодом, що зберігається на зовнішньому носієві, а також методи захисту виконуваного коду, що завантажується в оперативну пам'ять для виконання цієї програми.

У першому випадку захист може бути заснований на шифруванні секретної частини програми, а в другому - на блокуванні доступу до виконуваного коду програми в оперативній пам'яті з боку відладчиків. Крім того, перед завершенням роботи програми, що захищається, повинен знищуватися (наприклад, обнулятися) весь її код в оперативній пам'яті. Це запобігає можливості несанкціонованого копіювання з оперативної пам'яті дешифрованого виконуваного коду після виконання програми, що захищається.

Таким чином, програма, що захищається від дослідження, повинна включати наступні компоненти:

  • ініціалізатор;
  • зашифровану секретну частину;
  • деструктор (деініціализатор).

Ініціалізатор повинен забезпечувати виконання наступних функцій:

  • збереження параметрів операційного середовища функціонування (векторів переривань, вмісту регістрів процесора і т.д.);
  • заборона всіх внутрішніх і зовнішніх переривань, обробка яких не може бути запротокольована в програмі, що захищається;
  • завантаження в оперативну пам'ять і дешифрування коду секретної частини програми;
  • передача управління секретній частині програми.

Секретна частина програми призначена для виконання основних цільових функцій програми і захищається шифруванням для попередження внесення до неї програмної закладки.

Деструктор після виконання секретної частини програми повинен виконати наступні дії:

  • обнулення секретного коду програми в оперативній пам'яті;
  • відновлення параметрів операційної системи (векторів переривань, вмісту регістрів процесора і т.д.), які були встановлені до заборони неконтрольованих переривань;
  • виконання операцій, які неможливо було виконати при забороні неконтрольованих переривань;
  • звільнення всіх незадіяних ресурсів комп'ютера і завершення роботи програми;

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

Для підвищення ефективності захисту програм від дослідження необхідне внесення до програми додаткових функцій безпеки, направлених на захист від трасування. До таких функцій можна віднести:

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

Для захисту програм від дослідження за допомогою дизасемблерів можна використовувати і такий спосіб, як ускладнення структури самої програми з метою заплутування зловмисника, який дизасемблює цю програму. Наприклад, можна використовувати різні сегменти адреси для звернення до однієї і тієї ж області пам'яті. В цьому випадку зловмисникові буде важко здогадатися, що насправді програма працює з однією і тією ж областю пам'яті.


Читайте також:

  1. Cisco Packet Tracer - Знайомство з програмою. Інтерфейс
  2. I. Введення в розробку програмного забезпечення
  3. II. Вимоги до складання паспорта бюджетної програми
  4. II. Із програм для 11 класу
  5. II.1 Програмне забезпечення
  6. III. Етапи розробки програмного забезпечення
  7. III. Навчально-програмний етап.
  8. III. Програма
  9. III. Програма
  10. Аварійно-рятувальні підрозділи Оперативно-рятувальної служби цивільного захисту, їх призначення і склад.
  11. Авілум – “син чоловіка” – повноправна людина, охороні його життя, здоров’я, захисту його майнових інтересів присвячена значна частина законника.
  12. Автоматизація водорозподілу на відкритих зрошувальних системах. Методи керування водорозподілом. Вимірювання рівня води. Вимірювання витрати.




Переглядів: 1043

<== попередня сторінка | наступна сторінка ==>
Класифікація засобів дослідження програм | Аналіз програм на етапі їх експлуатації

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.003 сек.