Статті - захист для

У переважній більшості випадків захист будується на основі використання файлів ліцензії (або серійних номерів). Користувачеві надається пробна версія програми, яка містить ряд обмежень. Наприклад, в пробної версії можуть бути обмежені функціональність, час роботи, кількість запусків і т. Д. Після того як користувач спробує програму в дії, вирішить, що вона йому підходить, і сплатить її, розробники висилають йому файл ліцензії. При наявності такого файлу програма починає працювати як повнофункціональна. Вільне розповсюдження файлів ліцензії тим чи іншим чином обмежується. Наприклад, файли можуть генеруватися з прив'язкою до "заліза" комп'ютера користувача так, щоб ними можна було скористатися на інших комп'ютерах. Одночасно система захисту застосовує кодування і шифрування даних, щоб ускладнити хакеру злом програми і відключення прив'язки до файлу ліцензії. Різноманітних варіацій такого захисту може бути безліч, але загальний принцип приблизно один і той же.
Завдання захисту вихідного коду програми від вивчення сторонніми особами вирішують спеціальні програми - обфуськатор. Обфуськатор ускладнюють вихідні коди програми, заплутують його, роблять більш важкими для розуміння, але при цьому зберігають функціональність працездатною. Хороші обфуськатор застосовують, крім цього, різноманітні методи, що ускладнюють або роблять неможливим декомпіляцію коду.
Програмний продукт .Net Reactor. що випускається компанією Eziriz e.K .. містить всі перераховані засоби захисту Net-додатків. Реалізована в ньому технологія NecroBit захищає додаток від декомпіляції шляхом змішування керованого і машинного (native) коду. Net Reactor містить засоби обфускаціі класів, типів і змінних, доповнені шифруванням рядків, використанням нецензурних символів при обфускаціі імен та навіть можливістю обфускаціі графа потоку керування. Продукт реалізує розвинену схему ліцензування додатків. І, що особливо важливо. Net Reactor коштує набагато дешевше більшості альтернативних засобів захисту, про що розробники прямо заявляють на сторінках свого сайту.
Захищаємо додаток за допомогою .Net Reactor
Net Reactor реалізує графічний користувальницький інтерфейс, що дозволяє накласти захист на вже готове додаток. Інтерфейс зручний і інтуїтивно зрозумілий. Захист накладається за допомогою майстра за кілька кроків.
На першому кроці необхідно вказати режим захисту, вибрати основну захищається збірку і опціонально додаткові збірки, вказати, чи потрібно використовувати захист від декомпіляції NecroBit і обфускація.

Головне вікно .Net Reactor
Net Reactor підтримує два режими захисту: захист бібліотеки і захист програми. Якщо обраний режим захисту програми, то додаткові збірки об'єднуються разом з основною в один файл. У режимі захисту бібліотеки додаткові збірки можуть або захищатися кожна окремо, або об'єднуватися з основною збіркою. Крім того, при захисті в режимі бібліотеки збірка захищається таким чином, щоб її можна було в подальшому використовувати з інших додатків.
На другому кроці здійснюється більш тонка настройка параметрів захисту, що включає, зокрема, такі можливості:- включити компресію коду збірки;
- включити підтримку Compact Framework;
- налаштувати параметри обфускаціі - вказати рівень обфускаціі графа потоку управління, дозволити використання нецензурних символів в обфусцірованних іменах, заборонити обфусцірованіе відкритих типів збірки і т. д .;
- включити режим шифрування рядків;
- вказати параметри підпису збірки суворим ім'ям.

Установити спосіб в .Net Reactor
Net Reactor дозволяє встановити безліч різних обмежень на демонстраційний режим роботи програми:- кількість днів, протягом яких працює демонстраційна версія;
- фіксовану кількість хвилин, після закінчення яких додаток автоматично закривається;
- фіксована дата закінчення дії демонстраційній версії;
- максимальна кількість запусків демонстраційній версії;
- максимальна кількість одночасно запущених екземплярів програми.
Третій крок - настройка менеджера ліцензій. Тут можна вказати обмеження при роботі додатка, які будуть застосовуватися, коли є файл ліцензій. Тобто якщо файл ліцензії відсутня, то використовується набір обмежень, вказаний на другому кроці. Якщо присутній - то набір, вказаний на третьому кроці. Перемикання між одним і іншим набором обмежень .Net Reactor виконує автоматично. Таким чином, для того щоб демонстраційна версія перетворилася на повну, користувачеві досить помістити в директорію додатки файл ліцензії.

Налаштування менеджера ліцензій .Net Reactor
У наборі обмежень на третьому кроці присутній додаткове обмеження Hardware lock. З його допомогою можна створювати файли ліцензії, прив'язані до конкретного комп'ютера. Прив'язка здійснюється на основі довільної комбінації ідентифікаторів "заліза" комп'ютера - системної плати, CPU, жорсткого диска, мережевої карти.
В налаштуваннях менеджера ліцензій присутній ще один цікавий пункт - прапор Individual Licensing Behaviour. Припустимо, користувач отримав від вас два файли ліцензії з обмеженням на 10 запусків. Якщо цей прапор включений, то у користувача буде можливість запустити додаток 20 разів. Якщо вимкнений - то тільки десять.
Останній крок - це власне накладення захисту. Весь процес повністю автоматизований і займає кілька секунд. У тій директорії, в якій розміщена основна захищається збірка. Net Reactor створює піддиректорію і поміщає в неї захищені файли.

Процес накладення захисту
Додаткові можливості

Net Reactor надає вельми корисну можливість включати в файл ліцензії довільну призначену для користувача інформацію у вигляді списку пар "ключ - значення". Додаток може отримати доступ до цієї інформації через функції SDK.
За допомогою функцій SDK також можна визначити поточний статус ліцензії в процесі роботи додатка, витягти унікальний ідентифікатор, за допомогою якого здійснюється прив'язка до "заліза", зробити файл ліцензії недійсним при перенесенні додатки з одного комп'ютера на інший і навіть організувати власну систему активації. Ряд подібних функцій продубльований в .Net Reactor у вигляді окремих інструментів, доступних через меню програми.

Набір інструментів в .Net Reactor
Net Reactor може інтегруватися з Microsoft Visual Studio і працювати в режимі командного рядка.

.Net Reactor: за і проти
Як і будь-яка інша система захисту. Net Reactor має свої плюси і мінуси. До плюсів насамперед належать повнота і комплексність захисту, що надається, а також невисока вартість продукту. За цими параметрами .Net Reactor прекрасно підійде невеликим компаніям і приватним розробникам, які шукають недорогу і просту у використанні систему захисту для свого .Net-додатки.
Що стосується мінусів, то їх, за великим рахунком, два. Перший - систему можна зламати. Втім, це можна сказати про будь-якій системі захисту, тому кожен розробник повинен сам для себе вирішити питання, чи достатній рівень захисту забезпечує .Net Reactor. Рекомендую подивитися з цього питання дискусії на тему .Net Reactor на форумах Joel of Software і Reverse Engineering Team Board. а також порівняльну статтю за можливостями обфуськатор.
Другий мінус - .Net Reactor фактично модифікує код захищається збірки, і не у всіх випадках така модифікація нешкідлива. Наприклад, за допомогою поточної версії .Net Reactor 3.9.0.1 не вдається захистити додатки, написані з застосуванням бібліотеки Elegant Ribbon - захищені збірки перестають працювати. Тому, перш ніж купувати .Net Reactor, має сенс поганяти пробну версію і переконатися, що на ваших додатках його захист коректно працює і не викликає ніяких проблем.