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

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

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

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

Програмний продукт .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 дозволяє встановити безліч різних обмежень на демонстраційний режим роботи програми:
  • кількість днів, протягом яких працює демонстраційна версія;
  • фіксовану кількість хвилин, після закінчення яких додаток автоматично закривається;
  • фіксована дата закінчення дії демонстраційній версії;
  • максимальна кількість запусків демонстраційній версії;
  • максимальна кількість одночасно запущених екземплярів програми.
Можна задати довільну комбінацію обмежень і вказати, в якому саме випадку демонстраційна версія повинна припинити функціонувати - при першому спрацьовуванні будь-якого з обмежень або лише після спрацьовування всіх зазначених обмежень. Можна включити режим показу під час запуску програми nagscreen (екранів бурчання) і вказати, з якого дня використання демонстраційної версії вони будуть показуватися. Можна задати команду, яка повинна виконуватися після закриття демонстраційного додатки після припинення його функціонування: зазвичай - це відкриття веб-сторінки, на якій пояснюється, як придбати повну версію. Нарешті, можна взагалі заборонити роботу додатка без файлу ліцензії.

Третій крок - настройка менеджера ліцензій. Тут можна вказати обмеження при роботі додатка, які будуть застосовуватися, коли є файл ліцензій. Тобто якщо файл ліцензії відсутня, то використовується набір обмежень, вказаний на другому кроці. Якщо присутній - то набір, вказаний на третьому кроці. Перемикання між одним і іншим набором обмежень .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, має сенс поганяти пробну версію і переконатися, що на ваших додатках його захист коректно працює і не викликає ніяких проблем.

Системні вимоги