40

我免费发布了一堆工具,但最近我开始销售一个应用程序,它有私人研究,人们已经能够获得我的源代码,并且有人公开发布了我的全部源代码。我花了很多时间在这个程序上,只是为了有人破解它,并发布我的全部源代码。

我该如何保护我的程序?我已经尝试过 HWID,但人们仍然能够破解它。我知道我受到 C# 的限制,但它使用起来最方便。我只需要一种方法来保护我的程序免受试图这样做的人的影响。

4

4 回答 4

36

您可以查看现有的许多混淆工具,例如:

于 2013-10-03T15:56:50.873 回答
9

好吧,像 C#/Java 这样的语言的问题在于它们通常更容易去混淆。确保这一点的方法通常是将这些东西放入网络服务中,但你说你不能真正做到这一点。将特定的重要函数移植到像 C 这样的语言上,然后混淆它呢?然后,您的 C# 程序可以使用反射来调用此外部/非托管 dll。这会增加去混淆的难度,但问题是如果有人想要它足够糟糕,他们可以解决它,因为它是客户端。

可能法律诉讼是这里唯一真正的解决方案,但这不是提供法律建议的网站,如果是,我也没有资格提供。

此外,这可能是一个商业决策。考虑使您的软件开源并发布捐赠链接。我也没有资格提供商业建议,但这值得考虑。它实际上可能会增加您的收入,更不用说发布开源软件带来的其他好处了。

于 2013-10-03T17:25:54.417 回答
4

有 Dotfuscator ( http://www.preemptive.com/products/dotfuscator/overview )。但在某些情况下,最好的解决方案是提供您作为网站所做的工作(软件即服务)。

考虑使用此工具将 VB 转换为 C#: http ://converter.telerik.com/

或者这个工具来格式化 JSON:http: //jsonformatter.curiousconcept.com/

这可能适合您,也可能不适合您。我不知道您要保护的软件的性质是什么。

于 2013-10-03T15:59:23.623 回答
2

不,您的代码需要包含解密所需的信息,这是一个不可能解决的问题。

您最好的解决方案是将您的知识产权放在只有您可以访问的云服务器上。为您的客户提供一个独特的登录名,审核他们的访问权限以检查是否存在滥用行为,将尽可能多的繁重工作卸载到您的客户机器上,但将您的算法锁定在云中。

于 2013-10-08T16:00:42.940 回答