如何将C#转换为DLL来隐藏源代码?

时间:2009-02-05 13:28:47

标签: c# visual-studio dll source-code-protection

如何以DLL的用户无法查看源代码的方式将我的C#代码转换为DLL文件?

当我通过创建类库项目,导入我的类并编译它来创建DLL时,仍然可以查看源代码。

8 个答案:

答案 0 :(得分:9)

我相信你正在寻找一个混淆器。这是一个工具,它将采用编译的DLL并重写代码,意图是它没有被另一个用户有意义地反编译。 Visual Studio附带一个免费的Dotfuscator

注意,这实际上不会阻止人们查看您的代码。相反,他们会查看代码的非常奇怪的翻译。没有办法阻止人们在C#或任何其他.Net语言中查看代码的反编译版本。

这不是C#独有的东西。事实上,这是现存每种语言的缺陷。完全可以反编译C代码。不同之处在于,在反编译托管语言(例如.Net和Java)时,维护大量原始代码结构要容易得多,因为元数据维护了原始结构。

答案 1 :(得分:4)

混淆是您要搜索的内容。

视觉工作室中有一个名为Dotfuscator的免费(有限)。

使用花哨的方法重命名代码并更改流路径以掩盖它。

答案 2 :(得分:1)

考虑使用obfuscator

答案 3 :(得分:1)

如果您正在开发桌面应用程序,将代码转换为Dll将无法隐藏它(有许多工具可以反编译dll或exe文件)。

但是如果您使用的是Asp.Net,那么您可以将您的站点编译为Dll,并且代码将不会在aspx页面中显示,它将被编译为Dll,您可以通过右键单击您的项目来实现在解决方案资源管理器上,然后选择发布网站

但是在所有情况下.Net Exe文件和DLL都很容易反编译并再次提取源代码,除非你使用工具来混淆代码。

答案 4 :(得分:0)

你在谈论ASP.NET吗?网站?隐藏aspx和cs源代码?

如果是,请查看我的问题:

pre compile website in Setup & Deployment

:)

答案 5 :(得分:0)

如果您的意思是,最终用户可以通过反编译来查看您的源代码,您可以使用混淆器保护自己。

Visual Studio中内置了标准的混淆器。在菜单中选择 Tools / Dotfuscator社区版。

答案 6 :(得分:0)

我认为my reply关于JavaScript混淆的类似问题也适用于此:简而言之,为什么要这么麻烦?你的问题已在这里得到解答(“使用混淆器”),但我认为找出你的动机并不会有什么坏处。一般来说,你给人的代码是“掌握在敌人手中” - 如果有人想要使用它/弄清楚它是如何工作的那么糟糕,他们就会。

答案 7 :(得分:0)