如何使用Dotfuscator模糊WCF代理类?我已经从他们的网站下载了Dotfuscator专业版试用版。我混淆了我的app.exe文件,一切都很好地混淆了,但WCF代理类不是。(I ILDASMed exe)。
WCF代理类正在泄露我的应用程序的结构。Dotfuscator应用程序中是否缺少任何设置?
有没有更好的方法来隐藏WCF服务代理类?
无论如何,WCF必须能够将服务的数据契约中的元素绑定到客户端的代理类。混淆代理类及其成员通常没有什么价值,但如果您确实想混淆它们,您可以使用[DataContract]
或[DataMember]
属性(例如[DataMember Name="ID"]
)的Name
参数显式设置类型及其成员的名称。完成此操作后,您可以从"重命名->内置规则"选项卡禁用"标记为可序列化的类型和字段"内置规则,并确保在"重命名->选项"选项卡中选中"与XML序列化程序的兼容性"。此方法的警告是,序列化属性的名称仍然包含在代码中(在属性中),并且仍然通过有线发送。
如果你需要更多的保护,并且你可以控制服务和客户端,一个更好但更麻烦的选择可能是将你的服务合同放在自己的程序集中,并使用Dotfuscator处理它。再次,从"重命名"->"内置规则"选项卡禁用"标记为可序列化的类型和字段"内置规则,并确保在"重命名"->"选项"选项卡中选中"与XML序列化程序的兼容性"。现在,从服务和客户端应用程序中引用生成的服务约定DLL。这种方法的折衷之处在于,合同成员都将具有模糊的名称(例如"a"),并且您必须在服务和客户端应用程序代码中引用它们。您可以检查Dotfuscator生成的映射文件,以便理解重命名的名称。