首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >限制评估软件在C#和Windows中的启动或运行时间

限制评估软件在C#和Windows中的启动或运行时间
EN

Stack Overflow用户
提问于 2010-09-28 03:29:33
回答 4查看 2K关注 0票数 8

有没有什么好方法可以限制应用程序的启动次数,或者限制它在Windows7和C#下的使用时间?

据我所知,注册表可以很容易地编辑,有程序可以报告任何类型的文件访问,虚拟机可以用来将系统时间更改回安装应用程序的时间,等等。

我想避免上网的需要。也就是说,我不想让软件在每次启动时都使用散列等请求许可。

我看到了具有这种功能的第三方许可系统。如果实现这些方法总是很差劲,他们怎么做才不会差劲呢?

注意:我不想“破解”第三方系统。我已经有了自己的许可证系统,我想要改进。通用的,看似合理的想法是我所寻找的全部。

谢谢,安迪

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-09-28 03:57:48

这不是你问题的答案,只是一些需要思考的东西。无论你的防护系统有多复杂,都很容易被攻破。即使有在线检查,它也可以,如果有人真的很想要它,它也会被破解。

也就是说,那些想要破解你的程序的人不是你的客户,他们从来不是,也永远不会是。如果你使你的保护系统不可破解(并且没有牢不可破的保护系统),这些人就不会使用你的程序,而会找到一些他们可以破解的其他程序。

另一方面,作为你的客户的人不会试图破解它,而会购买原版。问问你自己-你真的想把你的时间、精力和金钱浪费在一个不是你的客户的人身上,而可能是为了一个真正的客户而减慢系统的速度吗?

也就是说,我认为你应该建立某种保护系统,但要遵循快速、易于实现和最不显眼的系统。

票数 7
EN

Stack Overflow用户

发布于 2010-09-28 03:43:28

构建一个相对安全但简单的软件许可系统远非易事。不用说,只要有足够的资源和时间,任何系统(除了在安全服务器上托管代码)都可能崩溃。你所能做的最好的事情就是付出比平均收益更大的努力。

如果您真的想保护自己的软件资产,那么您应该考虑使用经过商业验证的许可技术,而不是使用自己的技术。也就是说,让我们看看如何考虑以您所描述的方式进行保护。

首先,您应该认识到,在虚拟机时代,您创建的任何文件或注册表项都可以轻松回滚。如果在验证过程中没有在线组件,您就无法阻止这种情况。

您可以做的事情如下:

  • 存储系统使用天数的加密值-每次使用系统时,加密计数器都会递减到零。
  • 存储软件上次被使用的日期/时间的加密值,以及其他三个值的加密哈希。

现在,您有了一种方法来检查这些值是否一致,并限制某人篡改它们的能力。您还应该对这些值加盐,这样它们就不会很容易地被重播。

票数 1
EN

Stack Overflow用户

发布于 2010-09-28 03:39:29

使用注册表,但使用过期日期加密条目。它不是万无一失的,但它可以留住75%的偶尔作弊的人。

其他一些技巧:

  1. 也存储了使用的天数(可能在另一个注册表密钥中或完全不同的地方),所以如果时间倒退,使用的天数保持不变。
  2. 在您的加密中使用某种形式的盐,因此具有相同exp日期的两个程序将具有不同的值。
  3. 远离真正令人讨厌的东西,如写入硬盘的引导扇区(查看您的Adobe)您将失去更多的用户,而不是从DRM中获得的用户。

任何安全系统的关键是你不能相信他们控制的任何东西。任何没有互联网检查的系统,您都无法阻止它们重新加载VM。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3807129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档