如何在发布之前模糊Web应用程序?

时间:2010-03-10 12:45:54

标签: .net asp.net msbuild obfuscation publishing

我有一个包含大量DLL的Visual Studio 2008解决方案,而Web应用程序将它们用作主项目。它是一个商业银行和会计软件(瘦客户端),我不希望客户在规避我的情况下访问该来源。

我希望在将所有结果程序集通过菜单Publish发布到Web服务器之前对其进行模糊处理。

我该怎么做?如何在构建和发布之前插入混淆步骤?使用msbuild?

编辑:感谢大家的回答!但我的问题更多的是关于具体的任务(在VS中对出版进行混淆),而不是一般的混淆。

6 个答案:

答案 0 :(得分:5)

有几种混淆产品。

Visual Studio甚至附带一个 - DotFuscator,但有others

这是一些DotFuscator documentation

然而,即使是混淆,一个坚定的黑客也能够对你的代码进行反向工程。

答案 1 :(得分:1)

预计从哪里劫持?来自用户还是来自主机?首先,你不应该在网站上放置源代码,只是编译程序集,其次你应该将程序集放在用户无法访问它们的文件夹中。如果你害怕托管人,你应该使用混淆器,只是google他们在市场上有很多。

答案 2 :(得分:1)

请参阅此帖子:Protect .NET code from reverse engineering?

实际上,您无法完全保护代码免受逆向工程的影响。你能做的最好的就是使用像Dotfuscator这样的工具。

如果您的代码有效,那么诚实的客户尝试重新编写或篡改它的机会很小。如果客户不诚实,那么你可以做的很少有效。

不要担心这一点,而是担心生产出诚实的客户愿意支付的优质产品。

答案 3 :(得分:1)

我同意上述观点,因为您不应该向不受信任的一方发布代码。混淆只会使您的代码难以被理解,但是它有各种方法和手段。

话虽如此,如果您真的想混淆代码,可以试试Easfuscator.NET

答案 4 :(得分:1)

一些混淆器将支持在构建过程中执行混淆,以便已发布的应用程序已经过混淆。

Crypto Obfuscator就是这样一个工具 - 它支持与MSBuild的集成,它可以在发布或ClickOnce中执行混淆步骤。

答案 5 :(得分:0)

永远不要向您不信任的客户发送任何内容。永远。如果您使用的语言需要向不受信任的客户端发送可信信息,那就太愚蠢了。