3. Захист від дослідження ПЗ створеного за допомогою технології .NET

  3.1 .NET Framework

Microsoft .NET— програмна технологія, запропонована корпорацією Microsoft як платформа для створення як звичайних програм, так і веб-програм. Багато в чому є продовженням ідей та принципів, покладених в технологію Java.

Одною з ідей .NET є сумісність служб, написаних різними мовами.

Кожна бібліотека (збірка) в .NET містить інформацію про свою версію, що дозволяє усунути можливі конфлікти між різними версіями збірок.

.NET — кросплатформена технологія, на даний момент існує реалізація для платформи Microsoft Windows, FreeBSD (від Microsoft) і варіант технології для ОС Linux в проекті Mono (в рамках угоди між Microsoft з Novell).

Захист авторських прав відноситься до створення середовищ виконання (CLR — Common Language Runtime) для програм .NET. Компілятори для .NET випускаються багатьма фірмами для різних мов вільно.

.NET поділяється на дві основні частини — середовище виконання (по суті віртуальна машина) та інструментарій розробки.

Середовища розробки .NET-програм: Visual Studio .NET (C++, C#, J#), SharpDevelop, Borland Developer Studio (Delphi, C#) і т. д. Середовище Eclipse має додаток для розробки .NET-програм. Програми також можна розробляти в текстовому редакторі та використовувати консольний компілятор.

Також як і технологія Java, середовище розробки .NET створює байт-код, призначений для виконання віртуальною машиною. Вхідна мова цієї машини в .NET називається CIL (Common Intermediate Language), також відома як MSIL (Microsoft Intermediate Language), або просто IL. Застосування байт-кода дозволяє отримати кроссплатформеність на рівні скомпільованого проекту (в термінах .NET: збірка), а не на рівні початкового тексту, як, наприклад, в С. Перед запуском збірки в середовищі виконання (CLR) байт-код перетворюється вбудованим в середовище JIT-компілятором (just in time, компіляція на льоту) в машинні коди цільового процесора.

3.2 Декомпіляція .NETзбірок за допомогою .NET Reflector

У зв’язку з тим, що програми створені за допомогою .NETкомпілюються у проміжний MSILкод, а не у звичайні машинні коди, декомпіляція таких програм стає досить простою. Одним із найбільш функціональних декомпіляторів для .NETє .NETReflector.

.NET Reflector — безкоштовна утиліта для Microsoft .NET, комбінуюча браузер класів, статичний аналізатор и декомпілятор.

Програма може використовуватися для навігації, пошуку та аналізу вмісту. NET-компонентів, а також збірок і переводити двійкові дані у форму, придатну для читання людиною. Reflector дозволяє проводити декомпіляцію. NET-збірок на мови C#, Visual Basic.NET і MSIL. Reflector також включає дерево викликів, яке може використовуватися для навігації вглиб IL-методів з метою визначення, які методи вони викликають. Програма відображає метадані, ресурси і XML-документацію. .NET Reflector може бути використаний .NET-розробниками для розуміння внутрішньої роботи бібліотек коду, для наочного відображення відмінностей між двома версіями збірок, і того, як різні частини. NET-додатків взаємодіють один з одним.

.NET Reflector може використовуватися для знаходження місць, які мають проблеми з продуктивністю і пошуку багів. Він також може бути використаний для пошуку залежностей збірки. Програма може бути використана для ефективної конвертації коду між C # і VB.NET.


3.2.1 Приклад роботи .NET Reflector

Головне вікно .NET Reflector показує список збірок із складу .NET Framework. Про кожну із них можна подивитися інформацію, а також переглянути списки класів і тонкощі реалізації кожної із них.

Для демонстрації можливостей декомпілятора, відкриємо виконуваний файл популярного графічного редактору Paint.NETі переглянемо код методу PainDotNet.Tools.FloodToolBase, який, судячи з назви відповідає за заливку зображення деяким кольором.

Код програми можна дизасемблювати не тільки в C#, але й в MSIL, VB.NET, Delphi, MC++.

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

3.3 Способи захисту коду .NETпрограм від дослідження

Розглянемо методи захисту .NET збірки від дослідження:

·    Обфускація коду програми. Цей метод є найбільш простим і поширеним.

·    Компіляція збірки у машинний (native)код при його встановленні на комп’ютер користувача. Зокрема, це можна виконати з допомогою утиліти ngen, яка поставляється у комплекті із .NETFramework.Але, цей метод може призвести до деяких непередбачуваних наслідків, наприклад, при встановленні нової версії .NETFramework, програма, встановлена таким чином, може припинити працювати.

·    Використання оптимізуючих компіляторів.

·    Розроблення критичних частин програмного коду на ManagedC++, що дещо ускладнить процес декомпіляції.

·    Розроблення критичних частин програмного коду на С++, з компіляцією його в машинний (native)код у формі динамічних бібліотек (dll) та їх подальше використання в програмі на .NETFramework. Для захисту коду отриманої dll можна використовувати ті ж самі методи, що й для звичайних програм.

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


Висновки

В курсовій роботі були розглянуті проблеми захисту програмного забезпечення, засоби і методи унеможливлення несанкціонованого дослідження програмного коду. Також була розглянута технологія .NETFramework, та проблеми захисту ПЗ створеного на її основі. Технологія .NETFramework дає розробникам багато зручних і корисних засобів, які дозволяють швидко створювати і розповсюджувати (за рахунок незалежності від апаратної платформи і використання MSIL) якісні програмні продукти. Але вона має суттєвий недолік – програми на її основі дуже легко піддаються дослідженню за допомогою декомпіляторів, таких як .NETReflector, роботу якого було розглянуто в курсовій роботі. Найбільш простим і найменш трудомістким способом захисту таких програм, є використання обфускаторів. Нажаль, на даний час, не існує безкоштовних обфускаторів .NET коду, які забезпечують достатньо високий рівень захисту. Проте існує досить багато платних обфускаторів, які використовують одночасно і символьну обфускацію, і заплутування програмного коду і заплутування потоку управління. Зокрема всі ці функції має DotfuscatorProfessionalEdition безкоштовна версія якого постачається разом із середою розроблення VisualStudio.


Информация о работе «Захист програмного забезпечення»
Раздел: Информатика, программирование
Количество знаков с пробелами: 40344
Количество таблиц: 0
Количество изображений: 0

Похожие работы

Скачать
46809
0
0

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

Скачать
124538
18
22

... замінено  на /2. Покладемо ,, k=k+1, j=1 та повернемося до першого кроку. Блок-схема алгоритму приведена нижче. Рисунок 2.4–Алгоритм Хука-Дживса 3. Розробка програмного забезпечення вирішення задачі формування портфеля цінних паперів   3.1 Загальні відомості про програмне забезпечення Розроблене програмне забезпечення призначене для автоматизації процесу формування портфелем цінних ...

Скачать
50164
1
4

... середовище використовується Windows XP. Всі робочі місця підключені до локальної мережі класу. Остання підключається до сервера комбінату. У процесі вивчення курсу інформатики використовується таке програмне забезпечення: операційна система Windows; текстовий редактор Word; електронні таблиці Excel; система управління базами даних Access; засоби обробки графічної інформації Corel Draw; Photoshop; ...

Скачать
89612
2
19

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

0 комментариев


Наверх