Autor |
Beitrag |
Swordooo
      
Beiträge: 119
W2K, Windows XP Professional
Delphi 2005 Personal, Delphi 7 Personal
|
Verfasst: Fr 25.07.08 21:32
Hallo an alle.
Ich habe ein Programm, das aber nicht jeder frei nutzen soll. Deshalb habe ich mir überlegt, eine Lizenz-Datei zu erstellen, die die Lauffähigkeit (Zeit, in der das Programm läuft. Danach ist es gesperrt/Man kann es nicht mehr verwenden) festlegt. Beispiele hierfür sind diverse Antivirus-Programme o.ä. .
Habt ihr eine Idee, wie ich das mache bzw. wie ich die erstellte Datei ins Programm einbinde?
Soll ich eine stringlist machen , in der verschlüsselt die Daten (s.o.) stehen?
MfG Swordooo
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 25.07.08 22:17
Nur weil du in deiner Lizenzdatei schreibst, dass das Programm nur drei Monate benutzt werden darf und du diese Lizenzdatei in deinen Quellcode einfügst, wird dein Programm nach drei Monaten immer noch starten. Da wirdst du dir wohl was einfallen müssen, wie du festellst, dass drei Monate rum sind und wie du verhinderst, dass jemand da manipuliert.
Ich persönlich rate dir, steck nicht zu viel Zeit und Arbeit in einem Kopier- bzw. Sharewareschutz, es lohnt einfach nicht. Investier die Zeit lieber in die Funktionalität des Programmes und liefere nur eine, in der Funktionalität eingeschränkte, Demoversion aus.
|
|
Swordooo 
      
Beiträge: 119
W2K, Windows XP Professional
Delphi 2005 Personal, Delphi 7 Personal
|
Verfasst: Fr 25.07.08 22:56
ok, aber nur mal theoretisch...wiw weiß das Programm, wann 3 Monate um sind?
Weiß das jemand?
MfG Swordooo
|
|
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Fr 25.07.08 23:02
Swordooo hat folgendes geschrieben: | wiw weiß das Programm, wann 3 Monate um sind? |
Na, es merkt sich das Datum beim ersten Start, addiert 3 Monate und überprüft vor jedem Start, ob das aktuelle Datum noch vor diesem liegt. Sonst wird einfach nicht gestartet.
Aber da gibt es einen Haken: Das Datum des ersten Starts muss irgendwo gespeichert sein - und ist daher veränderbar. Du kannst das Risiko sehr klein drücken, aber ausgeschlossen ist eine Modifikation nie.
Ich unterstütze Luckie übrigens vollkommen. Shareware lade ich mir nur im äußersten Notfall runter, wenn es wirklich kein anderes Programm gibt. Mit eingeschränktem Funktionsumfang habe ich kein Problem - vielleicht würde ich das Programm dann sogar kaufen, wenn es mir gefällt.
|
|
<TargeT>
      
Beiträge: 59
Win XP, Win 98
Delphi 7
|
Verfasst: Sa 26.07.08 00:32
ich weiß nicht um was für ein programm es sich handelt, aber du könntest das datum auch aus dem internet abfragen und dieses dann auf dein webspace speichern. von dort wird das datum dann immer wieder abgefragt bis halt die 3monate um sind. aber 100pro sicher ist das auch nicht, müsstest dir mehrere wege überlegen dann wirds schwerer diese zu umgehen.
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Sa 26.07.08 04:27
<TargeT> hat folgendes geschrieben: | ich weiß nicht um was für ein programm es sich handelt, aber du könntest das datum auch aus dem internet abfragen und dieses dann auf dein webspace speichern. von dort wird das datum dann immer wieder abgefragt bis halt die 3monate um sind. aber 100pro sicher ist das auch nicht, müsstest dir mehrere wege überlegen dann wirds schwerer diese zu umgehen. |
was ist wenn man kein internet hat?
Swordooo hat folgendes geschrieben: | ok, aber nur mal theoretisch...wiw weiß das Programm, wann 3 Monate um sind?
Weiß das jemand?
MfG Swordooo |
auf dem ausführenden PC speichern is ganz schlecht. Da gibts nämlich so böse freeware programme mit denen man die windowszeit solange auf ein datum und eine uhrzeit zurücksetzen kann (und die bleiben dann auch so) bis man ein programm das man vorher definiert hat wieder geschlossen hat. dann wird die systemzeit wieder auf die aktuelle zeit aktualisiert. D.H. ich könnte dein programm ewig nutzen wenn ich diese software verwende.
Die beste Idee stammt noch immer vom Lukie bezüglich shareware. N Demo mit eingeschränkten funktionen is ne klasse idee nur muss der User sehen (über die Hilfedatei o.ä) was die vollversion noch zu bieten hat, sonst kauft sichs ja keiner.
lg elundril
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
Popov
      
Beiträge: 1655
Erhaltene Danke: 13
WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
|
Verfasst: Sa 26.07.08 05:49
Swordooo hat folgendes geschrieben: | ok, aber nur mal theoretisch...wiw weiß das Programm, wann 3 Monate um sind?
Weiß das jemand?
MfG Swordooo |
Hier eine sehr einfache Unit von mir die ich dazu nutze Beta-Versionen von meinen Freeware-Programmen zeitlich zu begrenzen. Mir geht es dabei weniger um den Schutz des Programms, als vielmehr drum den Nutzer dazu zu bringen eine aktuelle Beta oder Finalversion zu holen.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52:
| unit uBetaTest;
interface
function BetaInfo: String; implementation
uses SysUtils, Dialogs, Classes;
function BetaDate: TDateTime; begin Result := StrToDate('31.12.2008'); end;
function BetaInfo: String; begin Result := 'Testversion bis ' + DateToStr(BetaDate); end;
procedure BetaTest; const Warnzeit = 14; Versionstyp = 'Testversion'; begin
if Now <= BetaDate then Exit;
MessageDlg('Die '+Versionstyp+' ist am '+DateToStr(BetaDate)+' abgelaufen.', mtInformation, [mbOk], 0);
Halt; end;
initialization BetaTest;
end. |
Das nette an der Unit ist, daß du sie nur in die Projektdatei eintragen mußt, aber nicht aus dem Programm aufrufen mußt. Die Unit führt sich selbst bei Start aus, also muß man nirgendwo im Programm eine Funktion aufrufen.
_________________ Popov
|
|
alzaimar
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: Sa 26.07.08 09:52
Schön einfach.
Jetzt müsste man nur noch das Datum jedesmal patchen, wenn jemand die EXE aus dem Internet laden will.
_________________ Na denn, dann. Bis dann, denn.
|
|
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Sa 26.07.08 12:35
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: Sa 26.07.08 12:38
_________________ Markus Kinzler.
|
|
alzaimar
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: Sa 26.07.08 13:17
_________________ Na denn, dann. Bis dann, denn.
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Sa 26.07.08 13:55
alzaimar hat folgendes geschrieben: | Yogu hat folgendes geschrieben: | alzaimar hat folgendes geschrieben: | Schön einfach.
Jetzt müsste man nur noch das Datum jedesmal patchen, wenn jemand die EXE aus dem Internet laden will. |
... und der User müsste nur noch das Datum jedesmal patchen, wenn er die Testversion verlängern will  |
Klar, kann man alles machen (gähn). Das geht aber nur mit Reverseengineering und das ist auch nicht trivial. |
Das letzte mal, wo ich ein Programm mit Zeitbegrenzung hatte, hat es mich (auch ohne den Source genauer zu analysieren) keine 20 Minuten gebraucht, die Stelle im Programm ausfindig zu machen, wo die Shareware-Meldung stand (die hatte ich nach bereits einem Versuch in <1 Minute) mit anschließenden Patchen (5 Minuten, da ich kurz was im ASM-Listing schauen musste) und ein paar kleineren Tests.
Den Entscheidenden Hinweis hat mir jedoch meine Firewall gegeben, die mich darauf hinwies, dass dieses Programm im System32-Verzeichnis eine Datei anlegen wollte.
Was lernt man daraus:
- Ein Shareware-Schutz ist leicht lokalisiert
- Meist noch leichter auszuhebeln
- Und manchmal funktioniert er nicht einmal
In keinem der Fälle ist es sinnvoll, als unerfahrener Anwender selbst zu versuchen, sowas selbst zu programmieren und dann davon auszugehen, dass es schützt.
alzaimar hat folgendes geschrieben: | Und darum geht es bei Popovs Version doch nicht. Es ist ein simpler Schutz ganz ohne Extraarbeit, der mehr als 99% der Benutzer davon abhält, das Programm weiter zu verwenden. Ich würde damit (und nur mit einer Abfrage) auch keine 20.000 Euro Software schützen, aber für Shareware reichts doch Dicke. |
Ich seh das eher wie Luckie: Shareware gehört nicht auf meinen Rechner, da ich das Hinterlassen von Spuren in meiner Registry OHNE meine Kenntnis als Verhalten von Viren und Würmern klassifiziere. Dann lieber ein in seiner Funktionalität sauber reduziertes Programm, was mich beim Arbeiten nicht unnötig nervt.
alzaimar hat folgendes geschrieben: | Außerdem könnte man die Prüfroutinen verändern, sodaß es einen generellen Patch wohl kaum geben dürfte... |
Den gibt es meistens:
JNZ\JZ invertieren oder mit NOP\JMP patchen
Ich hab uall mal ein Programm gegeben, wo genau das nicht gehen sollte. Antwort war ein Patch, wo er GENAU DAS gemacht hat ...
Soviel dazu 
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
<TargeT>
      
Beiträge: 59
Win XP, Win 98
Delphi 7
|
Verfasst: Sa 26.07.08 15:35
elundril hat folgendes geschrieben: | was ist wenn man kein internet hat? |
deswegen meinte ich ja das ich nicht weiß um welche art programm es sich handelt, vielleicht greift sein programm ja eh aufs inet zu..... wenn nicht dann halt wie Luckie meinte einfach eine eingeschränkte version rausbringen
|
|
Popov
      
Beiträge: 1655
Erhaltene Danke: 13
WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
|
Verfasst: Sa 26.07.08 22:12
alzaimar hat folgendes geschrieben: | Und darum geht es bei Popovs Version doch nicht. |
Richtig. Das ist kein Shareware-Schutz, sondern nur eine einfache Datum-Abfrage für Beta-Versionen. Wer Lust hat statt sich eine neue Version zu holen, die alte zu Patchen, der soll bei meinen Freeware-Tools glücklich damit werden. Allerdings reicht die Unit auch als einfacher Schutz. Die meisten Nutzer haben sowieso keine Ahnung wie sie selbst so einen einfachen Schutz knacken können. Und der Rest, vorausgesetzt das Programm ist von Bedeutung, holt sich einen Patch von Hacker-Seiten für das Programm. Auch kein Schutz.
BenBE hat folgendes geschrieben: |
Ich seh das eher wie Luckie: Shareware gehört nicht auf meinen Rechner, da ich das Hinterlassen von Spuren in meiner Registry OHNE meine Kenntnis als Verhalten von Viren und Würmern klassifiziere. Dann lieber ein in seiner Funktionalität sauber reduziertes Programm, was mich beim Arbeiten nicht unnötig nervt. |
Das Problem ist in der Regel kein Problem. Man kann bei XP ein weiteres Konto mit eingeschränkten Benutzerrechten erstellen. Läst sich das Programm ohne Adminrechte ausführen oder installieren, wird höchstens das Ersatzkonto "verunreinigt". Ist es zu voll, löscht man es und erstellt ein neues Konto. Dauer der Aktion gleich 1 Minute. Wie gesagt, wir sind nicht mehr im Windows 98 Zeitalter.
_________________ Popov
|
|
motion
      
Beiträge: 295
XP, Linux
D7 Prof
|
Verfasst: Sa 26.07.08 23:54
zwar schon einige Jahre alt, sollte aber mit D7 trotzdem laufen:
TurboPowers "OnGuard" enthält genau diese Funktionen:
sourceforge.net/projects/tponguard/
Opensource mit Handbuch; ist vielleicht mal einen Blick wert, falls man solche Funktionen sucht (Beschränkung auf Zeitraum, Anzahl user im Netzwerk etc.)
|
|
|