我在我的.NET项目中使用Crypto Obfuscator,我想使用“混淆规则”将某些类从混淆中排除,但似乎无效。
首先,我尝试以这种方式使用ObfuscationAttribute:
<ObfuscationAttribute(ApplyToMembers:=True, Exclude:=True)> _
Public Class DynamicClass
Public Overrides Function ToString() As String
Dim props = Me.GetType().GetProperties(BindingFlags.Instance Or BindingFlags.Public)
Dim sb As New StringBuilder()
sb.Append("{")
For i As Integer = 0 To props.Length - 1
If (i > 0) Then sb.Append(", ")
sb.Append(props(i).Name)
sb.Append("=")
sb.Append(props(i).GetValue(Me, Nothing))
Next i
sb.Append("}")
Return sb.ToString()
End Function
End Class
但是Crypto Obfuscator继续混淆所有内容并始终显示方法“ToString”的警告。
然后我尝试从Crypto Obfuscator添加一个明确的混淆规则:
不要混淆,适用于:{Classes},可见性:{All},名称匹配:“ct:DynamicClass”
但也是这样不行。
我哪里错了?我必须启用一些特殊设置才能使其正常工作?
有人可以帮助我吗?
答案 0 :(得分:0)
算了吧......
我使用Crypto Obfuscator 2012 R2 Professional,问题与“专业”许可证所施加的限制有关;现在我已经测试了Crypto Obfuscator 2013 R2 Enterprise的试用版,它可以运行。