Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Programm soll nur 30 Tage laufen. (https://www.delphipraxis.net/75160-programm-soll-nur-30-tage-laufen.html)

smart 15. Aug 2006 10:53


Programm soll nur 30 Tage laufen.
 
Hallo Alle!

Ich möchte ein Demoprogramm erstellen, welches nur 30 Tage laufen soll. Wie macht man das? Hat Einer von Euch so etwas mal programmiert?

Gruß
Heike

Balu der Bär 15. Aug 2006 10:57

Re: Programm soll nur 30 Tage laufen.
 
Hallo Heike,

bitte benutz mal die Forensuche, dieses Thema wurde schon in vielen Topics ausgiebig diskutiert. ;)

Thanatos81 15. Aug 2006 10:58

Re: Programm soll nur 30 Tage laufen.
 
Ich habe es darüber gelöst, das ich 3 Werte in der Registry speichere: Datum des ersten Programmstarts, Datum wann das Programm zuletzt gestartet wurde und die Restlaufzeit in Tagen.

Den zweiten Wert speichere ich deswegen, damit den Leuten die Möglichkeit genommen wird einfach mal das Datum zurückzusetzen ;-) Und diese Werte überprüf/aktualisiere ich beim Programmstart.

Balu der Bär 15. Aug 2006 10:59

Re: Programm soll nur 30 Tage laufen.
 
Was hindert mich daran die Werte in der Registry einfach zu ändern?

faux 15. Aug 2006 11:02

Re: Programm soll nur 30 Tage laufen.
 
Zitat:

Zitat von Balu der Bär
Was hindert mich daran die Werte in der Registry einfach zu ändern?

Dass du sie erst finden musst (mit RegMon z. B.). :mrgreen:

Grüße
Faux

Meflin 15. Aug 2006 11:28

Re: Programm soll nur 30 Tage laufen.
 
Oder einfach mal hier kucken http://www.torry.net/pages.php?id=311 :roll:
da findet man z.B. das hier http://sourceforge.net/projects/tponguard/


smart 15. Aug 2006 11:39

Re: Programm soll nur 30 Tage laufen.
 
Zitat:

Zitat von Thanatos81
Ich habe es darüber gelöst, das ich 3 Werte in der Registry speichere: Datum des ersten Programmstarts, Datum wann das Programm zuletzt gestartet wurde und die Restlaufzeit in Tagen.

Den zweiten Wert speichere ich deswegen, damit den Leuten die Möglichkeit genommen wird einfach mal das Datum zurückzusetzen ;-) Und diese Werte überprüf/aktualisiere ich beim Programmstart.

Hallo Thomas,

das ist eine gute Lösung. Ich habe mir auch schon die lösungen im Forum angesehen. Einen kleinen Nachteil hat die Lösung (Ich bitte um Nachsicht). Wenn man nach der Installation einen Wiederherstellungspunkt erstellt (bevor man das Programm startet), dann könnte der Anwender nach den 30 Tagen wieder zurückstellen. Die Frage ist natürlich ob der Anwender das macht.

Gruß
Heike

freak4fun 15. Aug 2006 11:51

Re: Programm soll nur 30 Tage laufen.
 
Was passiert wenn man das Datum vor der Installation vorstellt? :gruebel: Hat man dann mehr als die 30 Tage?

MfG
freak

faux 15. Aug 2006 12:02

Re: Programm soll nur 30 Tage laufen.
 
Zitat:

Zitat von freak4fun
Was passiert wenn man das Datum vor der Installation vorstellt? :gruebel: Hat man dann mehr als die 30 Tage?

Nein:

1. Datum auf 1.1.2005 stellen.
2. Installieren
3. Programm merkt sich: Start: 1.1.2005, Ende: 30.1.2005

Auf was willst du das Datum jetzt ändern, dass du mehr als 30 Tage hast?

Grüße
Faux

Khabarakh 15. Aug 2006 12:06

Re: Programm soll nur 30 Tage laufen.
 
Zitat:

Zitat von faux
1. Datum auf 1.1.2005 stellen.

*hust* vorstellen *hust* :mrgreen: .
Aber auch das ließe sich leicht lösen, indem einfach der Start verweigert wird, wenn das aktuelle Datum vor dem gespeicherten Installationsdatum ist.
Und trotzdem wird jeder mit ein wenig Ahnung von Computern die Schlüssel in Nullkomanix finden.

Muetze1 15. Aug 2006 12:07

Re: Programm soll nur 30 Tage laufen.
 
Zitat:

Zitat von faux
1. Datum auf 1.1.2005 stellen.
2. Installieren
3. Programm merkt sich: Start: 1.1.2005, Ende: 30.1.2005

Auf was willst du das Datum jetzt ändern, dass du mehr als 30 Tage hast?

Immer wenn ich dein Programm starte, stelle ich vorher das Datum auf den 1.1.2005 oder einem anderen Datum im gültigen Bereich. Egal welches, Hauptsache im gültigen Bereich und Hauptsache immer auf das gleiche vor dem Start.

So, dagegen kannst du schlecht was machen - ABER: du könntest dir die Zeit protokollieren und wenn am selben Datum das Programm diesmal um mehr als 1 Stunde früher gestartet wurde, einen Tag abziehen. 1 Stunde muss sein, wegen Sommer/Winterzeitumstellung.

faux 15. Aug 2006 12:26

Re: Programm soll nur 30 Tage laufen.
 
Zitat:

Zitat von Khabarakh
Zitat:

Zitat von faux
1. Datum auf 1.1.2005 stellen.

*hust* vorstellen *hust* :mrgreen: .
Aber auch das ließe sich leicht lösen, indem einfach der Start verweigert wird, wenn das aktuelle Datum vor dem gespeicherten Installationsdatum ist.
Und trotzdem wird jeder mit ein wenig Ahnung von Computern die Schlüssel in Nullkomanix finden.

:oops:
Naja, aber im Prinzip is es ja das gleiche.
beim Start MUSS das Datum ZWISCHEN Start und Ende liegen.

Sascha L 15. Aug 2006 12:31

Re: Programm soll nur 30 Tage laufen.
 
Zitat:

Zitat von Khabarakh
Zitat:

Zitat von faux
1. Datum auf 1.1.2005 stellen.

*hust* vorstellen *hust* :mrgreen: .
Aber auch das ließe sich leicht lösen, indem einfach der Start verweigert wird, wenn das aktuelle Datum vor dem gespeicherten Installationsdatum ist.
Und trotzdem wird jeder mit ein wenig Ahnung von Computern die Schlüssel in Nullkomanix finden.

Kein Anwender, der nicht programmiert, würde diese Werte finden. Grund: Hast du dir mal angeguckt, wie ein TDateTime in der Registry gespeichert wird? Da steht nicht das lebsare Datum 00.00.0000!

Wenn man nun nicht so dumm ist und Namen wie "StartDatum" und "EndDatum" wählt, kommt der Anwender nicht darauf ;)

Den meisten ist es zu lästig, das Datum zu ändern, zumal es da auch einen Schutz gibt (gibt genügend Shareware, die dann nicht mehr läuft) und eine Systemwiederherstellung wird keiner machen, weil dann alle anderen Einstellungen und Änderungen auch immer Futsch sind.

Für 99,9 % aller Anwender ist dieser Schutz ausreichend. Die restlichen 0,1 % kann man vernachlässigen, weil es keinen sicheren Schutz gibt und diese Leute auch einfach nur das Programm cracken bräuchten, etc.

markusj 15. Aug 2006 12:49

Re: Programm soll nur 30 Tage laufen.
 
Wie wäre es mit einer kleinen Datei, welche das Setupdatum als MD5 oder sonstwas verschlüsselt enthält.
Beim Programmstart werden dann die letzten 30 möglichen Kombinationen durchprobiert, passt die Kennung nicht, ist die Zeit abgelaufen.
Speichert man diese Kennung in der Registry oder im Systemverzeichnis, kann man eine Wiederinstallation verhindern ...

mfG

Markus

Luckie 15. Aug 2006 13:11

Re: Programm soll nur 30 Tage laufen.
 
Zitat:

Zitat von Sascha L
Kein Anwender, der nicht programmiert, würde diese Werte finden.

Für 99,9 % aller Anwender ist dieser Schutz ausreichend. Die restlichen 0,1 % kann man vernachlässigen, weil es keinen sicheren Schutz gibt und diese Leute auch einfach nur das Programm cracken bräuchten, etc.

Und die restlichen 0,1% Ccracken es und bieten es im Internet für die anderen 99,9% zum Download an. :roll:

Torpedo 15. Aug 2006 13:14

Re: Programm soll nur 30 Tage laufen.
 
Zitat:

Zitat von markusj
Wie wäre es mit einer kleinen Datei, welche das Setupdatum als MD5 oder sonstwas verschlüsselt enthält.
Beim Programmstart werden dann die letzten 30 möglichen Kombinationen durchprobiert, passt die Kennung nicht, ist die Zeit abgelaufen.
Speichert man diese Kennung in der Registry oder im Systemverzeichnis, kann man eine Wiederinstallation verhindern ...

mfG

Markus

Dann könnte man das Programm erneut in einem anderen Ordner installieren, damit eine neue Datei erzeugt wird. Oder deinstallieren und neu installieren. Man müsste also auch noch einen weiteren Schutz für diese Datei programmieren, was dann wahrscheinlich wieder umgangen werden kann... (endlosschleife)

Balu der Bär 15. Aug 2006 13:17

Re: Programm soll nur 30 Tage laufen.
 
Es bleibt zu beachten das egal was man macht nichts wird sicher sein. Selbst Softwareriesen wie Microsoft oder Adobe geben jährlich ziemlich viel Geld aus um solche Schütze zu entwicklen, bis heute hat es jedoch niemand geschafft einen Schutz zu entwickeln der wirklich sicher ist. Schonmal drüber nachgedacht statt der 30-Tage-Version eine Demoversion rauszubringen? Gewisse Funktionen in deinem Programm deaktivierst du per Compilerschalter, so kannst du wenigstens sicher sein das niemand die zeitbegrenzte Version knackt.

vlees91 15. Aug 2006 13:25

Re: Programm soll nur 30 Tage laufen.
 
zeitbegrenzte Demoversion sag ich nur :P

Balu der Bär 15. Aug 2006 13:27

Re: Programm soll nur 30 Tage laufen.
 
Zitat:

Zitat von vlees91
zeitbegrenzte Demoversion sag ich nur :P

Was versuchst du uns damit zu sagen? :gruebel:

vlees91 15. Aug 2006 13:42

Re: Programm soll nur 30 Tage laufen.
 
Zitat:

Zitat von Balu der Bär
Zitat:

Zitat von vlees91
zeitbegrenzte Demoversion sag ich nur :P

Was versuchst du uns damit zu sagen? :gruebel:

Nichts. Schon gut :P

Cöster 15. Aug 2006 13:43

Re: Programm soll nur 30 Tage laufen.
 
Statt sofort die .exe-Datei anzubieten könnte man diese doch von einem Installationsprogramm erstellen lassen. Dann braucht man keine .ini-Datei, sondern prüft einfach bei jedem Start des Programms, ob das Erstellungsdatum mehr als 30 Tage zurückliegt. Wenn ja, wird der Zugriff einfach verweigert. Problem ist aber, dass man die PC-Uhr ja einfach umstellen kann, sodass ein falsches Erstellungsdatum gespeichert werden kann.

Torpedo 15. Aug 2006 14:03

Re: Programm soll nur 30 Tage laufen.
 
Zitat:

Zitat von Cöster
Statt sofort die .exe-Datei anzubieten könnte man diese doch von einem Installationsprogramm erstellen lassen. Dann braucht man keine .ini-Datei, sondern prüft einfach bei jedem Start des Programms, ob das Erstellungsdatum mehr als 30 Tage zurückliegt. Wenn ja, wird der Zugriff einfach verweigert. Problem ist aber, dass man die PC-Uhr ja einfach umstellen kann, sodass ein falsches Erstellungsdatum gespeichert werden kann.

Auch hier kann man das Programm einfach neu installieren. Wenn man also einen Schutz dafür macht dass es nicht nochmal installiert werden kann (auch wenns schon deinstalliert ist) dann könnte dieser Schutz auch gleich der Schutz sein, der das Programm nach x Tagen nicht mehr starten lässt.

freak4fun 15. Aug 2006 14:07

Re: Programm soll nur 30 Tage laufen.
 
Vielleicht sollte man an dieser Stelle mal Fragen wie sicher der Schutz sein soll, bzw. wie wichtig. Um ein kleines (eher unwichtiges) Programm zu schützen sollte man keinen unverhältnismäßigen Aufwand treiben. ;)

MfG
freak

Cöster 15. Aug 2006 14:55

Re: Programm soll nur 30 Tage laufen.
 
Ich hätte noch ne Idee!
Beim ersten Programmstart wird das Datum von einem Internet-Server geladen (Internet-Server, weil man PC-Uhr einfach umstellen kann) und zusammen mit der IP-Adresse des Computers, der das Programm gestartet hat, im Internet gespeichert. Bei jedem weiteren Programmstart wird dann im Hintergrund geprüft, ob die IP-Adresse bereits im Internet gespeichert ist. Wenn ja, wird geprüft, ob das Datum, das dann direkt dahinter steht, mehr als 30 Tage zurückliegt. Wenn ja, wird einfach der Zugriff verweigert.
Das müsste doch gehen, oder hab ich was wichtiges übersehen?

freak4fun 15. Aug 2006 15:10

Re: Programm soll nur 30 Tage laufen.
 
Interessanter Ansatz. :)
Zitat:

Zitat von Cöster
Das müsste doch gehen, oder hab ich was wichtiges übersehen?

Meine IP wechselt jedes mal wenn ich mich ins Internet einwähl. ;)

MfG
freak

Balu der Bär 15. Aug 2006 15:11

Re: Programm soll nur 30 Tage laufen.
 
Zitat:

Das müsste doch gehen, oder hab ich was wichtiges übersehen?
Ja hast du. Nicht jeder PC hängt heutzutage am Internet oder hat zugriff auf dieses. :roll:

Meflin 15. Aug 2006 15:38

Re: Programm soll nur 30 Tage laufen.
 
Zitat:

Zitat von Balu der Bär
Ja hast du. Nicht jeder PC hängt heutzutage am Internet oder hat zugriff auf dieses. :roll:

Ganz zu schweigen davon dass praktisch niemand eine statische IP hat und noch mehr zu schweigen davon dass zwar viele Inet haben aber deinem Programm keinen Zugriff auf selbiges geben werden :lol:


cruso 15. Aug 2006 15:49

Re: Programm soll nur 30 Tage laufen.
 
Word 2002 kann man vor der Produktaktivierung nur 50 mal starten. Du köntest das doch bei deinem Programm genauso machen (das Umgehen mit Datumsspielereien ist dann nicht möglich). Einfach den Wert irgendwo abspeichern, verschlüsseln und dann mit dem Programm abfragen.

vlees91 15. Aug 2006 15:49

Re: Programm soll nur 30 Tage laufen.
 
also ich laube er meint die lokale ip speichern. aber auch die kann geändert werden

sakura 15. Aug 2006 15:52

Re: Programm soll nur 30 Tage laufen.
 
Zitat:

Zitat von vlees91
also ich laube er meint die lokale ip speichern. aber auch die kann geändert werden

Die ändert sich bei DHCP auch immer. Die meisten Hausgebrauchrouter kommen inzwischen mit DHCP, weil es einfacher für den Otto-Normal-User ist.

...:cat:...

Meflin 15. Aug 2006 15:52

Re: Programm soll nur 30 Tage laufen.
 
Zitat:

Zitat von cruso
Word 2002 kann man vor der Produktaktivierung nur 50 mal starten. Du köntest das doch bei deinem Programm genauso machen (das Umgehen mit Datumsspielereien ist dann nicht möglich). Einfach den Wert irgendwo abspeichern, verschlüsseln und dann mit dem Programm abfragen.

leute merkt ihrs wirklich nicht... WAS AUCH IMMER ihr hier vorschlagen werdet, eskann mehr oder weniger leicht umgangen werden. Also könnt ihr es auch sein lassen :wall:

Die einzig sichere Lösung ist das herausgeben einer funktionsbeschränkten Demoversion.


Cöster 15. Aug 2006 15:52

Re: Programm soll nur 30 Tage laufen.
 
Zitat:

Zitat von freak4fun
Interessanter Ansatz. :)
Zitat:

Zitat von Cöster
Das müsste doch gehen, oder hab ich was wichtiges übersehen?

Meine IP wechselt jedes mal wenn ich mich ins Internet einwähl. ;)

MfG
freak

Ich hab schon dran gedacht, stattdessen den Computer-Namen zu nehmen. Man macht sich bestimmt nicht die Mühe, den nur wegen einem Programm immer wieder zu ändern. Problem ist aber, dass mehrere den gleichen Computer-Namen haben können. Aber es gibt doch bestimmt noch andere Daten, die man nehmen könnte. Vielleicht fällt von euch ja jemandem was ein.

Zitat:

Zitat von Balu der Bär
Nicht jeder PC hängt heutzutage am Internet oder hat zugriff auf dieses.

So ist das nunmal, es haben doch alle Spiele bestimmte Systemanforderungen, die erfüllt werden müssen.

Zitat:

Zitat von Melfin
Ganz zu schweigen davon dass praktisch niemand eine statische IP hat und noch mehr zu schweigen davon dass zwar viele Inet haben aber deinem Programm keinen Zugriff auf selbiges geben werden

Wieso nicht? Mit dem TWebBrowser bzw. den Indy-Kompos ist das doch möglich. (Von meinem Rechner zumindest, ich wüsste nicht, warum das woanders anders sein sollte.)

Balu der Bär 15. Aug 2006 15:53

Re: Programm soll nur 30 Tage laufen.
 
Zitat:

Zitat von vlees91
also ich laube er meint die lokale ip speichern. aber auch die kann geändert werden

Lokale IP? Dann speicher mal 127.0.0.1 ab, hat bestimmt nicht jeder. :lol:

Und selbst in einem Netzwerk oder überhaupt im Internet werden sich die IPs wiederholen, da jeder eine IP bekommen kann die schonmal ein anderer hatte. Sorry aber diese Idee ist imho totaler Schwachfug.

Meflin 15. Aug 2006 15:54

Re: Programm soll nur 30 Tage laufen.
 
Zitat:

Zitat von Cöster
Wieso nicht? Mit dem TWebBrowser bzw. den Indy-Kompos ist das doch möglich. (Von meinem Rechner zumindest, ich wüsste nicht, warum das woanders anders sein sollte.)

Ganz einfach: weil man das mit sogenannten Software-Firewalls ganz komfortabel verbieten kann :|


Balu der Bär 15. Aug 2006 16:08

Re: Programm soll nur 30 Tage laufen.
 
Zitat:

So ist das nunmal, es haben doch alle Spiele bestimmte Systemanforderungen, die erfüllt werden müssen.
Genau das ist der Grund warum manche Leute (wie ich auch) darauf verzichten Geld für sowas auszugeben. ;)

Wenn die Aktivierung/Lizensierung eines Programmes schwieriger ist als das Programm selbst sollte man da die Finger von lassen. ;)

Also smart, du musst ja wissen ob dein Programm es wert ist stundenlanges Programmieren für einen Schutz zu investieren. ;)

Cöster 15. Aug 2006 16:26

Re: Programm soll nur 30 Tage laufen.
 
Zitat:

Zitat von Meflin
Zitat:

Zitat von Cöster
Wieso nicht? Mit dem TWebBrowser bzw. den Indy-Kompos ist das doch möglich. (Von meinem Rechner zumindest, ich wüsste nicht, warum das woanders anders sein sollte.)

Ganz einfach: weil man das mit sogenannten Software-Firewalls ganz komfortabel verbieten kann :|

Wie, eine Firewall auf dem eigenen Rechner verhindert, dass man über den eigenen PC mit Delphi ins Internet gelangt? Aber dann ist es doch bestimmt auch möglich, diese Firewall beim Programmstart aus- und dann wieder einzustellen. (Sorry, dass ich so doof frage, ich war noch nie ein Computer-Fachmann :( )

@ Balu der Bär:

Ich kann mir kaum vorstellen, dass die Demoversion Geld kostet. Da wirst du also auch kein Geld für ausgeben müssen. Und die Vollversion wird dann ja wahrscheinlich auch kein Internet mehr benötigen. (Ich weiß ja nicht, um was für ein Programm es sich handelt.)
Die Aktivierung des Programms wird für den Anwender ja nicht schwierig sein, er muss beim Programmstart halt nur eben 3 Sekunden warten, damit geprüft wird, ob er überhaupt noch darf (Ich wusste jetzt nicht, ob du den Anwender oder den Programmierer damit meinst).

3_of_8 15. Aug 2006 16:29

Re: Programm soll nur 30 Tage laufen.
 
Die Idee ist wirklich bekloppt.

Also ein Programm, das auf das Internet zugreift, ohne dass es das eigentlich müsste, ist mir von vorneherein suspekt.

Außerdem sollte man, wie bereits gesagt, auch darauf achten, dass es User ohne Internet geben könnte.

Und richtig sicher ist es trotzdem nicht.

Cöster 15. Aug 2006 16:32

Re: Programm soll nur 30 Tage laufen.
 
Zitat:

Zitat von 3_of_8
Die Idee ist wirklich bekloppt.

Also ein Programm, das auf das Internet zugreift, ohne dass es das eigentlich müsste, ist mir von vorneherein suspekt.

Außerdem sollte man, wie bereits gesagt, auch darauf achten, dass es User ohne Internet geben könnte.

Und richtig sicher ist es trotzdem nicht.

Wie kann man es denn knacken?

vlees91 15. Aug 2006 16:34

Re: Programm soll nur 30 Tage laufen.
 
Man kann die Demo nur im Internet downloaden^^
man hat also internet.
und wenns irgendwo anders gedownloadet wird, hat man pech^^

Balu der Bär 15. Aug 2006 16:35

Re: Programm soll nur 30 Tage laufen.
 
Zitat:

Zitat von Cöster
Zitat:

Zitat von 3_of_8
[...]
Und richtig sicher ist es trotzdem nicht.

Wie kann man es denn knacken?

Indem ich die Abfrageroutinen einfach rauspatche. :roll:


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:39 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz