5

我正在尝试使用 Dotfuscator (CE) 来帮助保护我们的 ASP.NET MVC .ddl。它是一个将分发给客户的 Web 应用程序,我们需要一种方法来保护我们的 IP。

问题是一旦完成,它似乎会破坏应用程序。到目前为止,我只在我的 Controllers 命名空间上禁用了重命名,但现在我得到了空引用异常。

有没有人让 Dotfuscator 与 ASP.NET MVC DLL 一起工作?Google 不提供任何可能的博客文章或信息。

谢谢。

其他详情:

Visual Studio 2008 专业版,

Windows Vista 商业 x64,

注册了我的 Dotfuscator,但没有收到包含升级版 CE 版本下载链接的电子邮件。

或者任何人都可以推荐一个可以正常工作的相对便宜的工具吗?

4

2 回答 2

9

我认为这不会起作用,因为 ASP.NET MVC 非常依赖反射。

我已经使用 SmartAssembly 及其具有的控制流混淆选项成功地混淆了 ASP.NET MVC 应用程序。这不会更改您的类成员的名称,而是将您的方法中的代码更改为意大利面条式代码。

于 2009-10-13T10:37:50.263 回答
7

确实是ASP。NET MVC 严重依赖反射,因此您不能混淆将被反射的类型或属性。但是,我认为无论如何都没有必要混淆大部分内容。您的控制器名称和操作名称已经公开,因为它们出现在 URI 中。您的演示模型本质上也是公共的,因为它们应该像您的视图一样设计,并且最终用户可以看到您的视图。

您的控制器应该非常轻量级,并且只需将存储库中的对象绑定到您的演示模型。因此,这里几乎没有什么知识产权可以隐藏。

您实际上想要混淆的代码可能是您的业务逻辑,它可以很容易地存在于单独的程序集中。所以我的建议是,与其在混淆器之后尝试混淆器,并试图找到一个似乎有效的(除了你错过的那些错误,但你的用户稍后会发现),而是对混淆器很重要的代码进行分区而他并不那么依赖反思。

于 2009-10-13T13:05:57.983 回答