1

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

当我以我一贯的方式制作 DLL 时,通过制作类库项目、导入我的类并编译它,仍然可以查看源代码。

4

6 回答 6

9

我相信你正在寻找一个混淆器。这是一个工具,它将获取已编译的 DLL 并重写代码,以防止其他用户对它进行有意义的反编译。Visual Studio 附带一个免费的Dotfuscator

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

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

于 2009-02-05T14:24:38.647 回答
4

混淆是您要搜索的内容。

Visual Studio 中有一个免费的(有限的)叫做 Dotfuscator。

使用花哨的方法重命名您的代码并更改流路以使其模糊。

于 2009-02-05T13:32:26.473 回答
1

考虑使用混淆器。

于 2009-02-05T13:32:13.963 回答
1

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

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

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

于 2009-02-05T13:47:47.940 回答
0

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

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

于 2009-02-05T13:33:53.880 回答
0

我认为对有关 JavaScript 混淆的类似问题的回答也适用于此处:简而言之,为什么要打扰?您的问题已在此处得到解答(“使用混淆器”),但我认为找出您的动机并没有什么坏处。一般来说,你给别人的代码是“在敌人手中”——如果有人想使用它/弄清楚它是如何工作得不够糟糕的,他们会的。

于 2009-02-05T15:14:40.073 回答