关于SmartAssembly和.NET应用程序,只是一个简单的问题。-我现在正在试验这个软件,它似乎混淆了代码,但是My.Settings仍然可以用纯文本显示吗?
因此,在获取代码之前(使用.NET反射器),我几乎可以看到所有的东西。包括包含大量信息的My.Settings类,如密码、ip、MySQL连接字符串等。
所以我混淆了使用RedGate的SmartAssembly的代码,确定所有的类/函数等都是随机符号出现的,但是有几个项目(同样包括My.Settings)没有被碰过?
SmartAssembly截图

模糊在.NET反射器中的应用

发布于 2014-07-02 12:56:44
大多数混淆工具所能做的都有局限性,这就是其中之一。设置值并不存储为字符串文本或备份字段,而是作为属性值存储:
Global.System.Configuration.DefaultSettingValueAttribute("bar")> _
Public Property Foo() As String
Get
Return CType(Me("Foo"), String)
End Get
Set(value As String)
Me("Foo") = value
End Set
End PropertyVB/VS生成属性getter/setter,但如您所见,它使用一个属性来存储初始值,而不是:
Private _foo As String = "bar"在大多数情况下,没有理由隐藏属性中使用的字符串内容,因为它们通常是编译器关于类或属性的指令:
<Description("Bar String")>
<DefaultValue("bar")>
<DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)>
Property BarString As String这些属性文本都不需要隐藏,因为大多数属性既不包含运行时数据,也不包含敏感信息。因此,My.Settings是一个边缘情况,它是如何实现的结果。请注意,这只适用于您在IDE中输入的默认值。如果在运行时更新它们,则不会将它们写回属性,而是保存到文件中。
由于您有少量的设置,所以只需编写一个小类来管理它们,并将其保存到Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)中的一个文件中。
https://stackoverflow.com/questions/24530708
复制相似问题