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


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

主题:机器码加密

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望: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)

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望: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)这个信息储存在什么位置,多一个加密手段,安全系数将无限提高!

 回到顶部