4

我需要创建一个在 30 天后无法运行的简单应用程序。

我怎样才能做到这一点 ?

有没有办法在 30 天后使用试用程序?

4

6 回答 6

14

总有办法在 30 天后使用试用程序。

于 2010-03-20T00:23:53.310 回答
12

如果“最好”是指最不易损坏,那么实际上只有一种方法:使其成为基于 Internet 的“软件即服务”应用程序。如果您不提供访问权限,他们就没有使用该软件。如果它是基于桌面的应用程序,那么某些关键功能仍然必须位于某处的在线服务器上。

如果黑客在其本地机器上拥有整个应用程序,则可以对其进行逆向工程并以某种方式“破解”。克服这个问题的唯一方法是确保某些功能永远不会出现在他们的机器上。

于 2010-03-20T00:34:34.100 回答
7

我认为更好的解决方案是功能受限的应用程序——假设您可以进行基本操作,但要利用最佳功能,您必须获得付费许可证。这做了两件事——假设你的应用程序做得很好并且对各种用户都很感兴趣。首先,您可以吸引更多人试用您的应用。其次,您可以通过免费发布“精简版”版本来获得一些善意。

如果您确实需要进行限时试用,那么我会考虑让它将加密密钥写入注册表(Windows)或点文件(Linux)。该密钥可以对到期日期进行编码。使用可逆加密可以让您恢复该值。使用密钥有助于防止有人生成自己的(有效)密钥。完全许可的应用程序可以使用相同的密钥机制,但加密允许永久使用的密钥值。

于 2010-03-20T00:39:28.273 回答
6

从我对implementation-expiration-dates-in-an-application/1871218#1871218 的回答

可能对用户最友好的做法是跟踪用户使用您的软件的天数。例如,每次您的程序启动时,您都可以将日期写入加密文件(除非该日期已存在于文件中)。然后,一旦文件中有超过 30 个日期,就让用户知道是时候购买完整版了。

Beyond Compare 等真实产品使用此方案 - 非常适合安装您的产品但 30 天未使用它却发现试用已过期的潜在客户。

还要记住,你的方案不必完美,只要让它足够强大,用户就不会方便破坏它。

于 2010-03-20T01:03:49.603 回答
3

让程序在第一次运行时从您的服务器请求一个密钥,并在每次程序启动时和每 24 小时检查一次其有效性。

于 2010-03-20T00:24:21.320 回答
1

另一种选择是在下载应用程序时使用服务器端编译器。这可以将许可证密钥“注入”到二进制文件中。您可以使用单独文件中的常量来执行此操作。然后可以将其与其他预编译文件链接。这种方法速度较慢,但​​更难破解,因为黑客需要反编译程序。

于 2010-03-20T00:47:50.680 回答