PDA

Vollständige Version anzeigen : Demo erstellen


TommyK
23.12.2004, 06:41
Hallo,

Problemstellung:
Manchmal will man ein eigenes Programm erstmal nur als Demo weitergeben. Nun ist das unter der Access Runtime bzw. mit VB6 kein großes Problem.
Mit normalem MS-Access gibt es verschiedene Wege, die aber alle nicht 100 %ig sicher sind.
Grundvorraussetzung ist die Weitergabe als MDE-Datei, da ich keinerlei Programmcode sichtbar ist und manipuliert werden kann.
Eine Lösung wäre die Anzahl von DS in einer Tabelle beschränken und diesen Wert mittels DCount zu prüfen.
Die beiden Lösungen, die hier vorstellen möchte, gehen einen etwas anderen Weg.
Der Beitrag entstand, da immer wieder mal die Frage hier auftauchte.

Ich hab mal 4 Möglichkeiten vorbereitet.
Um es aber gleich vorweg zu nehmen, es gibt keine absolute Sicherheit das dies jemand knackt.

1. DB startet nur einen bestimmten Zeitraum
1.1 Wert und Prüfung erfolgt über eine Private Property
1.2 Wert und Prüfung erfolgt über einen Eintrag in der Registry

2. DB kann nur eine bestimmte Anzahl von Starts ausgeführt werden
2.1 Wert und Prüfung erfolgt über eine Private Property
2.2 Wert und Prüfung erfolgt über einen Eintrag in der Registry

Den ausführlichen Text lesen und die Bsp-DB's downloaden geht es hier lang:
Access-DB als Demo weitergeben,
wahlweise mit Zeitlimit oder Anzahl der Programmstarts
(http://www.tksoft-online.de/MS-Access-Bsp.-DB-s/Bsp.-Downloads-Sicherheit/Access-DB-als-Demo-weitergeben.html)

PS:
Im Downloadverzeichnis ist für jede Lösung eine MDE- und MDB-Datei enthalten.
Auch in der MDB-Version ist die Shifttaste deaktiviert. Das ist auch gewollt um
zu zeigen das es im Notfall auch mit MDB-Dateien klappt. Wer versiert ist kriegt es auch hin, die Taste von außen wieder einzuschalten. ;)
Wer nicht wird auch auf meiner HP fündig.

Ein Feedback wäre prima!

Zusatz vom 15.01.2005:
Leider ist ein kleiner Fehler im Code.
Da die Month-Funktion keine führenden Nullen ausgibt kommt es zu eimem Fehler in den Monaten 1-9.
Im Load Ereignis des Startforms ist die Zeile:
sValue = Encrypt(Day(Date) & Month(Date) & Year(Date), sPWD)
in
sValue = Encrypt(Day(Date) & Format(Month(Date), "00") & Year(Date), sPWD)
zu ändern

TommyK
17.01.2005, 16:19
Hallo,

es gibt jetzt einen 2. Teil zu diesem Thema.
Hier wird gezeigt wie man Demo's mittels Lizenz Schlüssel freischalten kann.
Demos von Access-DB's freischalten
(http://www.tksoft-online.de/MS-Access-Bsp.-DB-s/Bsp.-Downloads-Sicherheit/Demos-von-Access-DB-s-freischalten.html)

Viel Spass damit.

TommyK
07.02.2005, 15:43
Hallo,

aufgrund des Hinweises von Claus33 (http://www.ms-office-forum.net/forum/showpost.php?p=680095&postcount=37 ) hab ich den Download aktualisiert.

Michael81
29.05.2007, 20:35
Hallo Thomas, ich stöbere gerade durch das Forum und bin auf dieses Thema aufmerksam geworden. Natürlich muss ich dir recht geben, dass eine Demoversion die als MDB weitergegeben wird nie 100 % sicher ist.
Trotzdem kann man mittels vieler kleiner Lösungen eine Manipulation erschweren.

Meine "Standard"-Demo sieht folgende Sicherheitsvorkehrungen vor:
- Shifttaste unterbunden (nicht wirklich sicher wen einer einmal die einzeilige FUnktion hat)

- Zeitliche Begrenzung
Ich verwende eine Systemtabelle in der das "Verfallsdatum" verschlüsselt gespeichert wird. Die Demoversion wird jedoch ohne Eintrag ausgeliefert. Beim ersten Start wird die Demoversion um 30 Tage(Now+30) verlängert.
Die Verschlüsslung kann individuell ausgedacht werden. Dabei wird jede einzelne Ziffer einzeln verschlüsselt zusätzlich kommen mehreren Quersummen zum Einsatz.
Zum Beispiel wäre 318.014.418.425 sowas wie 10.06.2007
Bei jedem weiteren Start wird immer geprüft ob:
-->Verschlüsseltes Datum manipuliert wurde(Prüfsummen)
-->Ob das aktuelle Datum kleiner dem zulässiges Datum ist

- Begrenzung der Programmstarts
Bei jedem Start wird ein Counter (Tiptext eines Steuerelements in einem Formular) um eins erhöht.

- Schutz des VB-Codes mit einem Passwort

-Zusätzlich arbeite ich mit einem Aktivierungscode der nur im VB-Code hinterlegt ist. Dieser Code ändert eine Demoversion in eine Vollversion.

-Weiterhin wird bei jedem Start das aktuelle Datum gespeichert und überprüft ob dieses Datum älter als das aktuelle Datum ist. So kann ich sicherstellen, das kein Benutzer die Systemuhr einfach "zurückdreht".

Meinst du dies ist einigermaßen sicher?

TommyK
30.05.2007, 07:35
Hallo Michael,

- Die Shifttaste auszuschalten ist sicher nur etwas für Anfänger

Jetzt zu Deiner Lösung:

- Was passiert wenn jemand von außen den Eintrag in der Tabelle einfach löscht? Beginnt es dann von vorn?

- Das VB-PW ist auch nur ein kleiner Schutz, da dieses auch umgangen werden kann.

Auch die Umwandlung in eine MDE ist inzwischen kein vollständiger Schutz mehr.

Also ich denke da gibt es immer Lücken.
Oder man wählt eine prof. Lösung wie die SevLock-DLL von Dieter Otter
sevLock 1.3 DLL
Schützen Sie Ihre Software vor Software-Piraterie! (http://www.tools4vb.com/software/sevlock.php)
Kostet aber eben 109 EURO

Claus33
30.05.2007, 13:07
Sobald man in den VBA Code kommt ist auch die sevlock nicht mehr sicher.
Denn dann wirft man diese Codezeilen einfach heraus.

Aber die Sevlock ist schon ein nettes Tool

TommyK
30.05.2007, 13:53
@Claus

SevLock ist aber mehr für VB und VB.Net gedacht.
Ist aber die DB eine MDE ist der Schutz schon weit größer.
Da W. Phillips (glaube ich das er es ist) verlangt einen Nachweis für
Rückumwandlung von MDE nach MDB.

Michael81
01.06.2007, 20:05
TommyK, der Punkt mit dem Löschen der Demoversion ist berechtigt. Daher speichere ich die Information ob bereits einmal eine Nutzungsdauer vergeben wurde in einem Formular ab.
Prinzipiell gebe ich dir aber auch recht: Sobald jemand Einblick/Zugriff zum Quellcode hat ist alles andere automatisch aufgeflogen.
Aber ist es ohne großen Aufwand möglich das PW zu knacken?!?! Dachte es wäre einigermaßen sicher :eek:

Die andere Frage ist: Wieviel Aufwand will sich jemand machen und lohnt es den Aufwand.

Also Sevlock könnt ihr empfehlen? Sträube mich immer etwas davor zusätzliche Datein oder DLL zu installieren bzw. zu registrieren.

Claus33
02.06.2007, 11:51
Hallo,

auf die Sevlock muss weder ein Verweis gesetzt werden noch muss Sie in der system32 registriert werden. Die Registrierung erfolgt allein im Quellcode.

Kannst hierfür am besten mal die Hilfedatei von der Herstellerseite herunterladen.
http://www.tools4vb.com/download/onlinehelp.php

Aber auch sonst hatte ich bisher nur wenig Probleme mit .dll. Man muss halt dafür sorgen das man immer die neueste Version mit einbindet.