Защита .NET приложений от просмотра

Защита .NET приложений от просмотра

 

Введение

Проблемы защищенности интелектальной собственности стояли в мире с незапамятных времен. С появлением Java и его промежуточного языка, который в момент выполнения компилируется в машинный код, перед разработчиками встала проблема обеспечения защиты своих алгоритмов.


В то время появилось понятие "обфускация" программного кода - приведение программы к виду, затрудняющему восприятие и модификацию. На сегодняшний день существует несколько десятков обфускаторов (в большинстве своем для Java), которые позволяют в той или иной степени решить проблемы защищенности кода.

 

В последнее время интерес к задаче обфускации резко возрос. Появились попытки формализации и теоретического обоснования задачи. Повышенный интерес к проблеме обфускации в значительной степени обусловлен появлением в технологии .Net от Microsoft. Основными понятиями, с которыми оперирует данная технология - понятие "Assembly" и MSIL (промежуточный язык).

 

MSIL - это процессоронезависимый промежуточный язык, созданный Microsoft. MSIL - язык более высокого уровня, чем большинство машинных языков. Он понимает типы объектов и имеет инструкции для создания и инициализации объектов, вызова виртуальных методов и непосредственной манипуляции элементами массива. Он даже имеет инструкции, которые оперируют исключениями. Как и любой другой машинный язык, MSIL может быть написан на ассемблере. Microsoft предоставляет ассемблер и дизассемблер для MSIL.

 

Assembly(сборка) - это набор ресурсов и типов, а также метаданные, описывающие типы и методы, реализованные в сборке. Таким образом сборка - это самоописанный компонент.

 

Обфускация (от лат. obfuscare, «затенять, затемнять») — запутывание кода программы, то есть приведение исходного текста или исполняемого кода к виду, сохраняющему функциональность программы, но затрудняющему анализ, понимание алгоритмов работы и модификацию при декомпиляции. «Запутывание» кода может осуществляться на уровне алгоритма, на уровне исходного текста, ассемблерного текста.

 

Хорошо известно, что технология метаданных, используемая в .NET Framework может применяться не только для упрощения процесса разработки и отладки сложных программных решений, но и для эффективного ре-инженеринга полученных приложений. Существует огромное количество коммерческих и даже бесплатных утилит, генерирующих листинги исходного кода .NET сборок на языках высокого уровня (например, .NET Reflector).

При этом благодаря метаданным сборки, эти листинги за исключением комментариев и стиля оформления практически полностью совпадают с листингами исходных приложений. Таким образом, для злоумышленников не составит особого труда не только отключить систему лицензионной защиты незащищенного .NET приложения, но также в дальнейшем использовать результаты Вашего труда в составе собственных решений.

 

Inquartos Obfuscator позволяет в автоматическом режиме преобразовывать содержимое .NET сборок таким образом, что их декомпиляция даже в IL-код без предварительных объемных модификаций становится невозможной, а полученный злоумышленником после длительных мучений код будет настолько нечитабельным, что его дальнейший анализ в большинстве случаев будет более трудоемким, чем реализация функционала защищенного приложения с нуля.

 

Также, Inquartos Obfuscator может создавать дополнительные уровни защиты программы (см. описание), например, шифрование обфусцированых сборок или упаковка этих сборок в неуправляемую Win32 оболочку, которая сама по себе содержит средства защиты от отладчиков и дизассемблеров.

 

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

 

Помимо всего прочего, Inquartos Obfuscator предоставляет разработчикам возможность автоматического внедрения в защищаемые проекты реализованного нами модуля лицензионной защиты. Данный модуль при запуске программы осуществляет проверку лицензионных ключей на базе ассиметричных алгоритмов шифрования и позволяет привязывать инсталляции приложения к аппаратному обеспечению компьютеров пользователей.

 

Резюмируя вышесказанное, отметим, что, избавляя Вас от необходимости досконального изучения целого набора из довольно запутанных областей IT-знаний, таких как спецификации IL-кода, методы обфускации, криптографическая защита и прочее, Inquartos Obfuscator экономит Ваше время и деньги, которым, несомненно, найдется более эффективное применение.


 

Почему именно Inquartos Obfuscator?

На сегодняшний день мировой рынок средств защиты .NET приложений представлен целым рядом высококлассных продуктов от именитых разработчиков. И мы отдаем себе в этом отчет. Однако, считаем, что выбор в качестве основного средства защиты Ваших приложений именно нашего продукта, будет, несомненно, обоснован.


 

И на то есть целый ряд причин:

  • Во-первых, Inquartos Obfuscator ничем не уступает именитым аналогам (см. описание).
  • Во-вторых, Inquartos Obfuscator является на сегодняшний день единственным продуктом, поддерживающим технологию ClickOnce.
  • В-третьих, Inquartos Obfuscator обеспечивает полную интеграцию со средами разработки MS VS 2005/2008, что сводит к минимуму усилия по настройке проектов обфускации.
  • В-четвертых, Inquartos Obfuscator может похвастаться продуманным и интуитивно понятным интерфейсом, позволяющим с легкостью реализовывать сложные схемы защиты приложений без наличия глубоких знаний по данной тематике.
  • В-пятых, очевидно, мы предоставляем документацию и техническую поддержку русскоязычным пользователям на чистом русском языке. Вы можете позвонить нам по телефону, пообщаться с профессионалами на форуме, послать сообщение на электронную почту и в кратчайшие сроки получить внятную и квалифицированную помощь. Данная особенность является весьма немаловажной, учитывая огромное количество подводных камней, с которыми Вы можете столкнуться при реализации защиты сложных приложений.
  • В-шестых, Вас должны приятно удивить наши цены.
  • В-шестых, в-седьмых, …, в-двадцать пятых – продукт развивается. Мы постоянно добавляем новые возможности, выполняя просьбы наших пользователей. С каждым днем у нас появляются новые идеи, и все их мы постараемся воплотить в реальность. В общем, все еще только начинается…


 

Ну и в довершении ко всему вышеизложенному, стоит отметить, что ряд функций Inquartos Obfuscator предоставляет бесплатно. В то же время доступ к платным функциям в демонстрационной версии не ограничен – просто при их использовании в защищаемое приложение внедряется небольшое диалоговое окно, появляющееся при запуске данного приложения.


Скачать демонстрационную версию можно отсюда…


 

 

 
04.12.2008
 
 
 
 
10.12  .NET Reactor
15.11  n
15.11  C# ClickOnce
 
01.08  Task Context
01.08  XLSX в Mono
27.07  прокси