汇编混淆和受保护的成员

时间:2012-11-14 12:17:56

标签: c# .net obfuscation

我们有一个核心程序集,我们希望混淆并提供给第三方开发人员。我看过的大多数混淆工具都提到它反对反编译器和反射器的内部,但是公共方法和属性的名称保留原样(这是有意义的)。但那些“受保护”的会员呢?

假设我有一个基类,我有一些很酷的帮助方法和属性,我想让第三方开发人员可以使用它,以便他们可以简单地从我的基类继承并拥有一些管道已经到位了。显然,如果它被混淆器弄乱,这将没有多大帮助。所以我的问题是,这些混淆器工具可以做些什么呢?你能说明它也不是受保护的方法吗?或者,您可以配置它的内容和不适用的内容吗?我没有在.NET中使用混淆器的经验,所以我想学习所有的细节,谢谢

1 个答案:

答案 0 :(得分:3)

我曾与.net的几个混淆器一起工作,但没有一个混淆了公共类中受保护的成员名称,这很有意义,因为它可能会破坏你的应用程序。混淆的整个想法是让你的应用程序行为和公共API与混淆之前一样。

此外,大多数混淆器允许您从混淆中排除某些非公共类/成员(例如使用自定义属性) - 有时在使用反射,IoC容器进行依赖注入等时可能需要这样做。