如何使用 Dotfuscator 混淆 WCF 代理类?我已经从他们的网站下载了 Dotfuscator Pro Edition Trial。我混淆了我的 app.exe 文件,所有内容都被很好地混淆了,但 WCF 代理类却没有。(我用ILDASM编辑了exe)。

WCF 代理类泄露了我的应用程序的结构。Dotfuscator 应用程序中是否缺少任何设置?

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

有帮助吗?

解决方案

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top