Versions Compared

Key

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

...

Лексическая обфускация не применяется к следующим артефактам (т.е., они не переименовываются):

  1. Типы (классы):
      1.1.
      1. Системный тип "<Module>"
      ,
      1.2.
      1. Типы с атрибутом System.Runtime.CompilerServices.CompilerGeneratedAttribute
      ,
      1.3.
      1. Типы с флагом IsSerializable
      ,
      1.4.
      1. Типы, реализующие (наследующие лично или через базовые типы) интерфейс System.Xml.Serialization.IXmlSerializable;
    1. Поля:
        2.1.
        1. Поля с флагом RTSpecialName
        ,
        2.2.
        1. Поля с атрибутом System.Runtime.CompilerServices.CompilerGeneratedAttribute
        ,
        2.3.
        1. Поля с флагом IsSerializable;
      1. Методы:
          3.1.
          1. Констукторы
          ,
          3.2.
          1. Виртуальные методы
          ,
          3.3.
          1. Методы, обращающиеся к нативному коду с помощью идиомы P/Invoke
          ,
          3.4.
          1. Методы с атрибутом System.Runtime.CompilerServices.CompilerGeneratedAttribute
          ,
          3.5.
          1. Обобщенные (шаблонные) методы;
            // ### деструкторы - есть такое?!
        1. Свойства (поля с геттерами и сеттерами):
            4.1.
            1. Свойства с атрибутом System.Runtime.CompilerServices.CompilerGeneratedAttribute
            ,
            4.2.
            1. Свойства типа, унаследованного от системного типа System.Configuration.ApplicationSettingsBase (для WinForms).


          Утилита CodeProtect.exe

          Ограничения на защиту функций:1.

          1. Метод не имеет тела (в принципе, можно не указывать - и так очевидно)

          ...

          1. Метод принадлежит структуре (а не обычному классу)

          ...

          1. Метод - конструктор

          ...

          1. Метод - шаблонный (использует дженерики)

          ...

          1. Метод помечен кастомными атрибутами

          ...

          1. Тело метода содержит инструкцию calli (см.

          ...

          1. ссылку) (редкий случай, но возможный)

          ...

          1. Метод - деструктор или вызывается (прямо или косвенно) из деструктора

          ...

          1. Метод имеет обработчик исключения вида Fault или Filter; в C# встречается только Filter (использует нотацию с применением when) (см.

          ...

          1. ссылку)