以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [讨论]关于软件加密的问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=100825)

--  作者:静听枫雨
--  发布时间: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编辑过]

--  作者:有点色
--  发布时间:2017/5/19 10:53:00
--  

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

 

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


--  作者:静听枫雨
--  发布时间: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编辑过]

--  作者:狐狸爸爸
--  发布时间:2017/5/19 11:13:00
--  
用这个最保险:
http://www.foxtable.com/webhelp/scr/2658.htm

--  作者:静听枫雨
--  发布时间:2017/5/19 11:28:00
--  
图片点击可在新窗口打开查看 无形中增加成本~  小软件。也没什么人花精力去破解。只要能防止一些比较低级的修改就行了。
--  作者:有点色
--  发布时间:2017/5/19 15:08:00
--  
 回复3楼,是的,次数/时间,也保存在项目里面。