Шифрование сборок

Шифрование сборок

 

Шифрование сборок предназначено для сокрытия сборки от непосредственного анализа и дизассемблирования. Функциональные возможности:

  • Шифрование сборки.
    Реализуется механизм шифрования сборок (dll) по алгоритму AES (Rijndael) с использованием ключа, хранящегося в проекте обфускации. В исполняемую сборку (exe) внедряется ключ шифрования и код, осуществляющий автоматическую загрузку и расшифровку сборки при первом обращении к элементам зашифрованной сборки.
  • Шифрование и сжатие сборки.
    Реализуется механизм сжатия сборок (dll) по алгоритму ZIP и их последующего шифрования по алгоритму AES (Rijndael) с использованием ключа, хранящегося в проекте обфускации. В исполняемую сборку (exe) внедряется ключ шифрования и код, осуществляющий автоматическую загрузку, распаковку и расшифровку сборки при первом обращении к элементам зашифрованной сборки.
  • Объединение сборок.
    Реализуется механизм слияния 2-х или более сборок (dll+dll+..., exe+dll+...) в одну единую сборку. Такое слияние усложняет анализ кода, ускоряет загрузку, позволяет скрыть исходную архитектуру проекта и т.д.

 

Настройка параметров шифрования сборок

 

Внешний вид вкладки Шифрование сборок (с пометками)

 

Опции:

  • Разрешить шифрование сборок - Включение режима шифрования сборок и их объединения при обфускации;
  • Перегенерировать ключи шифрования - Генерирует новые ключи шифрования (с сохранением в проекте);
  • Сборка - защищаемый модуль;
  • Опции\Сделать загрузчиком - указывает, что при обфускации необходимо встроить в сборку модуль расшифровки защищенных сборок (данную опцию можно задать только для exe сборок);
  • Опции\Нет - отсутствие действий;
  • Опции\Шифрование - указывает, что при обфускации необходимо зашифровать сборку (алг. AES) и изменить её имя, в соответствии с указанным алгоритмом переименования (данную опцию можно задать только для dll сборок);
  • Опции\Шифрование и сжатие - указывает, что при обфускации необходимо сжать (zip), зашифровать сборку (алг. AES) и изменить её имя в соответствии с указанным алгоритмом переименования (данную опцию можно задать только для dll сборок);
  • Опции\Объеденить с 'имя сборки' - указывает, что при обфускации, необходимо объединить в одну данную сборку и сборку 'имя сборки';


Пример результата обфускации с опцией Шифрование сборок и Создание Win32 оболочки (просмотр осуществляется с использованием утилиты .Net Reflector):

Исходный код: TestProject-encryption.zip

 



Пример результата обфускации с опцией Шифрование сборок (Объединение сборок) и Создание Win32 оболочки:

Исходный код: TestProject-join.zip

 


 

 

 
15.11.2008
 
 
 
 
10.12  .NET Reactor
15.11  n
15.11  C# ClickOnce
 
11.10  GAC и ngen
10.10  SqlTypes