我正在尝试让 {smartassembly} .NET 混淆器与我的系统一起使用。我目前将用户数据存储在一系列序列化的字典类中,然后反序列化这些类以取回数据。我已经忽略了汇编版本信息,只是因为那样会让生活变得痛苦。该代码改编自 MSDN:
//to avoid cross-versioning problems
public sealed class CrossVersionDeserializationBinder : SerializationBinder {
public override Type BindToType(string assemblyName, string typeName) {
Type typeToDeserialize = null;
typeToDeserialize = Type.GetType(String.Format("{0}, {1}",
typeName, assemblyName));
return typeToDeserialize;
}
}
问题是,现在我的混淆应用程序将忽略版本信息,但无法读取非混淆应用程序保存的数据,反之亦然。我们需要一个非混淆版本来调试应用程序,所以这对我们来说是一个相当大的展示。有什么办法可以解决这个问题?我不应该混淆数据类吗?这似乎是一个相当大的安全漏洞。