我在一个编译过的网站上试用SmartAssembly模糊处理工具。它适用于大多数代码,但App_code中的任何类都不会被混淆。例如,我在App_Code 中有以下类
public class Helper
{
public Helper()
{
}
public static String GetData()
{
String text = DateTime.Now.ToString();
return text;
}
---Other methods----
}
已跳过此Helper类。它不会对Helper类及其方法进行名称篡改。任何使用SmartAssembly的人都能在这方面提供帮助吗?是否有比SmartAssembly更好的其他成本效益高的工具(免费或付费(。
- 免责声明:我在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
public
方法不会被混淆(在DLL中,它们在exe中会被混淆(。你可以强制混淆,但你需要使用代码装饰。更多详细信息可以在这里找到。