Foxtable(狐表)用户栏目专家坐堂 → 机器码加密


  共有1982人关注过本帖树形打印复制链接

主题:机器码加密

美女呀,离线,留言给我吧!
漂亮美眉vszh
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:870 积分:7870 威望:0 精华:0 注册:2013/5/30 11:27:00
机器码加密  发帖心情 Post By:2019/11/20 17:29:00 [只看该作者]

老师:根据帮助文档做加密,仅修改了n = 1 时,打开注册窗口。发布后,放到其他电脑上运行正常;

但最近这个代码失效了,放到其他电脑上弹出n是与我开发版弹出的n值是一样的,不会换电脑就初始化为0,如何解决?

 


图片点击可在新窗口打开查看此主题相关图片如下:1234.png
图片点击可在新窗口打开查看

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107146 积分:544973 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/20 17:40:00 [只看该作者]

If n > 30 Then  
改为这样?
If n = 1 Then

这个逻辑肯定有问题啊,除非程序里添加了按钮执行这种代码: SaveConfigValue("Count",0)

否则发布后的程序是没有任何办法的了。除非删除旧的程序,然后修改代码后重新发布程序给别人使用

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40574 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2019/11/20 22:19:00 [只看该作者]

1、发布前开发者在命令窗口执行SaveConfigValue("Count",0),进行使用次数归0,(初始化)
2、这里只能用N > 0,请看帮助文件,当N = 30 ,打开了注册窗口,后面继续执行
n = n + 1
SaveConfigValue("Count",n)
也就是GetConfigValue("Count",1)得到的值在大于31以后,还在不断地递增,所以这里是大于符号,同理,您的设置在等于1以后,还在不断地递增,导致小于大于1时都不会打开注册窗口,仅有一次可注册机会,导致n <> 1时打开注册窗口的想法失效,所以,这个大于符号不能更改!

确需更改,折这样!

Dim n As Integer = GetConfigValue("Count",1)
Dim
 Code As String = GetConfigValue("Register" & ComputerId,"")
Dim
 Ok As Boolean 
If
 Code > "" AndAlso DecryptText(Code,"abc","abc") = ComputerId Then '如果注册码正确
    OK = 
True
Else
    If
 n = 1 Then
       n = n - 1 '注意这里加一行代码,让n始终比判断值小于1,下次判断则等于1,也就是您只给了用于一次试用机会,严谨一点,帮助可以这样写,也就不会出现这个问题,> 和 = 符号的不同带来的逻辑错误逻辑(上面的 if n = 1这里的1可以修改为您愿意放开给用户试用次数的任意值)
        Forms(
"注册").Open()
        Code = GetConfigValue(
"Register" & ComputerId,"")
        If
 Code > "" AndAlso DecryptText(Code,"abc","abc") = ComputerId Then '如果注册码正确

            OK = 
True
        End
 If
    End
 If
    If
 n > 60 AndAlso Ok = False Then
        Messagebox.Show(
"您正在使用的产品已经超出试用次数!")
        Syscmd.Project.
Exit()
    End
 If
End
 If
n = n + 
1
SaveConfigValue(
"Count",n)

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40574 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2019/11/20 22:47:00 [只看该作者]

仔细琢磨了一下,帮助是严谨的,这里不要用
If n = 1 Then

理由:软件加密本身就存在一定的风险性,如果别人(会破解手段的人)轻松改写Count的值大于开发者的设置试用限制次数,等于是越过了注册环节。

同时,建议大家不要统一复制帮助用Count来储存这个设置信息,自定义其他名,降低可猜测性,另外这里的限制次数,也应该用加密字符串来储存,对比时解密后对比,我觉得安全系数更高,反正,我就是这么干的!因为我相信,一定有这个人外之人,知道SaveConfigValue("Count",n)这个信息储存在什么位置,多一个加密手段,安全系数将无限提高!

 回到顶部