AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Einfacher Zeitschutz gesucht (TimeBomb)
Thema durchsuchen
Ansicht
Themen-Optionen

Einfacher Zeitschutz gesucht (TimeBomb)

Ein Thema von moelski · begonnen am 26. Sep 2007 · letzter Beitrag vom 11. Okt 2007
Antwort Antwort
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#1

Einfacher Zeitschutz gesucht (TimeBomb)

  Alt 26. Sep 2007, 12:35
Moin !

Wir möchten in unserer Anwendung einen einfachen Zeitschutz implementieren. Der soll vornehmlich bewirken das nach dem Zeitpunkt X eine Meldung kommt / die Anwendung nicht mehr rennt.
Um es vorweg zu nehmen ... Es geht uns nicht darum einen effektiven Schutz einzubauen der ein Starten unmöglich macht. Viel mehr geht es darum dem User zu signalisieren ... "Ab heute müsstest du mal über eine neue Version nachdenken".

Mir ist durchaus bewusst das man gerade so einfache Mechanismen wie eine Datumsprüfung sehr leicht umgehen kann wenn man nur das Biosdatum verstellt. Aber wie gesagt ... Gesucht ist hier nicht der perfekte Schutz. Sagen wir es mal so ... Es muss für den User einfacher sein eine neue Version zu laden, als den Startschutz zu umgehen.

Habt ihr da ein paar brauchbare Ideen / Lösungen?
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: Einfacher Zeitschutz gesucht (TimeBomb)

  Alt 26. Sep 2007, 14:05
Du kannst es dir ja mal ganz einfach machen.
* beim Starten prüfen, ob in der Registry unter einem bestimmten Pfad ein Wert (Zahl) steht.
* falls nicht wird das Ablaufdatum in die Registry geschrieben
Delphi-Quellcode:
var
   ablaufdatum : TDateTime;
   rwert : integer;
begin
   ablaufdatum := EncodeDate(2007, 10,1);
   rwert := Round(ablaufdatum); // in rwert steht jetzt "39356"
   // rwert wird jetzt in die Registry geschrieben
   ...
   reg.WriteInteger('MainColor', rwert-44444);
Dadurch, dass die Zahl "39356" in die Registry geschrieben wird, wird die
Bedeutung verschleiert.
Wer möchte kann von Zahl auch noch 44444 abziehen; damit wird die Zahl negativ und
der Zusammenhang mit einem Datum noch stärker verschleiert.
* falls der Wert in der Registry gefunden wird, die Umwandlung einfach umkehren:
   ablaufdatum := reg.ReadInteger('MainColor')+44444;
Andreas
  Mit Zitat antworten Zitat
Florian H

Registriert seit: 30. Mär 2003
Ort: Mühlacker
1.043 Beiträge
 
Delphi 6 Professional
 
#3

Re: Einfacher Zeitschutz gesucht (TimeBomb)

  Alt 26. Sep 2007, 14:53
Da man shmias Vorschlag ja immernoch sehr leicht umgehen kann, indem man einfach die Systemzeit verstellt, könntest du auch noch die Zeitpunkte der letzten 3 Starts (o.ä.) speichern.
Wenn diese gleich sind oder ein Start sogar laut Zeitangabe vor dem letzten Start stattfand, gleich einen Manipulationsversuch melden.

Die Zeitangaben natürlich wieder schlau "verschlüsseln", so wie shima es vorschlug.
Florian Heft
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#4

Re: Einfacher Zeitschutz gesucht (TimeBomb)

  Alt 26. Sep 2007, 17:44
Zitat von moelski:
Moin !

Wir möchten in unserer Anwendung einen einfachen Zeitschutz implementieren. Der soll vornehmlich bewirken das nach dem Zeitpunkt X eine Meldung kommt / die Anwendung nicht mehr rennt.
Um es vorweg zu nehmen ... Es geht uns nicht darum einen effektiven Schutz einzubauen der ein Starten unmöglich macht. Viel mehr geht es darum dem User zu signalisieren ... "Ab heute müsstest du mal über eine neue Version nachdenken".

Mir ist durchaus bewusst das man gerade so einfache Mechanismen wie eine Datumsprüfung sehr leicht umgehen kann wenn man nur das Biosdatum verstellt. Aber wie gesagt ... Gesucht ist hier nicht der perfekte Schutz. Sagen wir es mal so ... Es muss für den User einfacher sein eine neue Version zu laden, als den Startschutz zu umgehen.

Habt ihr da ein paar brauchbare Ideen / Lösungen?
Hallo,

meine persönliche Meinung: ich würde keine Mühe darauf verschwenden, eine Verstellung der Systemzeit zu entdecken. Für jemanden, der seinen Rechner ernsthaft benutzt, ist nämlich eine falsche Systemzeit mit unabsehbar vielen Nachteilen verbunden, daher lasse ich gleich die Finger davon; abgesehen davon, dass ich ein Verteilsystem mit Atomuhr habe und das erst mal ausschalten müsste. Wer aber qualifiziert genug ist, extra eine virtuelle Maschine einzurichten, um eine bestimmte Software weiter benutzen zu können, dem fällt auch was anderes ein, und ausserdem kann man kaum was dagegen machen, wenn das von Anfang an geplant wird und daher keine Zeitüberschneidungen auftreten.

Was man aber tun sollte, ist den Endzeitpunkt sorgfältig zu verschlüsseln, damit es nicht genügt, einfach ein neues Datum in die Lizenzdatei zu schreiben, das wäre dann doch zu einfach.

Gruss Reinhard
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#5

Re: Einfacher Zeitschutz gesucht (TimeBomb)

  Alt 27. Sep 2007, 09:48
Wenn du noch zusätzlich zu der Systemzeit paar Windowsdateien abfragst, hättest du ein schlecht veränderbares Datum.

Kandidaten sind z.B.:
Swapdatei - Änderungsdatum
Registry - Änderungsdatum
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Einfacher Zeitschutz gesucht (TimeBomb)

  Alt 11. Okt 2007, 09:32
Moin !

So das Datum verschlüsselt ablegen habe ich nun. Ich verwende einfach ein RC4 codiertes Datum (gab hier im Forum dazu eine Unit RCx) und den Schlüssel dafür findet man in der EXE

Ich denke das ist ausreichend genug geschützt. Man kann jedenfalls aus dem Hex der exe nicht mehr so einfach Texte auslesen.


Ich würde aber dennoch gerne das Startdatum irgendwo ablegen. Also wann wurde die Anwendung auf diesem System zum ersten mal gestartet. Ich habe nur bis dato noch keine Idee wie ich das machen kann.
Denn einfach nur eine Datei anlegen ist sinnlos. Das kann man löschen und hat den Urzustand wieder. Selbiges gilt für die Registry.

Also, wie kann ich irgendwo / irgendwie ein Datum so ablegen, das man es nicht "mal eben" wieder entfernen kann?
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#7

Re: Einfacher Zeitschutz gesucht (TimeBomb)

  Alt 11. Okt 2007, 15:11
Also ich persönlich mag überhaupt keine Software, die irgendwo (am besten noch in eine Windows-Datei) irgendwelche Einträge ablegt.
Eigentlich bleiben für dich nur das Anwendungsverzeichnis, ggf. ein zusätzliches Verzeichnis, in dem du Settings-Dateien ablegst (?), und die Registry. Dann evtl. noch eine DB, die deine Software nutzt. Mehr "sinnvollere Verstecke" gibt es meiner Meinung nach nicht. Aber wenn du diese Info an all diesen Stellen versteckst, geht das schon in Ordnung.
Aber bedenke, man kann es immer knacken!

Alternativ kannst du dir auch teure Komponenten zu legen, die dann ausgeklügelter sind und vielleicht einen "ernsteren" Schutz liefern.
Alexander
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#8

Re: Einfacher Zeitschutz gesucht (TimeBomb)

  Alt 11. Okt 2007, 15:56
Wo hier gerade soviel geredet wurde über Alternate Data Streams (ADS) - wäre das nicht auch ein interessanter Ort, Daten abzulegen? Hätte den Vorteil, dass sie mit dem Löschen der Datei auch sicher verschwinden. Aber vermutlich geht das nicht, wenn die Programmdatei schreibgeschützt. Könnte mir aber vorstellen, z.B. das Installationsdatum da mit hineinzuschreiben während der Installation oder ähnliches.
Naja, war nur so ein Gedanke.
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#9

Re: Einfacher Zeitschutz gesucht (TimeBomb)

  Alt 11. Okt 2007, 16:00
@OregonGhost: soweit ich das verstanden habe, funktionieren ADS aber nur unter NTFS. Ist die Installationspartition auf dem Zielrechner FAT-formatiert, war's das leider schon.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#10

Re: Einfacher Zeitschutz gesucht (TimeBomb)

  Alt 11. Okt 2007, 16:16
Das würde ich als Schwund einsortieren
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:39 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