TKSoft-Online

Demos von Access-DB's freischalten PDF Drucken E-Mail
( 2 Votes )
MS-Access Bsp. DB's - Bsp. Downloads Sicherheit
  
Montag, den 14. Januar 2008 um 01:00 Uhr

 

Problemstellung:

Bezugnehmend auf den Beitrag
Access-DB als Demo weitergeben
hab ich mal den Faden weiter gesponnen um das Demo mit einem Lizenzschlüssel freizuschalten.
Ich gehe aber hier nur auf die Registry-Lösung ein (mit der Property-Lösung ist aber genau so möglich).
Auch ist in der Bsp-DB nur die Möglichkeit der zeitlichen Limitierung enthalten, die Lösung mit der
Anzahl der DB-Starts funktioniert äquvivalent.

 

Voraussetzungen:

Das Bsp ist unter A00, AXP, A03 lauffähig, unter A07 wurde es nicht getestet.

Funktionsweise:

In der Datei "tk_Lizenzverwaltung00.mdb" besteht die Möglichkeit mehrere Projekte zu verwalten.
Die MDB ist sehr einfach aufgebaut und nur zur Demonstration.
Im Formulare werden im HFO nur der Programmname und das Passwort festgelegt.




Das Kennwort ist das, welches dann im eigentlichen Programm als globale Konstante gesetzt wird.
Dieses Kennwort wird zur Verschlüsselung der Angaben benötigt.
Durch verschiedene Kennwörter kommt bei gleichen Usern niemals der gleiche Schlüssel raus.
Sprich bei verschiedenen Programmen muss nur immer ein anderes Kennwort festgelegt werden.
Möchte ein User das Programm lizenzieren, muss er seinen Namen und seine E-Mail Adresse angeben.
Daraus berechnet das Programm einen 16stelligen Schlüssel.
Ansicht des Feldes in der Abfrage:

UserKey: Hex$(CRC32Unicode(Encrypt([Username];[ProgrammPWD]))) & "-" & Hex$(CRC32Unicode(Encrypt([User_EMail];[ProgrammPWD])))

Zur Ausführung werden die Module "mod_CRC32" und "mod_Crypter" benötigt.
Den erhaltenen Schlüssel erhält dann der User an seine E-Mail Adresse zur Freischaltung und damit kommen wir zu Teil2.

Im Modul "mod_Crypter" wird die globale Konstante "sPWD" mit dem Kennwort der DB festgelegt.

Public Const sPWD As String = "geheim"


Beim ersten Starten der "tk_Freischaltung97" bzw. "tk_Freischaltung00" wird der Registerschlüssel für den
Benutzungszeitraum gesetzt. Näheres dazu s. hier
Access-DB als Demo weitergeben
Wenn jetzt ein User das Programm freischalten will fordert er einen Lizenzschlüssel an, s.o.
Nach Erhalt dieses Schlüssels kann dieser in das Registrierformular eingegeben werden.

Die Eingabe von Namen und E-Mail Adresse muss genauso erfolgen wie bei der Anforderung.
Auch ist die Groß- und Kleinschreibung zu beachten. Sind alle Angaben gemacht werden mit
dem Button „Registrieren“ alle Angaben geprüft.

Private Sub cmd_Reg_Click()
    Dim sTempKey As String
    sTempKey = Hex$(CRC32Unicode(Encrypt(Me.txt_Name, sPWD))) & "-" & _
               Hex$(CRC32Unicode(Encrypt(Me.txt_Email, sPWD)))
    If sTempKey = Me.txt_RegKey Then
        MsgBox "Der eingegebene Registrierschlüssel ist richtig." & vbNewLine & _
               "Das Programm ist jetzt registriert.", vbInformation + vbOKOnly, "Fehler"
        fStringSpeichern HKEY_CURRENT_USER, "WinApp", "WinAppLUser", Me.txt_Name
        fStringSpeichern HKEY_CURRENT_USER, "WinApp", "WinAppEMailUser", Me.txt_Email
        fStringSpeichern HKEY_CURRENT_USER, "WinApp", "WinAppLKey", sTempKey
        DoCmd.Close
        Forms![frm_Start]![txt_Start].SetFocus
        Forms![frm_Start]![cmd_Reg].Enabled = False
    Else
        MsgBox "Der eingegebene Registrierschlüssel ist falsch." & vbNewLine & _
               "Bitte geben Sie den richtigen Schlüssel ein.", vbCritical + vbOKOnly, "Fehler"
    End If
End Sub


Es wird aus Name, E-Mail Adresse und Kennwort der Lizenzschlüssel gebildet und mit dem eingegebenen verglichen.
Stimmen beide überein werden die Angaben in die Registry geschrieben ansonsten ist die Registrierung fehlgeschlagen.


Beim nächsten Starten der DB werden die Schlüssel gesucht und geprüft. Ist alles o.k. startet das Programm ganz normal.
Wurde dagegen der Schlüssel manipuliert wird das Programm wieder in den Demo-Modus zurück gesetzt.

Private Sub Form_Load()
    On Error Resume Next
    Dim sDateTemp As String
    Dim intDays As Integer
    Dim sTemp As String, sTemp2 As String
    Dim sTemp3 As String, sTemp4 As String
    Dim sTempKey As String
    Dim sValue As String
    Dim dateTemp As Date

    sTemp = fWertLesen(HKEY_CURRENT_USER, "WinApp", "WinAppValue")
    sTemp2 = fWertLesen(HKEY_CURRENT_USER, "WinApp", "WinAppLKey")
    sTemp3 = fWertLesen(HKEY_CURRENT_USER, "WinApp", "WinAppLUser")
    sTemp4 = fWertLesen(HKEY_CURRENT_USER, "WinApp", "WinAppEMailUser")
    sValue = Encrypt(Day(Date) & Format(Month(Date), "00") & Year(Date), sPWD)

    If sTemp = "" Then
        fStringSpeichern HKEY_CURRENT_USER, "WinApp", "WinAppValue", sValue
        MsgBox "Sie können das Programm noch 30 Tage testen"
    Else
        If sTemp2 <> "" Or sTemp3 <> "" Or sTemp4 <> "" Then
            Me.cmd_Reg.Enabled = False
            sTempKey = Hex$(CRC32Unicode(Encrypt(sTemp3, sPWD))) & "-" & _
                       Hex$(CRC32Unicode(Encrypt(sTemp4, sPWD)))
            If sTempKey <> sTemp2 Then
                MsgBox "Der in der Registry vorhandene Schlüssel ist falsch." & vbNewLine & _
                       "Bitte geben Sie den richtigen Schlüssel neu ein.", vbCritical + vbOKOnly, "Fehler"
                fWerteLoeschen HKEY_CURRENT_USER, "WinApp", "WinAppLKey"
                fWerteLoeschen HKEY_CURRENT_USER, "WinApp", "WinAppLUser"
                fWerteLoeschen HKEY_CURRENT_USER, "WinApp", "WinAppEMailUser"
                Me.cmd_Reg.Enabled = True
            End If
        Else
            Me.cmd_Reg.Enabled = True
            sDateTemp = Decrypt(sTemp, sPWD)
            dateTemp = DateSerial(Right(sDateTemp, 2), Mid(sDateTemp, 3, 2), Left(sDateTemp, 2))
            intDays = DateDiff("d", Date, dateTemp)
            If intDays < (intCountDays * -1) Then
                MsgBox "Testzeitraum abgelaufen"
                DoCmd.Quit
            Else
                MsgBox "Sie können das Programm noch " & intCountDays + intDays & " Tage testen"
            End If
        End If
    End If
End Sub

 

Zusammenfassung:
Diese Lösung stellt keine ultimative Lösung und schon gar nicht den absoluten Schutz des Programms dar aber ist eine einfache Alternative.
Sinn würde der Einsatz nur in MDE-Dateien oder in MDB-Dateien mit geschütztem VBA-Code machen.

Download nur für registrierte User

Demos von Access-DB's freischalten

Demos von Access-DB's freischalten
für A00-A03, A07 nicht getestet

Die Zip-Datei enthält eine Version ab A00

Diese Kategorie erfordert eine Registrierung um Daten downloaden zu können.
Sollten Sie bereits registriert sein, so melden Sie sich bitte an.




Erstellt am
Dateigröße
Downloads
10.01.2008
93.15 KB
1727


Downloads in dieser Kategorie

MS-Access Sicherheit

MS-Access Sicherheit

 Seite: 1


DatumKlicks
Total3363
Di. 222
Mo. 213
So. 204
Fr. 183
Do. 172
Di. 157
Mo. 142
Aktualisiert ( Mittwoch, den 19. Oktober 2011 um 12:53 Uhr )
 

Kommentar schreiben


Sicherheitscode
Aktualisieren

Login

Latest Comments

Latest Forum Posts

Mehr »

Download Statistik

41 Kategorien
187 Dateien
173413 Downloads