我有一个包含大量DLL的Visual Studio 2008解决方案,而Web应用程序将它们用作主项目。它是一个商业银行和会计软件(瘦客户端),我不希望客户在规避我的情况下访问该来源。
我希望在将所有结果程序集通过菜单Publish发布到Web服务器之前对其进行模糊处理。
我该怎么做?如何在构建和发布之前插入混淆步骤?使用msbuild?
编辑:感谢大家的回答!但我的问题更多的是关于具体的任务(在VS中对出版进行混淆),而不是一般的混淆。
答案 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)
永远不要向您不信任的客户发送任何内容。永远。如果您使用的语言需要向不受信任的客户端发送可信信息,那就太愚蠢了。