Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Demo Version schreiben. (https://www.delphipraxis.net/73353-demo-version-schreiben.html)

Christian18 16. Jul 2006 16:46


Demo Version schreiben.
 
Hallo,

ich bin gerade dabei eine Demo Version von einem Programm zu schreiben. Nach 30 Aufrufen, soll das Programm nicht mehr ausführbar sein. Wie ich das mit Delphi realisieren kann weiß ich. Was ich jetzt nicht weiß ist wie ich das in einer Datei verschlüsselt speichere. Ich muss ja die Aufrufe die schon gemacht wurden abspeichern, damit das Programm mitbekommt, wenn die 30 Aufrufe um sind. Wie kann ich die Anzahl der Aufrufe verschlüsselt in einer Datei speichern???



Mit freundlichen Grüßen

Christian18

mkinzler 16. Jul 2006 16:50

Re: Demo Version schreiben.
 
Du könntest die Verschlüsselung mit Hilfe von DEC oder TP LockBox machen. Du könntest dir auch mal die onGuard-Komponenten von TP anschauen.

Phoenix 16. Jul 2006 16:51

Re: Demo Version schreiben.
 
Sinnigerweise gar nich ;-)

Der Benutzer löscht die Datei (am besten noch im Batch-File, das gleich die Anwendung startet) -> Software wird niemals deaktiviert weil sie jedesmal die 29 neu reinschreibt.

Datei muss vorhanden sein: Macht auch nix, weil er die Datei wegkopiert, und nachdem sie geändert wurde wieder hinkopiert -> Auch beliebig lange Nutzung.

Christian18 16. Jul 2006 16:54

Re: Demo Version schreiben.
 
mhhhhhhhhh... du hast recht

was kann man dagegen tun???

faux 16. Jul 2006 16:55

Re: Demo Version schreiben.
 
Du könntest das ganze in der Registry speichern. Am besten nicht dort, wo jeder 08/15 User sucht. ;)
Ist sicherlich mal einen Schritt sicherer.

Grüße
Faux

Phoenix 16. Jul 2006 17:06

Re: Demo Version schreiben.
 
Zitat:

Zitat von faux
Du könntest das ganze in der Registry speichern. Am besten nicht dort, wo jeder 08/15 User sucht. ;)

Dafür gibts z.B. von Sysinternals ein Tool welches alle Registryzugriffe eines Programmes protokolliert. Taugt also auch nicht.

Eine Methode die schon eher Sinn macht wäre, die Build-Nummer aus den Versionsinformationen der Exe selber zu mißbrauchen. Man stellt hier als Build-Nummer z.B. 30 ein, und bei jeden Start zählt die Anwendung seine eigene Version um eins runter. Ist die Version dann z.B. 1.2.15.0 anstelle von 1.2.15.30, dann startet sie nicht mehr.

Aber auch so eine Prüfung lässt sich letzlich relativ einfach rauspatchen, aber dazu müsste man dann tatsächlich disassemblieren um die Stelle der Abfrage rausfinden und von Hand mit dem Hexeditor an die .exe und ein NOP reinsetzen - und sich logischerweise auch ein wenig damit auskennen. Von daher würde ich das Verfahren schon eher als relativ Sicher ansehen, der Aufwand ist im Gegensatz zu einer Datei- oder Registrymanipulation deutlich höher (und wie wir schon mehrmals hier gelernt haben: Wirklich sicher ist unmöglich, es ist nur möglich den Aufwand für einen Angreifer möglichst so hoch zu setzen, dass es sich nicht mehr lohnt ihn zu betreiben).

DGL-luke 16. Jul 2006 17:26

Re: Demo Version schreiben.
 
da nehm ich ein geeignetes tool, mach einen binary diff zwischen zwei verschieden oft gestarteten versionen des programms, sehe den unterschied und mach ins letzte oktett FF rein. 255 programmstarts, was will man mehr?

Dax 16. Jul 2006 17:30

Re: Demo Version schreiben.
 
Hm, was spricht dagegen, Resourcen zu verwenden? Dein Programm kann seine Resourcen selbst verändern, wenn es läuft. Du machst dir also eine Int-Resource, oder 8 Char-Resourcen oder wie dirs recht ist, verschlüsselst die Anzahl der (verbleibenden) Programmstarts irgendwie und packst sie auch irgendwie da rein^^

Keldorn 16. Jul 2006 17:49

Re: Demo Version schreiben.
 
du wirst aber nicht mehr daran gehindert, einfach nochmal das Prog zu installieren, wenn du das prog selsbt oder zum Programm direkt gehörenden Dateien änderst.

faux 16. Jul 2006 18:03

Re: Demo Version schreiben.
 
Zitat:

Zitat von Phoenix
Zitat:

Zitat von faux
Du könntest das ganze in der Registry speichern. Am besten nicht dort, wo jeder 08/15 User sucht. ;)

Dafür gibts z.B. von Sysinternals ein Tool welches alle Registryzugriffe eines Programmes protokolliert. Taugt also auch nicht.

Ich habe lediglich geschrieben, dass es eine bessere Methode ist, als mit einer Datei. ;)

Naja, ich würde eine Kombination aus mehreren Möglichkeiten machen, und sobald ein Wert nichtmehr zu den anderen passt, startet es auch nichtmehr.

Grüße
Faux


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:51 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