用VB給商品軟件加密的方法

字號:

近幾年來,筆者參與了幾個商品軟件的開發(fā)設計,其中如何加密軟件確是個值得研究的課題,而對于小軟件來說,采用加密狗進行加密是很不經(jīng)濟的。為此,筆者想出一妙法,在程序里完成對軟件加密,這樣既方便又經(jīng)濟,現(xiàn)介紹如下,望能與大家一起分享。
    ---- 設計原理:
    ---- 軟件加密的目的是為了防止盜用者拷貝軟件,一般拷貝軟件時,只會拷貝程序所在的目錄的內(nèi)容,根本不會想到其他目錄里還會有與程序有關的文件,特別是文件放在WINDOWSSYSTEM目錄里,更是無從下手。這樣,我們設計了兩個文件,一明一暗,明的放在程序所在的目錄,命名為mscredit.ini,其內(nèi)容為:
    ---- @-version=2.0-1999-copyright-@
    ---- 安裝軟件時,應先刪除mscredit.ini左邊的“@”,程序自動創(chuàng)建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因誤操作刪除其內(nèi)容,
    則軟件不能正常運行
    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
    ’安裝使用本軟件,自動創(chuàng)建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因誤操作
    刪除其內(nèi)容,則軟件不能正常運行
     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
     調(diào)用函數(shù)
    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下調(diào)試通過。