| Access-DB als Demo weitergeben |
|
|
|
| MS-Access Bsp. DB's - Bsp. Downloads Sicherheit | |||||||||||||||||||||||||||||||
| Montag, den 14. Januar 2008 um 01:00 Uhr | |||||||||||||||||||||||||||||||
|
Problemstellung: Manchmal will man ein eigenes Programm erstmal nur als Demo weitergeben. Um es aber gleich vorweg zu nehmen, es gibt keine absolute Sicherheit das dies jemand knackt. 1. DB startet nur einen bestimmten Zeitraum 2. DB kann nur eine bestimmte Anzahl von Starts ausgeführt werden Voraussetzungen: Das Bsp ist unter A00, AXP, A03 lauffähig, unter A07 wurde es nicht getestet. Funktionsweise:
Für alle Lösungen wird das Modul „mod_Crypter“ benötigt. Dort sind die Routinen zum Verschlüsseln der Werte enthalten.Für die Property Lösungen wird das Modul „mod_Properties“ benötigt und für die Registry Lösungen das Modul „mod_Registry“.Im Download ist für jede Lösung jeweils die MDE- und MDB-Datei enthalten. Der Prüfcode wird im Load-Ereignis des Startforms hinterlegt.Das Passwort zum Verschlüsseln wird in der Konstanten „sPWD“, hier im Bsp „geheim“ (beliebig änderbar) im Startform gespeichert.Anzahl Tage: In den Zeitraumvarianten wird in der Konstanten „intCountDays“ die Anzahl der Testtage festgelegt, hier im Bsp 30 Tage.Wobei eine zurücksetzen des Systemdatums nicht unterbunden werden kann bzw. geprüft wird. Property Version:Im Load Ereignis des Startforms wird zuerst geprüft ob die Property, hier „Testtime“ (kann beliebig verändert werden), bereits vorhanden ist.sValue = GetProp("Testtime") Fehlt die Property wird sie mit dem verschlüsselten aktuellem Datum erstellt
SetProp "Testtime", dbText, Encrypt(sDate, sPWD) Ist die Property vorhanden wird diese ausgelesen und entschlüsselt
varTemp = Decrypt(sValue, sPWD) dateTemp = DateSerial(Right(varTemp, 2), Mid(varTemp, 3, 2), Left(varTemp, 2intDays = DateDiff("d", Date, dateTemp) sValue = GetProp("Testtime") Danach erfolgt der Vergleich des aktuellen Datums mit dem gespeicherten Wert der Property If intDays < (intCountDays * -1) Then Ist der Wert der Konstanten überschritten wird das Programm geschlossen. Die Sache hat aber einen Haken.
sTemp = fWertLesen(HKEY_CURRENT_USER, "WinApp", "WinAppValue") Fehlt der Registryeintrag wird dieser mit dem verschlüsselten aktuellem Datum erstellt.
If sTemp = "" Then Ist der Registryeintrag vorhanden wird diese ausgelesen und entschlüsselt.
sDateTemp = Decrypt(sTemp, sPWD) Danach erfolgt der Vergleich des aktuellen Datums mit dem gespeicherten Wert des Registryeintrags
If intDays < (intCountDays * -1) Then Ist der Wert der Konstanten überschritten wird das Programm geschlossen.
Anzahl Programmstarts:
sValue = GetProp("CountStart") Fehlt die Property wird sie mit dem Wert 1 * dem Faktor verschlüsselt erstellt.
If fProp = False Then Ist die Property vorhanden wird diese ausgelesen und entschlüsselt und um den Wert 1 erhöht. Der neue Wert wird gleich wieder verschlüsselt in die Property zurück geschrieben
sValueTemp = Decrypt(sValue, sPWD) Danach erfolgt der Vergleich mit dem Wert der Konstanten für die max. Anzahl der Starts mit dem gespeicherten Wert der Property.
intDiff = intCountStart - intValueTemp Ist der Wert bei 0 angekommen wird das Programm geschlossen. Die Sache hat aber auch hier den gleichen Haken. Nach jeder Neuinstallation des Programms fehlt die Property und die Zählung beginnt von vorn. Registry Version: sTemp = fWertLesen(HKEY_CURRENT_USER, "WinApp", "WinAppStart")
If sTemp = "" Then Ist der Registryeintrag vorhanden wird dieser ausgelesen und entschlüsselt und um den Wert 1 erhöht. Der neue Wert wird gleich wieder verschlüsselt in den Registryeintrag zurück geschrieben. sValueTemp = Decrypt(sTemp, sPWD) Danach erfolgt der Vergleich mit dem Wert der Konstanten für die max. Anzahl der Starts mit dem gespeicherten Wert der Registry.
intDiff = intCountStart - intValueTemp Ist der Wert der Konstanten überschritten wird das Programm geschlossen. Um bei Testzwecken die Properties bzw. Registryeinträge zu löschen geht man so vor:
fWerteLoeschen HKEY_CURRENT_USER, "WinApp", "WinAppValue" Aufgrund dieser Lösung ist es erforderlich das andere Pfade als in dem Bsp verwendet werden. Es kann nur der Schüssel gelöscht werden wenn dieser bekannt ist. Für Property:
Public Sub DeleteProp(strDBPfad As String, strProp As String) Der Aufruf sähe z.B. so aus:
DeleteProp "C:\DeinPfad\DeineDB.mdb", "Testtime" Auch hier gilt andere Bezeichnungen zu verwenden, denn es kann nur gelöscht werden wenn der Name der Property bekannt ist. Fazit:
Die Registryvariante ist sicherer als die Lösung mittels Property. Ich übernehme aber keinerlei Haftung, für entstandene Schäden durch die Verwendung dieses Beispiels und/oder durch Dritte
Downloads in dieser KategorieMS-Access Sicherheit![]()
|
|||||||||||||||||||||||||||||||
| Datum | Klicks |
|---|---|
| Total | 4860 |
| Mi. 23 | 2 |
| Di. 22 | 4 |
| Mo. 21 | 3 |
| So. 20 | 6 |
| Sa. 19 | 4 |
| Fr. 18 | 7 |
| Do. 17 | 4 |
| < Zurück | Weiter > |
|---|
Login
Latest News
- 26 October 2011 Aktuelle Servicepacks Office
- 04 September 2011 Arbeiten mit EXIF-Tags
- 18 June 2011 Errechnen einer IBAN mit Access
- 08 June 2011 Nächste freie Nummer/Zahl ermitteln
- 30 May 2011 Verwaltung eines Skatturniers
Latest Comments
- Zwischenablage in MS-Access nu...
Hallo Raul, auch Dir danke für den Hinweis. Werde ... Mehr...
10.04.12 11:11
von TommyK - Zwischenablage in MS-Access nu...
Hallo Tommy, ich kann das von haarwurm bestätigen.... Mehr...
10.04.12 10:38
von Raul Katos - Userverwaltung II
Hallo Donni, wir machen mal hier weiter: http://ww... Mehr...
15.01.12 17:10
von TommyK - Userverwaltung II
Hallo Tommy, irgendwie habe ich das wohl nicht ric... Mehr...
15.01.12 16:31
von Donni - Userverwaltung II
Hallo Donni, dann setze in den Eigenschaften von "... Mehr...
15.01.12 09:45
von TommyK
Latest Downloads
Latest Forum Posts
-
-
- Datum problem
- In MS-Access - Fragen und Antworten
- at 16:44 on Mai 22, 2012 (CEST)
-
-
-
- zwei Tabellen in Abfrage verbinden - Probleme
- In MS-Access - Fragen und Antworten
- at 07:51 on Mai 16, 2012 (CEST)
-
-
-
- Änderung des Standarddruckers mittels VBA
- In MS-Access - Fragen und Antworten
- at 08:45 on Apr 13, 2012 (CEST)
-
-
-
- Serien-PDF-Dateien erstellen mit Code von Lebans
- In MS-Access - Fragen und Antworten
- at 17:30 on Apr 07, 2012 (CEST)
-
-
-
- Frage zu Unicounter
- In MS-Access - Fragen und Antworten
- at 08:24 on Mär 29, 2012 (CEST)
-
Download Statistik
41 Kategorien |





Seite: 1