保护 DLL 的源代码

Protecting source code of a DLL

我有一个用 C# 编写的库。我想将其作为 DLL 分发。但似乎 .NET 允许对其进行舒适的反编译,因此算法很容易被窃取。

我可以用 C++ 重写它,但我是 .NET 的新手。因此,主要问题是编写 C# 接口。该库不是太大,使用线程、网络和一些数学

有没有办法建立一个只能反汇编的DLL?或者我最好只用 C++ 编写所有内容并提供 C# 接口?反编译C++比C#难多了?

分发给最终用户的所有内容都可以进行逆向工程。你可以增加付出的努力,但这总是有可能的。如果您的算法确实是关键的、专有的和有价值的,并且您仍在进行应用程序设计并且您的算法的结果不是性能关键的或者可以分块......那么也许您可以考虑使用 Web 服务方法。然后,您可以使用一些最强大的行业标准保护来访问您的计算。

如果您真的担心算法的智能 属性,那么您有一些选择。

1) 为算法申请专利。我能听到嚎叫声,但这就是你如何以合法的方式保护知识分子 属性。

2) 不要把带有算法的DLL给用户。将算法托管在云端,只允许客户以这种方式访问​​它。

还有一些我不明白。你说你会写C++,但是不知道怎么写C#的接口?使用串口。 C# 可以使用 COM 库。或者,在 C++ 中导出您的函数并编写一个使用 PInvoke 调用 C++ DLL 的 .NET 互操作库。