Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Programmstart nach ablaufdatum verhindern (https://www.delphipraxis.net/154939-programmstart-nach-ablaufdatum-verhindern.html)

khh 1. Okt 2010 16:49

Programmstart nach ablaufdatum verhindern
 
Hi zusammen,
vieleicht steh ich grad auf dem schlauch :-(
wie würdet ihr das machen.

Ein Programm soll nur bis zu einem bestimmten Datum lauffähig sein.
Danach ist ein neuer key erforderlich, damit das Prog wieder freigeschaltet ist.
Soweit so gut.

Wie lässt sich verhindern, dass das Prog durch Zurücksetzen des Systemdatums trotzdem läuft?
EDIT: Datum in Registry schreiben oder sonst in ein file, aber das ist auch nicht 100% sicher :-(

Danke für eure Ideen

Gruss KHH

Klaus01 1. Okt 2010 16:53

AW: Programmstart nach ablaufdatum verhindern
 
Hallo,

irgendwo (in der Registry) ein Flag setzen,
dass das Datum überschritten wurde.
Wenn nun das Datum zurückgesetzt wird und das Flag nicht ..

Grüße
Klaus

khh 1. Okt 2010 16:54

AW: Programmstart nach ablaufdatum verhindern
 
Zitat:

Zitat von Klaus01 (Beitrag 1053191)
Hallo,

irgendwo (in der Registry) ein Flag setzen,
dass das Datum überschritten wurde.
Wenn nun das Datum zurückgesetzt wird und das Flag nicht ..

Grüße
Klaus

gut, flag ist nicht so auffällig wie Datum

aber 100% sicher auch nicht .-(

Sir Rufo 1. Okt 2010 16:54

AW: Programmstart nach ablaufdatum verhindern
 
Dazu steht hier im Forum auch schon einiges (SuFu)

Ein Tip wäre z.B. im Windows-Ordner nach einigen Dateien zu suchen und dort das Dateidatum auszulesen.
Liegt das in der Zukunft, dann ist wohl das Datum zurückgesetzt worden.

Schreibe irgendwo in der Registry immer das höchste ermittelte Datum (verschlüsselt als eine Zahl)

Prüfe ob und wann der Windows-Zeitgeber eine aktuelle Uhrzeit ermittelt hat. Ein aktiver Dienst ist schon mal als Hinweis zu nehmen, dass die Zeit vermutlich korrekt ist.

usw.

p80286 1. Okt 2010 17:06

AW: Programmstart nach ablaufdatum verhindern
 
Wenn Du Internetzugang als Bedingung für die Programmbenutzung hast, dann frag doch einen Zeitserver nach Uhrzeit und Datum. Da kann keiner Manipulieren.
OK den kann man auch simulieren.
Ist halt die Frage wieviel Aufwand Du treiben willst.
Eine andere Möglichkeit ist es im Sektorverschnitt hinter Deinem Programm die Zeit zu protokollieren, dagegen hilft dann eine Neuinstallation.

Ist irgendwie wie Hase und Igel.

Gruß
K-H

khh 1. Okt 2010 17:36

AW: Programmstart nach ablaufdatum verhindern
 
Zitat:

Zitat von p80286 (Beitrag 1053196)
Wenn Du Internetzugang als Bedingung für die Programmbenutzung hast, dann frag doch einen Zeitserver nach Uhrzeit und Datum. Da kann keiner Manipulieren.
OK den kann man auch simulieren.
Ist halt die Frage wieviel Aufwand Du treiben willst.
Eine andere Möglichkeit ist es im Sektorverschnitt hinter Deinem Programm die Zeit zu protokollieren, dagegen hilft dann eine Neuinstallation.

Ist irgendwie wie Hase und Igel.

Gruß
K-H

die Sache das letzte Datum irgendwo verschlüsselt zu speichern und zu vergleichen ist ja recht simple und relativ sicher, denk ich mal

Hansa 1. Okt 2010 18:03

AW: Programmstart nach ablaufdatum verhindern
 
Bei mir muss eine Datei vorhanden sein mit quasi unmöglichem Namen. Z.B.: idsfaihfd.xy und die liegt irgendwo rum, jedenfalls nicht da, wo die Programm-EXE ist. Ist der Zeitraum rum, dann wird die Datei (aber sicher und komplett!!) gelöscht. Das lässt sich alles auch auf die Spitze treiben. Wer das alles umgehen will, der muss aber zunächst mal den Dateinamen rauskriegen und wissen, dass es eine Datei gibt, die da sein muss. 8-) Dann muss er noch einen Hex-Editor bedienen können. Sonst sucht er sich nämlich dumm und dämlich. :mrgreen: Usw.

Bin allerdings kein Freund von solchen zeitlichen Einschränkungen. Besser ist es IMHO, den Funktionsumfang zu beschränken. Da nützt dann auch kein Hex-Editor mehr was und den Firlefanz kann man auch gleich sein lassen.

Chemiker 1. Okt 2010 19:08

AW: Programmstart nach ablaufdatum verhindern
 
Hallo,

ich habe jetzt auch keine konkrete Lösung, aber alle Lösungen werden doch durch einen einfachen Debugger ausgehebelt, der im Quelltext der EXE nachsieht wenn die Abfrage kommt.

Bis bald Chemiker

Linor 1. Okt 2010 19:36

AW: Programmstart nach ablaufdatum verhindern
 
Hallo,

einen brauchbaren Schutz liefern nur Tools die die Code-Segmente verschlüsseln, so das dieser nicht disassembliert werden kann. Denn sonst lässt sich jeder Schutz, wie Chemiker schon schrieb, durch einen Debugger aushebeln.

Und diese Tools gibt es leider nicht umsonst :?
http://www.sofpro.com/ (Setze ich selber ein)
http://www.siliconrealms.com/

Diese bieten auch Demo-Laufzeit-Schutz...

@Hansa: Und ich finde der Kunde sollte den vollen Funktionsumfang testen können, Crippleware hat so einen kleinen Beigeschmack von Katze im Sack kaufen :wink:

lbccaleb 1. Okt 2010 19:53

AW: Programmstart nach ablaufdatum verhindern
 
Zitat:

Zitat von Linor (Beitrag 1053216)
...einen brauchbaren Schutz liefern nur Tools die die Code-Segmente verschlüsseln, so das dieser nicht disassembliert werden kann....

Auch diese "Code-Stücke" liegen irgendwann unverschlüsselt im speicher rum ;)

Chemiker 1. Okt 2010 19:59

AW: Programmstart nach ablaufdatum verhindern
 
Hallo lbccaleb,

meistens ist es aber so, dass der Zugriff mit einem Debugger schon wesentlich erschwert wird und nur die Teile die grade gebraucht werden Unverschlüsselt im Speicher vorliegen und in der Regel nicht das komplette Programm.

Bis bald Chemiker

lbccaleb 1. Okt 2010 20:05

AW: Programmstart nach ablaufdatum verhindern
 
Damit wollte ich auch nur ausdrücken, das "übertriebenes Schützen" der Software, oftmals total überflüssig ist. Erschweren ist die eine Sache, aber man soll nie glauben das es nicht zu knacken ist. Und meistens wird immer sowas wie "totale Sicherheit" verlangt, was aber oftmals total blödsinnig und viel zu Zeitaufwändig ist.

Chemiker 1. Okt 2010 20:10

AW: Programmstart nach ablaufdatum verhindern
 
Hallo lbccaleb,

da hast Du völlig recht. Einen absoluten Schutz wird es nicht geben.

Bis bald Chemiker

Hansa 1. Okt 2010 20:54

AW: Programmstart nach ablaufdatum verhindern
 
Zitat:

Zitat von Linor (Beitrag 1053216)
@Hansa: Und ich finde der Kunde sollte den vollen Funktionsumfang testen können, Crippleware hat so einen kleinen Beigeschmack von Katze im Sack kaufen :wink:

Da hast Du schon Recht. Meine Demo hat kompletten Funktionsumfang und ist zeitlich nicht limitiert. Etwas Phantasie gehört aber auch dazu. Kommt halt auf das Programm an. Bei mir gibts z.B. nur 2 freie Kundennummern, wobei ich genau weiss, dass alle User mind. 100 brauchen. :mrgreen:

khh 2. Okt 2010 07:43

AW: Programmstart nach ablaufdatum verhindern
 
Zitat:

Zitat von Chemiker (Beitrag 1053225)
Hallo lbccaleb,

da hast Du völlig recht. Einen absoluten Schutz wird es nicht geben.

Bis bald Chemiker

Einen totalen Schutz brauchts auch nicht,
nur die einfachsten Möglichkeiten, die jeder "normale" Anwender kennt sollten abgefangen werden.

Mithrandir 2. Okt 2010 07:53

AW: Programmstart nach ablaufdatum verhindern
 
Zitat:

Zitat von Hansa (Beitrag 1053203)
Wer das alles umgehen will, der muss aber zunächst mal den Dateinamen rauskriegen und wissen, dass es eine Datei gibt, die da sein muss.

Process Monitor ist schon ne coole Sache. Alles, was auf Datei oder Registry zurückläuft, kann man damit filtern. ;)

lbccaleb 2. Okt 2010 09:15

AW: Programmstart nach ablaufdatum verhindern
 
Zitat:

Zitat von khh (Beitrag 1053275)
Zitat:

Zitat von Chemiker (Beitrag 1053225)
Hallo lbccaleb,

da hast Du völlig recht. Einen absoluten Schutz wird es nicht geben.

Bis bald Chemiker

Einen totalen Schutz brauchts auch nicht,
nur die einfachsten Möglichkeiten, die jeder "normale" Anwender kennt sollten abgefangen werden.

Dann machs doch ganz easy:

Zitat:

Zitat von khh (Beitrag 1053198)
die Sache das letzte Datum irgendwo verschlüsselt zu speichern und zu vergleichen ist ja recht simple und relativ sicher, denk ich mal


xZise 2. Okt 2010 09:16

AW: Programmstart nach ablaufdatum verhindern
 
Zitat:

Zitat von khh (Beitrag 1053275)
Zitat:

Zitat von Chemiker (Beitrag 1053225)
Hallo lbccaleb,

da hast Du völlig recht. Einen absoluten Schutz wird es nicht geben.

Bis bald Chemiker

Einen totalen Schutz brauchts auch nicht,
nur die einfachsten Möglichkeiten, die jeder "normale" Anwender kennt sollten abgefangen werden.

Bis jemand den Crack online stellt. Fabian

Chemiker 2. Okt 2010 10:06

AW: Programmstart nach ablaufdatum verhindern
 
Hallo khh,

Zitat:

Einen totalen Schutz brauchts auch nicht,
nur die einfachsten Möglichkeiten, die jeder "normale" Anwender kennt sollten abgefangen werden.
Das hängt immer vom Programm ab. Wenn es in Asien oder Russland auch gebraucht werden kann, wird es wohl sehr schnell geknackt werden.

Keine gute Idee ist es wohl Passwort und Lizenz im Klartext anzugeben: statt TForm1.PasswortClick
z.B. TForm1.khhwieClick oder was auch immer.
Die Abfrage und die Reaktion des Programmes nicht in einem Block zu Anfang machen, sondern räumlich getrennt.
Gut ist es auch nach dem Ablauf des Datums das Programm weiterlaufen zu lassen und einfach an bestimmte Stellen im Programm abzuschießen. Vielleicht bekommst Du dann auch Rückmeldungen dass das Programm immer an einer Stelle abstürzt (Mach mal sie Leute sehr naiv).

Bis bald Chemiker

alzaimar 2. Okt 2010 10:53

AW: Programmstart nach ablaufdatum verhindern
 
Ich habe neulich ein Programm getestet (MS Projects-Viewer). Das läuft nach 30 Tagen ab. Danach kann ich es wieder installieren und wieder verwenden. Es hat einen kleinen NAG-Infoscreen am Anfang, das war's auch schon.

Es ist ein gutes Programm, das ich mir vielleicht mal kaufen werde, denn es geht mir ein bisserl auf den Senkel, dieses allmonatliche Druffinstallieren.

Vor einigen Jahren hatte ich ein weiteres Tool getestet. Das konnte man nach 30 Tagen nicht einfach so neu installieren und weiterverwenden. Dieses Programm würde ich mir nie zulegen, und zwar deshalb:
Erstens muss es wohl auf meinem Rechner eine permanente Veränderung vorgenommen haben, ohne das ich es ihm erlaubt habe und zweitens meint das Programm, schlauer zu sein als ich, indem es mich bevormundet.
Darauf kann ich ja nun überhaupt nicht.
Kurzum: Durchgefallen.

Gekauft habe ich mir diverse Tools, und zwar solche, die:
* Sagen, das man bitte bezahlen soll, einen aber sonst in Ruhe lassen (WinRAR, TC)
* Eine zeitliche Begrenzung haben, die sich aber -bewusst- leicht aushebeln lässt. (RedGate)

Übrigens: Welcher Dorfdepp setzt seine Systemzeit zurück, nur um so ein Programm zu überlisten. Wenn er sonst ernsthaft mit dem PC arbeitet, schießt er sich mit dem manipulierten Datum doch selbst ins Knie.

Luckie 2. Okt 2010 11:00

AW: Programmstart nach ablaufdatum verhindern
 
Also, ich denke bei den meisten Programmen lohnt sich ein aufwendiger Kopierschutz oder Sharewareschutz nicht. Will man es einigermaßen sicher machen, dann übersteigt der Nutzen sehr schnell den Aufwand. Außerdem hab eich festgestellt, dass je aufwendiger der Schutz ist, desto schneller ist er geknackt, weil er eine besondere Herausforderung für die Cracker darstellt. Und es sind gerade die "normalen" Benutzer, wie du sagst, die dann nach einem Crack suchen und ihn auch nutzen. Programmierer, wie wir, die das könnten, nutzen solche Cracks in der Regel nicht, weil sie wissen, was es bedeutet gescheite Software zu erstellen und haben entsprechenden Respekt vor anderen Programmierer, wenn diese ein gutes Programm geschrieben haben. Deshalb würde ich sagen, nutze die Zeit und den Aufwand und stecke in in gute Features deines Programms. Dann steigt auch das Bedürfnis für die Anwender für die Software zu bezahlen.

Ich habe mir zum Beispiel gerade letzte Woche die Tuneup Utilities gekauft, obwohl dafür bestimmt auch schon ein Crack existiert. Einfach aus dem Grund, weil ich es für gute Software halte. OK, das ein Freund von mir da arbeitet hat wohl auch dazu beigetragen. ;)

stahli 2. Okt 2010 11:24

AW: Programmstart nach ablaufdatum verhindern
 
[OT]Hallo Luckie, ersetze bitte "Bedürfnis" durch "Bereitschaft" :-D - ansonsten schließe ich mich an.[/OT]

Luckie 2. Okt 2010 12:28

AW: Programmstart nach ablaufdatum verhindern
 
Jupp, Bereitschaft passt besser. Danke.

khh 2. Okt 2010 12:33

AW: Programmstart nach ablaufdatum verhindern
 
Zitat:

Zitat von alzaimar (Beitrag 1053293)
Übrigens: Welcher Dorfdepp setzt seine Systemzeit zurück, nur um so ein Programm zu überlisten. Wenn er sonst ernsthaft mit dem PC arbeitet, schießt er sich mit dem manipulierten Datum doch selbst ins Knie.

solche Leute gibts tatsächlich:-(

Aphton 2. Okt 2010 12:37

AW: Programmstart nach ablaufdatum verhindern
 
Ne Idee wäre, in die Anwendung selbst- und zwar genau an die Stelle, wo die Nachricht "This program must be run under Win32" Daten zu speichern.
Um das zu vollbringen, könnte man eine externe/weitere kleinere Anwendung schreiben, die das übernimmt und diese dann der Hauptanwendung als Ressource geben, die wiederum diese Anwendung bei Termination extrahiert und mit den gewünschten Argumenten aufruft.

Ist nur ne Idee...

MfG

Sir Rufo 2. Okt 2010 14:18

AW: Programmstart nach ablaufdatum verhindern
 
Jo ... Und was passiert bei Vista und Win7 oder korrekt konfigurierten älteren Systemen?
Da gibt es für den Hans-Wurst-User keinen Schreibzugriff

Aber es gäbe ja die Möglichkeit einen Dienst zu installieren, der dieses erledigt.
Der kann dann auch schön überprüfen, ob die Systemzeit zurückgesetzt wurde.

Nur wenn der Dienst läuft, startet dein Programm.

Aber wie schon gesagt ist davon nix 100% sicher

Luckie 2. Okt 2010 14:33

AW: Programmstart nach ablaufdatum verhindern
 
Zitat:

Zitat von Sir Rufo (Beitrag 1053329)
Aber es gäbe ja die Möglichkeit einen Dienst zu installieren, der dieses erledigt.

Also so langsam wird es aber lächerlich oder fast kriminell. Also wenn mir, sagen wir ein Dateiumbenennungsprogramm, einen Dienst installieren würde, nur um zu verhindern, dass der Shareeareschutz umgangen wird, dann wäre das Programm aber ganz schnell wieder runter von meinem Rechner und der Programmierer auf der Liste meiner persönlichen Feinde. ;)

Sir Rufo 2. Okt 2010 14:42

AW: Programmstart nach ablaufdatum verhindern
 
Ich hätte da ein Dateiumbenennungsprogramm (ist Shareware). Möchtest du das mal ausprobieren? :stupid:

Aber so ganz fremd ist das ja nicht (Stichwort Lizenzserver)

alzaimar 2. Okt 2010 14:43

AW: Programmstart nach ablaufdatum verhindern
 
Zitat:

Zitat von khh (Beitrag 1053306)
Zitat:

Zitat von alzaimar (Beitrag 1053293)
Übrigens: Welcher Dorfdepp setzt seine Systemzeit zurück, nur um so ein Programm zu überlisten. Wenn er sonst ernsthaft mit dem PC arbeitet, schießt er sich mit dem manipulierten Datum doch selbst ins Knie.

solche Leute gibts tatsächlich:-(

Klar gibts die, aber die würden das Programm sowieso nicht kaufen. Aus diesem Grund muss ich eigentlich nicht darüber nachdenken, ob ich den Schutz für solche Pfosten sicherer machen soll. Darum gings mir.

Luckie 2. Okt 2010 14:45

AW: Programmstart nach ablaufdatum verhindern
 
Zitat:

Zitat von Sir Rufo (Beitrag 1053337)
Ich hätte da ein Dateiumbenennungsprogramm (ist Shareware). Möchtest du das mal ausprobieren? :stupid:

Willst du zu einem persönlichen feind von mir werden? :mrgreen:

Sir Rufo 2. Okt 2010 14:49

AW: Programmstart nach ablaufdatum verhindern
 
Zitat:

Zitat von Luckie (Beitrag 1053340)
Zitat:

Zitat von Sir Rufo (Beitrag 1053337)
Ich hätte da ein Dateiumbenennungsprogramm (ist Shareware). Möchtest du das mal ausprobieren? :stupid:

Willst du zu einem persönlichen feind von mir werden? :mrgreen:

Wenn es sich lohnt :mrgreen:

sx2008 2. Okt 2010 15:06

AW: Programmstart nach ablaufdatum verhindern
 
Also ich würde den Schutz möglichst spät aktivieren.
Das Programm soll ruhig starten und so aussehen als ob alles in Ordnung wäre.
Nach 1,5 Min kommt die Prüfung und das Programm wird beendet.
Dieser Schutz ist zwar auch zu knacken, aber für die Hacker lohnt der Aufwand nicht.

Gleiches Prinzip wie bei der Falscheingabe eines Passworts - erst mal warten lassen.

Sir Rufo 2. Okt 2010 15:12

AW: Programmstart nach ablaufdatum verhindern
 
Ich würde direkt beim Start und dann in unregelmäßigen Abständen (bei einer Aktion) nochmals prüfen
Delphi-Quellcode:
if Random(5) = 2 then
CheckMal;
Erfahrungsgemäß wird oft nur die Prüfung beim Start gecracked und fertig.

xZise 2. Okt 2010 15:41

AW: Programmstart nach ablaufdatum verhindern
 
Zitat:

Zitat von Sir Rufo (Beitrag 1053337)
[...]Aber so ganz fremd ist das ja nicht (Stichwort Lizenzserver)

Ein Service klingt sich doch wesentlich tiefer ein? Ich meine dieser Lizenzserver ist außerhalb und wenn man das Programm nicht hat, interessiert ein das Ding auch nicht. Aber ein Service wird man nicht mal eben so los.

MfG
Fabian

lbccaleb 2. Okt 2010 19:42

AW: Programmstart nach ablaufdatum verhindern
 
Ne andere möglichkeit währe noch, einen einfachen Schutz einzubauen, und dann die Echse mit einem Crypter zu verschlüsseln. Bei heutigen Cryptern wird oftmals schon ein gutes Wissen vorrausgesetzt um diese Dateien im richtigen Moment wieder aus dem Speicher auf die Platte zu schrieben. Damiot sollte ohne viel aufwand dein Programm zumindest für 0815 Cracker tabu sein.

Hat natürlich wieder den Nachteil, den diese Programme mit sich bringen. Halt höherer Speicherverbrauch usw...

Luckie 2. Okt 2010 21:22

AW: Programmstart nach ablaufdatum verhindern
 
Auch schlecht. Bei verschlüsselten Exe-Dateien springen meist Antivirusprogramme an.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:54 Uhr.

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