我即将完成一个windows应用程序的开发,我想将其作为共享软件发布。它是用C#开发的,将在.Net 3.5+机器上运行。要使用它,用户必须在线。
我的意图是让用户试用30天,然后限制其功能,直到购买了注册。
安装程序将通过msi文件提供。
有人能给出如何实现这一点的一般步骤吗?这里有一些更具体的问题:由于我试图避免为了建立一个电子商务网站而不得不预先投入大量资金,所以我在想一种方法,让用户以某种方式付款,同时提供他的电子邮件,然后他在其中收到解锁密钥。我找到了一些解决方案,如下所示:Registration services
我仍然不确定,它们是否是未来的发展方向。
我主要关心的一个问题是,如果给定的串行,例如,如果两个用户同时使用相同的串行运行程序,则应禁用该串行或采取某些其他措施,以防止重用。另一点是,我的软件可能只是从一台计算机复制到另一台计算机,而不使用安装程序,因此仅保护安装程序本身是不够的。
也许已经经历过这个过程的人可以给我一些指导,比如涉及到的一般步骤(比如1.获取域名,2.获取特定类型的webhost……)并解决我上面提到的一些问题。
我很感谢人们能给我的任何帮助。
发布于 2009-09-02 14:00:48
我没有一个有用的答案给你,但我确实有几个我想分享的观察结果,它们太大了,无法放在评论中。希望其他具有更多技术专业知识的人可以填写详细信息。
我主要关心的一个问题是,如果一个给定的串行,例如,如果两个用户同时使用相同的串行运行程序,则应该禁用该串行,或者采取一些其他措施,以防止重用。
为了确保两个人不使用相同的序列号,您的程序将必须“呼叫总部”。许多软件在安装时会通过在安装过程中将序列号传回给您来做到这一点。如果您希望实时执行此操作,则应用程序必须定期连接到您的服务器,并显示“此序列号正在使用中”。
这对用户来说不是很友好。无论何时执行序列号检查,用户都必须连接到Internet,并且必须将其防火墙配置为允许此操作。这也意味着你必须致力于维护服务器端的东西(域名,服务器架构)永远不变。如果您的服务器宕机,或者您失去了域,您的软件将变得无法运行。
当然,如果与您的服务(而不是一般的Internet )的连接对于产品的操作是必不可少的,那么它就会变得更容易,对用户更友好。
另一点是,我的软件可能只是从一台计算机复制到另一台计算机,而不使用安装程序,所以仅仅保护安装程序本身是不够的。
这里有两个攻击向量。一个是在用户系统的某个地方隐藏了一条信息。这并不是非常健壮。另一种方法是检查并编码用户的硬件配置,然后在某个地方对数据进行编码。如果用户更改了硬件,则强制产品重新激活(这就是Windows和SecuROM所做的事情)。
当你实现这一点时,请记住,从字面上讲,要防止非法复制软件是不可能的。作为一个(想必)小型软件开发人员,您需要平衡破解软件的难度和DRM对用户造成的负面影响。我个人会非常犹豫是否使用软件与您所描述的适当的检查。有些人比我更宽宏大量有些人就不是这样了。
发布于 2009-09-02 14:42:01
防止复制:根据客户的NIC MAC设置密钥。大多数用户不会麻烦地修改他们的NIC MAC。您的应用程序将有一个对话框,用于创建和发送密钥请求,包括它们的MAC。
公开的问题是,许多应用程序被破解并发布到warez网站上。通过将关键验证代码隐藏在应用程序中的多个位置来减少这种情况发生的可能性。请注意尊重诚实的用户,并确保您的密钥验证不会以任何方式惹恼他们。明确他们要购买的密钥是节点锁定的。
并担心市场渗透。通过提供没有附加条件的基础产品来获得更大的客户群。干杯--瑞克
https://stackoverflow.com/questions/1367580
复制相似问题