c# - eazfuscator 公共(public)成员未混淆

标签 c# .net obfuscation public eazfuscator

我正在尝试使用 eazfuscator.net 混淆 .net 项目。问题是,当我使用 .NET Reflector 反编译它时,您可以看到大部分代码。所有私有(private)成员都被混淆了,但是公共(public)成员提供了很多关于程序的信息。

是否也可以混淆我图书馆的公共(public)成员?我知道这不是由程序完成的,因为公共(public)成员通常是从其他程序集访问的。但是难道不应该混淆整个解决方案,以便从其他程序集访问的那些访问也从该工具重命名吗?

我已经尝试使用ObfuscationAttribute

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

但这并没有真正产生任何影响。

那么是否可以使用 eazfuscator 或其他工具来做类似的事情?

最佳答案

一般来说,混淆器不会混淆公共(public)/ protected 成员。

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

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

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

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

更新:

一个选项是将所有依赖程序集合并为一个巨大的程序集 (exe),然后使用混淆公共(public)成员 选项混淆合并后的程序集。这样,您可以在不破坏任何内容的情况下同时混淆公共(public)成员。

关于c# - eazfuscator 公共(public)成员未混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26041616/

相关文章:

c# - 将单个 StyleCop 规则设置为构建错误

c# - 如何在 .NET 中从文本中去除 HTML?

Android Proguard ExceptionInInitializerError 和 RuntimeException

javascript - 如果我们混淆了代码,那么我们如何调试和修改它?

C#:像 "bool"或 "double"这样的字符串到实际类型?

c# - 如何根据按钮单击向上或向下移动 datagridview 行

c# - 红色边框不会随着 INotifyDataErrorInfo 消失

ios - Polidea 的 iOS Class Guard 成功,但无法区分差异

c# - 如何将示例项目导入 Microsoft Visual Studio 2010

c# - 具有主体(setter 或 getter)之一的属性