Foxtable(狐表)用户栏目专家坐堂 → [讨论]关于软件加密的问题


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

主题:[讨论]关于软件加密的问题

帅哥哟,离线,有人找我吗?
静听枫雨
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:255 积分:2152 威望:0 精华:0 注册:2013/6/8 22:41:00
[讨论]关于软件加密的问题  发帖心情 Post By:2017/5/19 10:33:00 [只看该作者]

注册码保存在什么地方更安全。下面的代码,注册码是保存在注册表里。简单的修改一下注册表,即可继续使用软件。有没有其它办法双重保护,让其修改注册表也没用呢

 

'软件注册代码开始
Dim n As Integer = Registry.GetValue("HKEY_CURRENT_USER\Software\MyAPP","Count",0)
Dim Code As String =Registry.GetValue("HKEY_CURRENT_USER\Software\MyAPP","Register" & HardDiskID,"")
Dim Ok As Boolean
If Code > "" AndAlso DecryptText(Code,"acb","abc") = HardDiskID Then '如果注册码正确
    OK = True
Else
        If n < 50 Or n=50 Then
           Forms("注册").Open()
           Code = Registry.GetValue("HKEY_CURRENT_USER\Software\MyAPP","Register" & HardDiskID,"")
              If Code > "" AndAlso DecryptText(Code,"abc","abc") = HardDiskID Then '如果注册码正确
              OK = True
              End If
        ElseIf n > 100 AndAlso Ok = False Then
           Dim Result As DialogResult
           Result = MessageBox.Show("您使用的软件已经超过使用次数,需要注册才能使用,是否注册?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
             If Result = DialogResult.Yes Then
             Forms("注册").Open()
             Code = Registry.GetValue("HKEY_CURRENT_USER\Software\MyAPP","Register" & HardDiskID,"")
                If Code > "" AndAlso DecryptText(Code,"abc","abc") = HardDiskID Then '如果注册码正确
                OK = True
                End If
             Else
            Syscmd.Project.Exit()
            End If 
       End If 
End If
Registry.SetValue("HKEY_CURRENT_USER\Software\MyAPP","Count",n + 1)
'软件注册代码结束

[此贴子已经被作者于2017/5/19 10:44:40编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/19 10:53:00 [只看该作者]

 只有试用次数这个漏洞吧?注册码是加密存放的,没问题。

 

 如果是修改次数的问题,可以这样避免:你可以把使用的次数存放在项目里面,如果项目里面的次数也达到,就限制。你也可以把初始时间存放在项目里面,如果时间超过半年,就不能再使用。


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


加好友 发短信
等级:童狐 帖子:255 积分:2152 威望:0 精华:0 注册:2013/6/8 22:41:00
  发帖心情 Post By:2017/5/19 10:59:00 [只看该作者]

使用次数 怎么存放在项目,是这样吗?

 

 

Dim n As Integer = GetConfigValue("Count",1)

 

 

其它代码

 

 

 

n = n + 1
SaveConfigValue(
"Count",n)

 

 

就是把上面的代码,第一行跟最后一行改成这个。可以吗?

[此贴子已经被作者于2017/5/19 10:59:36编辑过]

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2017/5/19 11:13:00 [只看该作者]

用这个最保险:
http://www.foxtable.com/webhelp/scr/2658.htm

 回到顶部
帅哥哟,离线,有人找我吗?
静听枫雨
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:255 积分:2152 威望:0 精华:0 注册:2013/6/8 22:41:00
  发帖心情 Post By:2017/5/19 11:28:00 [只看该作者]

图片点击可在新窗口打开查看 无形中增加成本~  小软件。也没什么人花精力去破解。只要能防止一些比较低级的修改就行了。

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/19 15:08:00 [只看该作者]

 回复3楼,是的,次数/时间,也保存在项目里面。

 回到顶部