存储软件保护目的的保护试用信息的位置

Pet*_*Lee 16 c# protection store trial

它可能与其他问题重复,但我发誓我搜索了很多并在StackOverflow.com上搜索了很多,我找不到我的问题的答案:

在C#.Net应用程序中,存储保护试用信息的位置,例如到期日期,使用次数?

据我所知,各种软件保护策略都可以被一个狡猾的黑客破解(因为他们几乎总能绕过到期检查步骤).但我现在要做的只是以合理的方式保护它,使"普通"/"高级"用户无法搞砸.

好的,为了证明我在StackOverflow.com上搜索了很多搜索,我列出了我得到的所有策略:

1.注册表项

首先,一些用户可能无法访问甚至读取Registry表.

其次,如果我们将保护试用信息放在注册表项中,则用户可以通过比较软件安装之前和之后的差异来始终找到它.他们可以简单地改变它.

好的,您可能会说我们应该加密保护试用信息,是的,我们可以做到这一点.但是如果用户在安装之前只更改了系统日期呢?

好吧,你可能会说我们也应该把最后使用的日期,如果出现问题,最后使用的日期可以作为保护指南.但是,如果用户只是卸载软件并删除与该软件相关的所有注册表项,然后重新安装软件,该怎么办?

我不知道如何处理这个问题.请帮忙.

普通文件

首先,有一些地方放普通文件:

  • 2.a)软件安装路径下的简单XML文件
  • 2.b)配置文件

同样,用户可以卸载软件并删除这些普通文件,然后重新安装软件.

- 软件本身

如果我们将保护试用信息(到期日期,我们不能将使用次数)放在软件本身中,它仍然容易受到我上面提到的情况的影响.此外,这样做甚至都不酷.

- 试用产品密钥

它的工作方式类似于许可过程,也就是说,我们将试用信息放入RSA签名的字符串中.但是,要求用户尝试使用该软件需要太多步骤(他们可能会失去耐心):

  • 4.a)用户下载软件;
  • 4.b)用户通过提供用户名(或电子邮件)或硬件信息发送电子邮件以请求试用产品密钥;
  • 4.c)服务器接收请求,RSA签名并发回给用户;
  • 4.d)用户现在可以在(到期日期和使用次数)条件下使用它.

现在,服务器记录了用户的用户名或硬件信息,因此用户将被拒绝请求第二次审判.收集硬件信息是否合法?

总之,用户必须再做一个额外的步骤(请求试用产品密钥)只是为了尝试使用该软件,这并不酷(将自己视为用户).

注意:此问题与许可无关,而是与存储试用信息的位置有关.试用期结束后,用户应该要求许可证(CD-Key/Product-Key).我将使用RSA签名(绑定到用户硬件)

PS:我的软件将针对中国市场,其软件市场与美国不同.在中国大多数人,他们只购买硬件,他们通常不会购买Micosoft Windows/Office等软件(他们只使用盗版).但是,一些针对特定领域的专业软件,研究人员仍然愿意购买它,如果没有破解版本或破解版本很难安装.

Joe*_*orn 13

选项1(普通注册表项)或2(普通文件)都可以.这是我的推理:

  • 标准特权用户确实具有注册表的读取权限.如果他们无法读取您的密钥,则其他错误.标准特权用户没有注册表的写权限,但这并不重要,因为他们也没有首先安装软件的权限.换句话说,用户将有权在安装时创建注册表项,或者无论如何都需要帮助安装.因此,您为注册表项引发的基本技术问题并不是真正的因素.
  • 只是不要担心那些执行诸如缩短系统时钟或手动破解注册表以破坏密钥的用户.让我再说一遍:只是不要担心有意识地决定改变他们的系统以超越你的试用限制的用户 - 并且毫无疑问,设置系统时钟或编辑注册表是重大修改.你不应该担心这些用户的原因是他们的潜在收入恰好是0美元.一个愿意采取这种有意识的盗版软件选择的用户不会放弃并决定支付你的产品,如果它不起作用.如果他们无法免费获得您的软件,他们要么与竞争对手一起去,要么不做.你是为了赚钱 - 你不想花时间和资源试图抓住你无法赢得的销售或者将用户送到竞争对手那里.因此,您为任一选项提出的基本安全问题都不是一个因素.