VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)
首页 - 经验之谈 - 用VB给商品软件加密的方法
发表评论(0)作者:孔海菁, 平台:VB6.0+Win98, 阅读:10422, 日期:2001-04-19
用VB给商品软件加密的方法
重汽内饰件厂微机室
孔海菁
---- 近几年来,笔者参与了几个商品软件的开发设计,其中如何加密软件确是个值得研究的课题,而对于小软件来说,采用加密狗进行加密是很不经济的。为此,笔者想出一妙法,在程序里完成对软件加密,这样既方便又经济,现介绍如下,望能与大家一起分享。

---- 设计原理:

---- 软件加密的目的是为了防止盗用者拷贝软件,一般拷贝软件时,只会拷贝程序所在的目录的内容,根本不会想到其他目录里还会有与程序有关的文件,特别是文件放在\WINDOWS\SYSTEM目录里,更是无从下手。这样,我们设计了两个文件,一明一暗,明的放在程序所在的目录,命名为mscredit.ini,其内容为:

---- @-version=2.0-1999-copyright-@

---- 安装软件时,应先删除mscredit.ini左边的“@”,程序自动创建c:\windows\system\dbcredit.ini文件,并在mscredit.ini里再写入左边的“@”符号,以后每次使用软件时,检查隐藏的c:\windows\system\dbcredit.ini文件是否存在,只有此文件存在时软件才能正常运行。此设计关键在于,这一明一暗两个文件同时存在,程序才能正常运行。

---- 主程序


Private Sub Form_Load()
Dim kk, ms As String, vt As Integer
’若mscredit.ini因误操作删除,则软件不能正常运行
If Dir(App.Path & "\mscredit.ini") = "" Then
   kk = MsgBox("本软件已不能正常运行,
请检查软件的合法性!", vbInformation, "    提示")
  Exit Sub
End If
’若mscredit.ini因误操作删除其内容,
则软件不能正常运行
Open App.Path & "\mscredit.ini" For Input As #1
Input #1, ms
Close #1
ms = Trim(ms)
If ms = "" Then
   kk = MsgBox("本软件已不能正常运行,
请检查软件的合法性!", vbInformation, "提示")
   Exit Sub
End If
If Left(ms, 1) < > "@" Then
’安装使用本软件,自动创建dbcredit.ini文件,
并在mscredit.ini里写入“@”符号
   vt = write_sys_init("CopyRight", "Version", "2.0")
   Open App.Path & "\mscredit.ini" For Output As #1
   ms = "@" & ms
   Print #1, ms
   Close #1
Else
’使用本软件,若dbcredit.ini因误操作
删除其内容,则软件不能正常运行
   If Dir("c:\windows\system\dbcredit.ini") = "" Then
      kk = MsgBox("本软件已不能正常运行,
请检查软件的合法性!", vbInformation, "提示")
      On Error Resume Next
      Kill App.EXEName
      On Error GoTo 0
      Exit Sub
   End If
End If
End Sub

    调用函数
Public Function write_sys_init
(gs As String, ss As String, sval As String)
As Integer
Dim retv as String
write_sys_init = 0
On Error Resume Next
retv=OSWritePrivateProfileString
(gs,ss,sval,"c:\windows\system\mscredit.ini")
If Err Then
   Err = 0
   write_sys_ini = -1
End If
On Error GoTo 0
End Function

---- 本程序在VB5.0、WIN95下调试通过。