Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Рекомендации по защите  .NET-приложений

Утилита CodeObfuscator.exe

Ограничения на символьную (лексическую) обфускацию (переименовывание):

  1. Типы (классы):
    1. Системный тип "<Module>" и имеющие атрибут System.Runtime.CompilerServices.CompilerGeneratedAttribute
    2. унаследованные от (реализующие) System.Xml.Serialization.IXmlSerializalbeAttribute
  2. Методы:
    1. Имеющие атрибут System.Runtime.CompilerServices.CompilerGeneratedAttribute
    2. Констукторы и деструкторы
    3. Виртуальные методы
    4. Обращающиеся к нативному коду с использованием конструкции P/Invoke
    5. Методы с атрибутом System.Runtime.CompilerServices.CompilerGeneratedAttribute
    6. Обобщенные (шаблонные) методы (дженерики)
  3. Свойства (поля с геттерами и сеттерами):
    1. имеющие атрибут System.Runtime.CompilerServices.CompilerGeneratedAttribute
    2. реализованные в пользовательском классе, унаследованном от System.Configuration.ApplicationSettingsBase
  4. Поля:
    1. Имеющие атрибут System.Runtime.CompilerServices.CompilerGeneratedAttribute.

Примечание: не гарантируется поддержка сборок с Reflection API и GUI-фреймворков, реализующих MVVM (в частности, WPF и AvaloniaUI).


Утилита CodeProtect.exe

Ограничения на защиту методов:

  1. Методы структур
  2. Конструкторы и деструкторы, а также методы, вызываемые (прямо или косвенно) из деструкторов
  3. Обобщенные (шаблонные) методы (дженерики) и методы обобщенных (шаблонных) классов (дженериков)
  4. Методы, имеющие обработчики исключений типов Filter (с использованием ключевого слова when в выражении catch) и Fault (не встречается в C#)
  5. Методы, включающие инструкцию Calli (обращающиеся к нативным unmanaged функциям и методам)
  6. Методы, помеченные с применением кастомных атрибутов
  7. Методы, не имеющие тела.