eazfuscator公众成员没有混淆

时间:2014-09-25 14:50:25

标签: c# .net obfuscation public eazfuscator

我试图用eazfuscator.net混淆.net项目。问题是,当我使用.NET Reflector对其进行反编译时,您可以看到很多代码。所有私人成员都被混淆了,但公众成员提供了有关该计划的大量信息。

是否有可能混淆我图书馆的公众成员?我知道这不是由程序完成的,因为公共成员通常是从其他程序集访问的。但是,是否有可能对整个解决方案进行模糊处理,以便从工具中重命名来自其他程序集的访问?

我已尝试使用ObfuscationAttribute

[assembly: Obfuscation(Feature = "Apply to type * when public: renaming", 
                       Exclude = false)]

但它并没有什么不同。

因此可以使用eazfuscator或其他工具做类似的事情吗?

1 个答案:

答案 0 :(得分:3)

一般而言,混淆器不会混淆公共/受保护的成员。

他们这样做是有原因的,假设你在一个程序集中有一个公共成员(假设一个dll)。通常会创建程序集来共享代码,如果混淆器改变了成员和类名,该怎么办?当另一个组件依赖它时,这将如何工作?

如果你想混淆一个类,为什么它首先是public?如果不打算在程序集外部使用,则可以始终将其设为internal

Obfucsators善于处理内部类型/成员。它不仅会混淆类的成员,还会更进一步重命名类本身。

您可以考虑使用Phoenix protector。我希望它也可以配置为混淆公共成员。

<强>更新

一种选择是将所有依赖程序集合并到单个巨型程序集(exe),然后使用 obfuscate public members 选项对合并的程序集进行模糊处理。通过这种方式,您可以在不破坏任何内容的情况下对公共成员进行模糊处理。