SmartAssembly跳过混淆

时间:2011-07-28 18:21:36

标签: obfuscation smartassembly

我正在编译的网站上试验SmartAssembly混淆工具。它适用于大多数代码,但App_Code中的任何类都没有被混淆。例如我在App_Code中有以下课程

public class Helper
{
    public Helper()
    {
    }

    public static String GetData()
    {
        String text = DateTime.Now.ToString();
        return text;
    }

    ---Other methods----
}

跳过此助手类。它没有在Helper类及其方法上进行名称修改。 任何使用SmartAssembly的人都能在这方面提供帮助吗? 是否有一些其他具有成本效益的工具(免费或付费)比SmartAssembly更好。

2 个答案:

答案 0 :(得分:9)

  • 免责声明:我在SmartAssembly上为RedGate工作*

SA(SmartAssembly)会自动将DLL中的公共成员排除在混淆和修剪之外,因为它假定它们将在外部使用。您可以通过编辑saproj文件来覆盖此行为,以使混淆行看起来像:

<Obfuscation ExcludePublicMembers="0" Obfuscate="1">

这将使所有成员混淆,无论他们的公共身份如何。

这可能会导致问题,因为IIS可能会使用反射来查找具有特定名称的特定公共成员。在这种情况下,您需要从修剪/混淆中排除这些项目。

对于混淆工具,SmartAssembly是一个非常强大的混淆器(黑客同意!),并且有很多附加功能(错误报告,功能使用报告等)。但是,当然,SmartAssembly之外还有一些,例如Dotfuscator或Deep Sea Obfuscator。有些相当不错,有些非常糟糕。

如果您还有其他问题,请在http://www.red-gate.com/products/dotnet-development/smartassembly/support

询问我们

答案 1 :(得分:2)

public方法默认情况下不会被混淆(在DLL中 - 它们在exes中)。您可以强制进行模糊处理,但需要使用代码修饰。更多详情can be found here