![]() |
Wie erstellt man eine DEMO-Version
Hallo zusammen,
habe mal eine Frage zum Thema DEMO-Versionen. Wie würde Ihr eine DEMO-Version erstellen. Mein Gedanke war folgender. Ich implementiere einen Timer, welchen ich im Form.Create starte. Diese Zeile würde ich in der Standardversion auskommentieren. Im Ereignis des Timer würde ich eine ShowMessage hinterlegen mit DEMO-Version, und anschließend einen weiteren Timer starten, welcher das Programm nach X Stunden beenden würde.
Delphi-Quellcode:
Was würdet Ihr dazu sagen. Oder wie würdet Ihr sowas lösen.
Form.Create;
begin TimerDemo.Enabled := true; End; TimerDemo… Begin ShowMessage(‘Dies ist eine DEMO-Version, das Programm wird in 10 Stunden automatisch beendet‘); TimerDemo.Enabled := false; TimerDemoStop.Enabled := true; End; TimerDemoStop… Begin Close; End; Gruß Jens |
Re: Wie erstellt man eine DEMO-Version
Die Frage ist immer wie sicher sowas sein muss.
Bei einer Messagebox dürfte ein Hacker den entsprechenden Aufruf mit Timerstart in 5 Minuten mit NOPs auskommentiert haben. |
Re: Wie erstellt man eine DEMO-Version
Hallo Bernhard,
Sicherheit benötige ich eigentlich nicht. Die DEMO werden eigentlich nur Vertriebsleute in der Hand haben, um sich diese Sache anzusehen. Ich habe halt nur das bedenken, wenn ich die DEMO ganz ohne Einschränkungen ausgebe, das es ja dann förmlich dazu verleitet die Software zu nutzen. Ich möchte somit eigentlich nur eine gewisse Einschränkung erreichen. Gruß Jens |
Re: Wie erstellt man eine DEMO-Version
Hi,
es kommt natürlich darauf an, was das Programm macht. Ich habe es z.B. so gelöst, dass in der Demo auf jedem Ausdruck 'DEMO' steht. Allerdings wäre mein Programm ohne vernünftige Ausdrucke halt nutzlos. Grund ist, dass die Gängelei mit Meldungen und zusätzlichen Bestätigungen ja auch mich selbst nervt. Und wenn man das nicht sehr bedacht angeht, hat man schon potentielle Kunden verloren. Frank |
Re: Wie erstellt man eine DEMO-Version
Jupp, zeitliche Einschränkungen lassen sich mitunder noch am Leichtesten umgehn.
Besser ist da immernoch die Funktionalität etwas einzuschränken. - Funktionen weglassen (nicht nur deaktiveren, sondern garnicht erst einkompiliert) - Zusätzliches reinzumachen läßt sich zwar auch zumgehn, aber nerft nicht so, wie z.B. irgendwenwelche ständigen Messageboxen - die Menge von irgendwas beschränken - ... |
Re: Wie erstellt man eine DEMO-Version
Vor kurzem gab es, soweit ich mich entsinne, in diesem Forum eine gute Diskussion dazu.
Tenor: - der Aufwand, den man in einen mehr oder weniger vermeintlichen Schutz seines Programmes investiert, geht letztlich für die Pflege und Weiterentwicklung des eigentlichen Programmes (also im Hinblick auf die nützlichen Funktionen) verloren. - Ist ein Programm gut genug, daß es einen Hack/Crack rechtfertigt, dann wird es auch entsprechend „behandelt“ bzw. „bearbeitet“. - Kein Schutz ist vollkommen. Sogar die weltweit führenden Softwarehäuser haben einen solchen bis heute für ihre Produkte nicht geschafft, obwohl die Heerscharen dafür angestellt haben dürfte und gut bezahlen. - Ein Programm, das geschützt wird, erweckt zusätzliche Neugier, Aufmerksamkeit (suggeriert besondere Wertfülle) und weckt deshalb und aus dem Grunde des Sportgeistes den Jagd- und Erfolgsinstinkt umso mehr. Und gerade bei Mikroweich dürfte noch ein erheblicher weltweiter Rochus hinzukommen: Mit rechtlich fragwürdigen Methoden, gepaart mit aggressiver Vermarktung und nicht enden wollenden Werbelügen und ewigen, nur teilweise gehaltenen Versprechen hat man sich zum faktischen Monopolisten hochgegaunert und der Welt letztlich eine aberwitzigen monetären Betrag für qualitativ lausige bis fragwürdige Produkte abgeluchst. |
Re: Wie erstellt man eine DEMO-Version
Hier geht es ja nicht um einen Kopierschutz (welches noch aufwändiger wird).
Wenn man eine Demo z.B. im Funktionsumfang so einschränkt, daß einige Funktionen garnicht oder nur teilweise vorhanden sind, dann kann da ein "Hacker" auch nichts dran ändern, egal wie sehr er sich bemüht ... was nicht vorhanden ist, kann auch nicht freigeschaltet werden. |
Re: Wie erstellt man eine DEMO-Version
Zitat:
Delphi-Quellcode:
Auskommentieren würde, kann ich mein Programm ja eigentlich immer normal starten. Wenn ich jetzt eine DEMO erstellen will, kommentiere ich die Zeile ein und fertig.
{TimerDemo.Enabled := true;}
Wie meint Ihr das den sonst mit der Einschränkung. Das heißt z.B. das Ihr gewisse Unit´s einfach aus dem Projekt entfernt. Aber das ist doch dann immer mit einem größeren Aufwand verbunden. Der Vorgang wäre sonst nämlich auch OK für mich, da ich auch gewisse Funktionen in meinem Programm habe, die ich als Option einbinden will. Z.B. das versenden von E-Mails soll eine Option werden. Da weiß ich auch noch nicht wie ich das später mal genau einbinden werde. |
Re: Wie erstellt man eine DEMO-Version
Du kannst mit Hilfe von Compilerschaltern eine bedingte Compilierung erreichen. Das ist in der Regel einfachher als Ein- und Auskommentieren:
Delphi-Quellcode:
In diesem Fall ist der Compilerschalter deaktiviert und es wird eine Vollversion erstellt. Nimmst du den Punkt bei DEFINE weg, ist der Compilerschalter aktiviert und der Code zwischen IFDEF und ENDIF wird mitkompiliert.
{.$DEFINE DEMO}
... {$IFDEF DEMO} SetTextColor(dc, RGB(255, 0, 0)); rect.Top := rect.Top + 3; rect.Right := rect.Right - 10; DrawText(dc, PChar(rsDemo), length(rsDemo), rect, DT_CENTER); {$ENDIF} |
Re: Wie erstellt man eine DEMO-Version
Ich würde die Funktionen mit Compiler-Schaltern herausnehmen, die nicht in der Demo-version vorhanden sein sollen und keinerlei zeitliche Beschränkungen reinpacken. Wenn dann ein Anwender das komplette Programm haben möchte, würde ich Ihm eine neue EXE-Datei zuschicken, wo dann die Funktionen wieder über die Compiler-Schalter freigeschaltet sind.
|
Re: Wie erstellt man eine DEMO-Version
Zitat:
Ich will das auch nochmal kurz erklären. Wir sind normal Errichter von Einbruchmeldeanlagen. Meine Software habe ich geschrieben um Ereignisse von diesen Zentralen zu dokumentieren und zu speichern. Diese Daten werden in einer Datenbank gespeichert und können z.B. per E-Mail versendet, als HTML-Dokument exportiert oder gedruckt werden. Die Software, werde ich maximal an andere Errichter verkaufen und um dort ein unkontrolliertes kopieren zu verhindern, möchte ich zum Vorführen halt eine DEMO-Version aushändigen. Die später ausgelieferte Software, besteht zusätzlich aus einer Konfigurationsdatenbank (Firebird), in der auch die Objektdaten gespeichert sind. Gruß Jens |
Re: Wie erstellt man eine DEMO-Version
Wie wäre es denn, wenn du bei jedem Neustart (oder nach einer bestimmten Zeit) die Datenbank leerst?
|
Re: Wie erstellt man eine DEMO-Version
Zitat:
Gruß Jens |
Re: Wie erstellt man eine DEMO-Version
Hallo,
Zitat:
wie verhinderst du das Kopieren ? Zitat:
Eine vertrauenswürdige Person ? Dann kompilier ein Ende-Datum ein, also z.B. eine 60-Tage-Version. Dadurch, dass deine App. ja zeitbezogene Daten in die DB schreibt, bringt es für den Anwender z.B. nichts, das Datum zurückzustellen. Alles andere wären Kopieraschutzmaßnahmen, das geht dann in Richtung WIBU-Key, Aladdin. Die haben übrigens auch Software-Lösungen im Gepäck. Heiko |
Re: Wie erstellt man eine DEMO-Version
Zitat:
Und die Vollversion, ist ja in der Datenbank mit den Kundenspezifischen Daten gefüllt. Soll heißen ich habe ein Datenblatt, das der Kunde vor der Lieferung ausfüllen muss und ich trage diese Daten dann in die Datenbank ein. Die Datenbank ist ja auch nochmal Passwortgeschütz. Gut ich weiß kann man knacken. Aber da sehe ich das Risiko nicht so groß an, das sich jemand diese Mühe machen würde. Er will ja auch einen gewissen Support nutzen und somit denke ich das es kein Problem gibt. Ich würde halt nur gerne zusätzlich irgend eine einfach Kennzeichnung, ein Merkmal setzen, welches beim Endkunden zeigen würde das es eine DEMO-Version ist. Gruß Jens |
Re: Wie erstellt man eine DEMO-Version
Hallo,
gut ! ;) Zitat:
Tabellenname: DEMO_CHECK Feldname: bIsDemo Char(1) = '1' ;) Heiko |
Re: Wie erstellt man eine DEMO-Version
Ich würde in der Demoversion einfach die Anzahl der Alarmanlagen beschränken, so dass dann z.B. nur 5 Alarmanalagen verwaltet werden können. Über den Compilerschalter könntest Du dann aus deiner Select from Abfrage eine Select Top5 Abfrage machen. In die Titelzeile setzt Du dann noch Demoversion rein, und fertig ist es. Vorteil, der Benutzer kann alle Funktionen ausprobieren, wenn er aber mehrere Anlagen überwachen will muss er die Vollversion nehmen. Die Zahl 5 kannst Du ja variieren. Das habe ich bei einem aktuellen Produkt schon erfolgreich eingesetzt
|
Re: Wie erstellt man eine DEMO-Version
Und wie schon genannt wurde in Ausgaben die Angabe Demo einbauen (ins PDF, HTML, Email).
|
Re: Wie erstellt man eine DEMO-Version
Moin, moin
Zitat:
Grüße // Martin |
Re: Wie erstellt man eine DEMO-Version
Danke erstmal für die vielen Anregungen.
Ich bin mir nur noch nicht ganz sicher nach den vielen aussagen, wie ich es wirklich machen sollte. Die Variante mit der Datenbank hört sich auch nicht schlecht an, allerdings überlege ich, ob dann die Variante mit dem Compilerschalter und zusätzlich die Kundendaten in der Datenbank nicht etwas sicherer wären. Allerdings bin ich von der Zeitlichen Variante glaube ich auch abgekommen. Ich denke sowas wie die Hinweis DEMO etc. sind schon gar nicht schlecht. Und wenn ich eine Verknüpfung mit den beiden Varianten realisieren würde, denke ich reicht mir das auch für die Sicherheit. Ich werde mir das alles mal genau überlegen und dann versuchen umzusetzten. Danke aber schonmal für die vielen Anregungen. Gruß Jens |
Re: Wie erstellt man eine DEMO-Version
Funktionen einschränken ist immer am Besten, weil sicher. Wie bereits gesagt : was nicht da ist, das kann man eben nicht knacken. ALarmanlagen sehen aber jetzt schon nach Marktnische aus. Wer hat Interesse daran zig Stunden aufzuwenden, da was zu knacken, um trotzdem eine nicht lizenzierte Version zu haben, die im Endeffekt nur halb funktioniert ? Oder lasse das Speichern weg oder den Druck. Wurde auch bereits gesagt : schreibe DEMO auf jeden Ausdruck. Am besten mitsamt Deinem kompletten Namen. Das schreckt schon ab. Jeder der das sieht wird sich fragen : "Wer ist Jens Hartmann ?" :mrgreen:
|
Re: Wie erstellt man eine DEMO-Version
Du kannst z.b. auch meine
![]() Das Tolle an Tserial ist, das es dir den Schlüssel in einen Wert umrechnet, und diesen Wert dann weiter nutzen kann, und zusätzlich kannst du den Wert im Schlüssel Kodieren, so hast du Sicherheit gegen Schlüssel knacken. Anhand des errechneten Schlüssels kannst du dann Programmteile freischalten oder nicht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz