Пример защиты на C#

 

Введение

 

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

 

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

 

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

 

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

 

Описание Inquartos Obfuscator


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

 

Цели обфускации

  • Защита программ от декомпиляции и незаконного использования, нарушения авторских прав программистов.
  • Оптимизация программы с целью уменьшения размера работающего кода и (если используется некомпилируемый язык) ускорения работы.
 

Inquartos Obfuscator - это программный продукт предназначеный для защиты и оптимизации приложений, разработанных на базе платформы Microsoft .NET Framework 1.1/2.0/3.0/3.5

Основными характеристиками продукта являются:

  • Эффективная обфускация и защита .NET сборок от ре-инжиниринга;
  • Полной интеграцией с Visual Studio 2005/2008;
  • Возможность внедрения технологии лицензирования в защищаемый продукт;
  • Наличие бесплатных функциональных возможностей;
  • Поддержка технологии ClickOnce;




 

 

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