Qt 应用程序体验日期如何控制

宇宙的尽头是编制 2022-11-14 14:51:48

   各位网友,大家好,鄙人想做一个功能,给用户一段时间的体验体验权限,当体验到期之后,不让用户在使用了,除非用户完成授权。

   我目前做法:

1、用户首次安装软件,将首次安装的日期写到数据库中去。并默认30天使用权限。

2、用户再次运行软件时,需要用首次安装日期和当前日期做对比,如果在体验日期之内,用户继续使用。如果超出体验时间(30天),则不让用户使用,提示需要完成授权才可使用。

对于这一方案,首次安装的日期不管是写到注册表,还是数据库,都有被用户删除的风险,一旦被用户删除,认为是首次安装,又开始30天的体验,当用户得知这一规律,那么可永远使用

想请教大家的是:应用程序的数据如何防止被用户删除?或者大家有什么方案,即便是用户删除数据,也不影响30天体验权限的限制。

 

...全文
248 5 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

这种要防止逆向工程,还是挺难的。首先,你的EXE要加壳,防止反汇编,让人找到关键的比较语句的位置。但这个在专业的破解工程师那里都不是事,DUMP内存分析的话也可以破解。存储日期的地方要加密且隐蔽。如果用在线激活和限制使用,稍微好一点。只要服务器端记住客户端的UUID,并进行计数即可。总之是防君子不防小人。

最靠谱的方法是使用USB加密狗和证书。USB狗很便宜,分为管理端和客户端,有的还可以分级别(如专业版、标准版)管理。

  • 举报
回复
@丁劲犇 谢谢
戏言zare 11-23
  • 打赏
  • 举报
回复

这个我曾经做过,程序启动时会先查找注册文件,若没有,则不允许使用,并提示用户输入激活码。输入激活码后程序根据激活码(激活码中包含使用期限的信息)和当前时间,生成注册文件(文件是加密的二进制文件,用户无法手动篡改)。每次启动会读取注册文件,计算剩余使用时间。此方法唯一的缺陷就是若用户更改系统时间,则变相增加使用期限。我能做的只有判断当前系统时间是否超前于当初注册时间,若比注册时间更早则删除注册文件,提示激活。

戏言zare 11-23
  • 举报
回复
@戏言zare 可以参考我刚发布的文章:http://t.csdn.cn/Wx5NU
  • 打赏
  • 举报
回复

做运行时间限制就行,就是打开软件后开始计时,超过30分钟弹窗提示

相关推荐
发帖
Qt

1.5w+

社区成员

Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
帖子事件
编辑了帖子 (查看)
2022-11-14 14:52
创建了帖子
2022-11-14 14:51
社区公告
暂无公告