![]() ![]() |
|
用VB给商品软件加密的方法 | |
作者:佚名 文章来源:不详 点击数 更新时间:2008/4/18 14:44:23 文章录入:杜斌 责任编辑:杜斌 | |
|
|
---- 设计原理: ---- 软件加密的目的是为了防止盗用者拷贝软件,一般拷贝软件时,只会拷贝程序所在的目录的内容,根本不会想到其他目录里还会有与程序有关的文件,特别是文件放在WINDOWSSYSTEM目录里,更是无从下手。这样,我们设计了两个文件,一明一暗,明的放在程序所在的目录,命名为mscredit.ini,其内容为: ---- @-version=2.0-1999-copyright-@ ---- 安装软件时,应先删除mscredit.ini左边的“@”,程序自动创建c:windowssystemdbcredit.ini文件,并在mscredit.ini里再写入左边的“@”符号,以后每次使用软件时,检查隐藏的c:windowssystemdbcredit.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:windowssystemdbcredit.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:windowssystemmscredit.ini") If Err Then Err = 0 write_sys_ini = -1 End If On Error GoTo 0 End Function ---- 本程序在VB5.0、WIN95下调试通过。 |
|
![]() ![]() |