彩票走势图

logo Eziriz中文文档

声明式保护




.NET Reactor 用户界面提供了多种方法来细化应用于应用程序的保护级别。来控制保护级别。如果您希望 .NET Reactor 尊重此属性,则必须在设置中启用声明性保护选项:

DevExpress VCL图表控件

启用此选项后,您可以使用该属性来选择特定的保护功能,选择是包含还是排除这些功能,并指定应受影响的类和成员。

选择保护功能

可以通过为属性“Feature”属性指定值来选择保护功能。

[System.Reflection.Obfuscation(Feature = "renaming,controlflow")

点击复制

以下值可用:
  • “重命名”或“混淆”
  • “字符串加密”
  • “控制流”
  • “死灵”
  • “抗压印”
  • “隐藏方法”

重要提示:输入的值必须用引号引起来,并且不区分大小写。

定义行为

使用Exclude 属性可以定义是应包含还是排除这些功能。

[System.Reflection.Obfuscation(Exclude = true, Feature = "renaming")

点击复制

[System.Reflection.Obfuscation(Exclude = false, Feature = "controlflow")

点击复制

  • 要包含功能,请将排除属性设置为false。
  • 要排除功能,请将 Exclude 属性设置为true。默认值为true,因此如果您希望排除某项功能,则可以选择显式设置 Exclude 属性。

使用 'ApplyToMembers'属性可以定义是应包含还是排除这些功能。

放置属性和“ApplyToMembers”属性

您可以将属性放置在类和成员(方法、属性和字段)之上。

[System.Reflection.Obfuscation(Exclude = true, Feature = "controlflow")
internal void MyMethod()

点击复制

[System.Reflection.Obfuscation(Exclude = false, Feature = "renaming", ApplyToMembers = false)
public class MyClass

点击复制

ApplyToMembers属性的默认值为true。由于它仅影响类成员(方法、属性、字段和嵌套类)是否受到影响,因此它仅适用于装饰类的属性。如果您不希望类成员受到影响,请将 ApplyToMembers 属性设置为false。

例子

示例1:

[System.Reflection.Obfuscation(Feature = "renaming")
class MyClass
{
class NestedClass
{}
void MyMethod(){}
}

点击复制

MyClass、NestedClass 和 MyMethod 不会被重命名。

示例2:

[System.Reflection.Obfuscation(Exclude = true, Feature = "renaming", ApplyToMembers = true)
class MyClass
{
class NestedClass
{}
void MyMethod(){}
}

点击复制

这与示例 1 等效。

示例3:

[System.Reflection.Obfuscation(Feature = "renaming", ApplyToMembers = false)]
class MyClass
{
class NestedClass
{}
void MyMethod(){}

点击复制

仅 MyClass 被排除在重命名之外,但 NestedClass 和 MyMethod 不会被排除。

示例4

[System.Reflection.Obfuscation(Exclude = false, Feature = "renaming,stringencryption") // include
[System.Reflection.Obfuscation(Exclude = true, Feature = "necrobit") // exclude
class MyClass
{
int MyField;
[System.Reflection.Obfuscation(Exclude = true, Feature = "renaming") // exclude
void MyMethod(){}
[System.Reflection.Obfuscation(Exclude = false, Feature = "necrobit") // include
void MyMethod2(){}
}

点击复制

  • 仅 MyField 和 MyMethod2 将被重命名。
  • 字符串加密将应用于 MyMethod 和 MyMethod2
  • NecroBit 将仅应用于 MyMethod2。
特殊情况:[System.Reflection.Obfuscation()]

有一种特殊情况独立于“声明性保护”工作。如果您没有为功能属性设置值,则该属性将排除重命名。

实施例5:

[System.Reflection.Obfuscation(ApplyToMembers = false)]
class MyClass
{
class NestedClass
{}
void MyMethod(){}
}

点击复制

仅 MyClass 被排除在重命名之外,但 NestedClass 和 MyMethod 不会被排除。

实施例6:

[System.Reflection.Obfuscation()]
enum MyEnum
{
A,
B,
C
}

点击复制

MyEnum 和所有字段都被排除在重命名之外。

实施例7:

enum MyEnum
{
A,
[System.Reflection.Obfuscation()]
B,
C
}

点击复制

仅 B 字段被排除在重命名之外。

扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP