0

如何使用 Dotfuscator 混淆 WCF 代理类?我已经从他们的网站下载了 Dotfuscator Pro Edition 试用版。我混淆了我的 app.exe 文件,一切都很好地混淆了,但 WCF 代理类没有。(我ILDASMed exe)。

WCF 代理类正在放弃我的应用程序的结构。Dotfuscator 应用程序中是否缺少任何设置?

有没有更好的方法来隐藏 WCF 服务代理类?

4

1 回答 1

1

一种或另一种方式,WCF 必须能够将服务数据协定中的元素绑定到客户端的代理类。混淆代理类及其成员通常没有什么价值,但如果您确实想混淆它们,您可以使用或属性的Name参数显式设置类型及其成员的名称(例如。 )。完成此操作后,您可以从重命名 -> 内置规则选项卡禁用“标记为可序列化的类型和字段”内置规则,并确保在重命名 -> 选项中选中“与 XML 序列化程序的兼容性”标签。这种方法需要注意的是,序列化属性的名称仍然包含在您的代码中(在属性中),并且仍然通过网络发送。[DataContract][DataMember][DataMember Name="ID"]

如果您需要更多保护并且您可以同时控制服务和客户端,那么更好但更麻烦的选择可能是将您的服务合同放在自己的程序集中并使用 Dotfuscator 进行处理。再次,从重命名 -> 内置规则选项卡中禁用“标记为可序列化的类型和字段”内置规则,并确保在重命名 -> 选项选项卡中选中“与 XML 序列化程序的兼容性”。现在从您的服务和客户端应用程序中引用生成的服务合同 DLL。这种方法的权衡是合同成员都将具有混淆名称(例如“a”),您将不得不在您的服务和客户端应用程序代码中引用它们。您可以检查 Dotfuscator 生成的映射文件以了解重命名的名称。

于 2012-03-16T02:15:18.123 回答