有没有什么好方法可以限制应用程序的启动次数,或者限制它在Windows7和C#下的使用时间?
据我所知,注册表可以很容易地编辑,有程序可以报告任何类型的文件访问,虚拟机可以用来将系统时间更改回安装应用程序的时间,等等。
我想避免上网的需要。也就是说,我不想让软件在每次启动时都使用散列等请求许可。
我看到了具有这种功能的第三方许可系统。如果实现这些方法总是很差劲,他们怎么做才不会差劲呢?
注意:我不想“破解”第三方系统。我已经有了自己的许可证系统,我想要改进。通用的,看似合理的想法是我所寻找的全部。
谢谢,安迪
发布于 2010-09-28 03:57:48
这不是你问题的答案,只是一些需要思考的东西。无论你的防护系统有多复杂,都很容易被攻破。即使有在线检查,它也可以,如果有人真的很想要它,它也会被破解。
也就是说,那些想要破解你的程序的人不是你的客户,他们从来不是,也永远不会是。如果你使你的保护系统不可破解(并且没有牢不可破的保护系统),这些人就不会使用你的程序,而会找到一些他们可以破解的其他程序。
另一方面,作为你的客户的人不会试图破解它,而会购买原版。问问你自己-你真的想把你的时间、精力和金钱浪费在一个不是你的客户的人身上,而可能是为了一个真正的客户而减慢系统的速度吗?
也就是说,我认为你应该建立某种保护系统,但要遵循快速、易于实现和最不显眼的系统。
发布于 2010-09-28 03:43:28
构建一个相对安全但简单的软件许可系统远非易事。不用说,只要有足够的资源和时间,任何系统(除了在安全服务器上托管代码)都可能崩溃。你所能做的最好的事情就是付出比平均收益更大的努力。
如果您真的想保护自己的软件资产,那么您应该考虑使用经过商业验证的许可技术,而不是使用自己的技术。也就是说,让我们看看如何考虑以您所描述的方式进行保护。
首先,您应该认识到,在虚拟机时代,您创建的任何文件或注册表项都可以轻松回滚。如果在验证过程中没有在线组件,您就无法阻止这种情况。
您可以做的事情如下:
现在,您有了一种方法来检查这些值是否一致,并限制某人篡改它们的能力。您还应该对这些值加盐,这样它们就不会很容易地被重播。
发布于 2010-09-28 03:39:29
使用注册表,但使用过期日期加密条目。它不是万无一失的,但它可以留住75%的偶尔作弊的人。
其他一些技巧:
任何安全系统的关键是你不能相信他们控制的任何东西。任何没有互联网检查的系统,您都无法阻止它们重新加载VM。
https://stackoverflow.com/questions/3807129
复制相似问题