Любой программист, начинающий писать коммерческие приложения, сразу же сталкивается с вопросом защиты свой программы от взлома и копирования. Существует два способа решения этой проблемы: 1) Писать защиту самому 2)Воспользоваться готовым решением. Первый способ достаточно сложен в реализации, поэтому многие выбирают более простое решение – воспользоваться готовыми средствами.
Наверняка, каждый из нас встречался с таким понятием как серийный номер – это как раз один из способов защиты. Этот код может генерироваться двумя способами: с привязкой к компьютеру(то есть к железу), или без нее. Но для защиты программ на .Net этого мало. Огромное преимущество этой платформы в промежуточной компиляции. Но преимущество одновременно и огромный недостаток - преобразовать CIL в исходный код – дело 2 минут.
Для примера напишем самую простую программу
[Ссылки могут видеть только зарегистрированные пользователи. ]
С помощью некоторых программ мы легко можем восстановить исходный код программы. Самая распространенная из них [Ссылки могут видеть только зарегистрированные пользователи. ]
Открываем ее, выбираем нужную сборку и...
[Ссылки могут видеть только зарегистрированные пользователи. ]
...исходный код программы.
Задачу защиты исходного кода программы от распознавания решают специальные программы - [Ссылки могут видеть только зарегистрированные пользователи. ]. Они запутывают исходный код программы, делают непечатаемым, сложным для распознавания, применяют, кроме этого, разнообразные методы, затрудняющие или делающие невозможным декомпиляцию кода.
Давайте рассмотрим два обфускатора.
Первый из них [Ссылки могут видеть только зарегистрированные пользователи. ]. Очень простой и удобный обфускатор. Делает немного, но качественно.
[Ссылки могут видеть только зарегистрированные пользователи. ]
Просто перетаскиваем на него нужную сборку. И все! Взглянем теперь на исходный код.
[Ссылки могут видеть только зарегистрированные пользователи. ]
Уверен, у 95% любопытных, отобьет любое желание возиться.
Переходим ко второму. Платному. [Ссылки могут видеть только зарегистрированные пользователи. ]
- Реализованная в нем технология NecroBit защищает приложение от декомпиляции путем смешивания управляемого и машинного кода.
- Защита исходно и .NET кода.
- Кодирование и сжатие .NET кода.
- Поддержка ASP.NET.
- Мощная система лицензирования.
- Защита от декомпиляции, взлома и обратной сборки.
- Защищает от любых типов .NET сборки.
- Генератор модуля ShareIt.
- Понятный GUI (Графический пользовательский интерфейс).
- Неограниченная поддержка обновлений всех следующих версий .NET Reactor.
[Ссылки могут видеть только зарегистрированные пользователи. ]
На втором шаге осуществляется более тонкая настройка параметров защиты, включающая, в частности, следующие возможности:
* включить компрессию кода сборки;
* включить поддержку Compact Framework;
* настроить параметры обфускации - указать уровень обфускации графа потока управления, разрешить использование непечатных символов в обфусцированных именах, запретить обфусцирование открытых типов сборки и т. д.;
* включить режим шифрования строк;
* указать параметры подписи сборки строгим именем.
*задаются параметры демонстрационного (пробного, "триального") режима работы приложения.
* количество дней, в течение которых работает демонстрационная версия;
* фиксированное количество минут, после истечения которых приложение автоматически закрывается;
* фиксированная дата окончания действия демонстрационной версии;
* максимальное количество запусков демонстрационной версии;
* максимальное количество одновременно запущенных экземпляров приложения.
В итоге мы получаем защищенное приложения по обоим направлениям. И с файлом лицензирования. И с защитой кода.
Теперь при попытке прочитать исходный код мы получим следующее:
[Ссылки могут видеть только зарегистрированные пользователи. ]
Если же вы серьезно заинтересовались данной проблемой, то вам необходимо почитать про VMWare ThinApp. На мой взгляд, это самый серьезный вариант из всех, но и стоит от соответственно (больше 150т.р). Если же у вас нет таких денег(а как будто они есть...) то для вполне качественной защиты хватит и двух первых обфускаторов.
Вообще эта тема довольно серьезная и многогранная, в рамках одной статьи никак не поместится. Но и материала, к счастью, уже хватает, так как .net безвозвратно завоевывает новые позиции. Вот несколько полезных статей на эту тему:
[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ] [Ссылки могут видеть только зарегистрированные пользователи. ]