我正在尝试使用eazfuscator.net混淆.net项目.问题是,当我使用.NET Reflector对其进行反编译时,您可以看到很多代码.所有私人成员都是混淆的,但公众成员提供了有关该计划的大量信息.
是否有可能混淆我图书馆的公众成员?我知道这不是由程序完成的,因为公共成员通常是从其他程序集访问的.但是,是否有可能对整个解决方案进行模糊处理,以便从工具中重命名来自其他程序集的访问?
我已经尝试过使用ObfuscationAttribute
[assembly: Obfuscation(Feature = "Apply to type * when public: renaming",Exclude = false)]
但它确实没有任何区别.
那么有可能用eazfuscator或其他工具做类似的事情吗?
解决方法
通常,混淆器不会混淆公共/受保护的成员.
他们这样做是有原因的,假设你在一个程序集中有一个公共成员(比如一个dll).通常会创建程序集来共享代码,如果混淆器改变了成员和类名,该怎么办?当另一个组件依赖它时,它将如何工作?
如果你想混淆一个课程,为什么它首先是公开的?如果不打算在装配体外部使用,则可以始终将其设置为内部.
Obfucsators善于处理内部类型/成员.它不仅会混淆类的成员,还会更进一步重命名类本身.
您可以考虑使用Phoenix protector.我希望它也可以配置为混淆公共成员.
更新:
一种选择是将所有依赖程序集合并到单个巨型程序集(exe),然后使用obfuscate public members选项对合并程序集进行模糊处理.通过这种方式,您可以同时对公共成员进行模糊处理,而不会破坏任何内容.