| Autor |
Beitrag |
AlexL
Hält's aus hier
Beiträge: 4
Windows Vista 64 Bit
Delphi, ein bissl C++, VB, PHP, Mysql
|
Verfasst: So 05.10.08 19:43
Ich habe eine Anwendung programmiert, die ich gerne als Shareware im Internet zum Download anbieten möchte. Als Sharewarebegrenzung ist die Anzahl der Starts der Anwendung vorgesehen. Wie programmiert man einen Nutzungszähler normalerweise? Mache so etwas zum ersten mal. Auch nach Deinstallation und Neuinstallation sollte der Zähler auf den alten Stand sein.
Die Windows-Registrierung halte ich für zu unsicher, oder?
Gruß,
Alex
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 05.10.08 20:35
Sicherheit ist relativ, du kannst nur versuchen Manipulationen am Zähler zu erkennen, aber wirklich sicher kannst du Shareware nicht schützen. Du kannst es nur so schwer wie möglich machen, diese zu knacken.
Wenn du mit einer einfachen kleinen if-Abfrage den Zähler überprüfst, dann würde ich zum Knacken jedenfalls den gar nicht manipulieren sondern schlicht die Überprüfung in ein paar Minuten rausnehmen, wobei die Änderung an sich sehr klein ist, im Zweifelsfall nur ein Sprungbefehl, der ausgetauscht werden muss.
|
|
AlexL 
Hält's aus hier
Beiträge: 4
Windows Vista 64 Bit
Delphi, ein bissl C++, VB, PHP, Mysql
|
Verfasst: So 05.10.08 21:54
Das es immer Auswege geben wird ist klar. Aber die wenigsten potentiell ehrlichen Kunden (wenn sie aufgeben;)) können mit einem Disassembler bzw. Debugger umgehen.
Wie könnte so ein Schutz in der Praxis realisiert werden?
Ich habe mir gedacht evtl. eine Datei mit der Installation auszuliefern, die den Zähler verschlüsselt beinhaltet. Nur was mache ich, wenn diese Datei zu Beginn der Nutzung kopiert wird... auch kein sinniger Schutz...
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 05.10.08 22:09
Die einzige sinnvolle Möglichkeit besteht in einem Eintrag in der Registry, denn Dateien können erst recht auch von unerfahrenen Anwendern gefunden werden. Das Problem: Wenn der Benutzer den Eintrag findet, dann kann er ihn vor einer Neuinstallation einfach löschen.
Ohne Überprüfung einer Hardware-ID über das Internet lässt sich das auch kaum viel besser schützen. Und da man durch reines Löschen einen gefundenen Eintrag zurücksetzen kann, lohnt sich auch kaum eine Verschlüsselung. Lohnen tut sich die Werte selbst aufzublähen, so dass der Anwender den Eintrag nicht so leicht findet oder auch redundante Schlüssel, die sich gegenseitig überprüfen.
Eine andere Möglichkeit sind sogenannte Alternate Data Streams, die nicht ganz so einfach gefunden werden können. Allerdings sollte man dabei aufpassen, dass man da keine unerwünschten Sachen macht.
|
|
MagicRain
      
Beiträge: 154
WinXp, Win8, iOS
Delphi 7, Lazarus Pascal, Delphi 10.2 Starter, NetBeans Java
|
Verfasst: So 05.10.08 22:19
AlexL hat folgendes geschrieben : | | Das es immer Auswege geben wird ist klar. Aber die wenigsten potentiell ehrlichen Kunden (wenn sie aufgeben;)) können mit einem Disassembler bzw. Debugger umgehen. |
Die vielleicht, dafür aber genügend andere  Wenn du wirklich ein einigermaßen guten Schutz willst lass den Trial mist komplett weg und erstelle eine DEMO Version, wo einige Optionen einfach nicht enthalten sind.
|
|
alzaimar
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: Mo 06.10.08 07:29
Ich finde z.B. eine Version die beim Ausdruck ein Wasserzeichen mit ausgibt, höchst freundlich. Denn ich kann die Funktionen beliebig testen, aber eben das Ergebnis nicht veröffentlichen. Von mir aus kann auch ein Hinweis immer präsent sein (In der Titlelleiste, oder so), sodaß die Kollegen sofort merken, das ich mit einer Demoversion arbeite.
Manchmal reicht auch einfach ein Hinweis beim Programmstart (Total Commander). Das Programm ist so gut, das ich gerne dafür bezahle. Ähnliches gilt für WinRAR. Ich gebe dafür Geld aus, denn es ist nicht teuer und da ich selbst Entwickler bin, weiss ich eben, was für eine Sauarbeit das ist. Und sowas gehört honoriert.
Meine persönliche Erfahrung ist, das ich umso leichter für eine SW bezahle, je dezenter und freundlicher die 'Einschränkung' ist. Trialversionen, die mir auf den Sack gehen und JEDESMAL zum Kaufen auffordern, oder nach einiger Zeit den Dienst versagen und danach nicht nochmals installiert werden können, können mich mal. Das sehe ich nicht ein, denn die haben offenbar permanent mein System verändert und das mag ich nicht.
_________________ Na denn, dann. Bis dann, denn.
|
|
Reinhard Kern
      
Beiträge: 591
Erhaltene Danke: 14
|
Verfasst: Mo 06.10.08 09:12
AlexL hat folgendes geschrieben : | Ich habe eine Anwendung programmiert, die ich gerne als Shareware im Internet zum Download anbieten möchte. Als Sharewarebegrenzung ist die Anzahl der Starts der Anwendung vorgesehen. Wie programmiert man einen Nutzungszähler normalerweise? Mache so etwas zum ersten mal. Auch nach Deinstallation und Neuinstallation sollte der Zähler auf den alten Stand sein.
Die Windows-Registrierung halte ich für zu unsicher, oder?
Gruß,
Alex |
Hallo Alex,
dann nutze ich das mit einem virtuellen PC, den ich immer neu lade (wie im IT-Unterricht) - du bist dran.
Gruss Reinhard
|
|
MagicRain
      
Beiträge: 154
WinXp, Win8, iOS
Delphi 7, Lazarus Pascal, Delphi 10.2 Starter, NetBeans Java
|
Verfasst: Mo 06.10.08 13:09
alzaimar hat folgendes geschrieben : | Ich finde z.B. eine Version die beim Ausdruck ein Wasserzeichen mit ausgibt, höchst freundlich. Denn ich kann die Funktionen beliebig testen, aber eben das Ergebnis nicht veröffentlichen. Von mir aus kann auch ein Hinweis immer präsent sein (In der Titlelleiste, oder so), sodaß die Kollegen sofort merken, das ich mit einer Demoversion arbeite.
Manchmal reicht auch einfach ein Hinweis beim Programmstart (Total Commander). Das Programm ist so gut, das ich gerne dafür bezahle. Ähnliches gilt für WinRAR. Ich gebe dafür Geld aus, denn es ist nicht teuer und da ich selbst Entwickler bin, weiss ich eben, was für eine Sauarbeit das ist. Und sowas gehört honoriert.
Meine persönliche Erfahrung ist, das ich umso leichter für eine SW bezahle, je dezenter und freundlicher die 'Einschränkung' ist. Trialversionen, die mir auf den Sack gehen und JEDESMAL zum Kaufen auffordern, oder nach einiger Zeit den Dienst versagen und danach nicht nochmals installiert werden können, können mich mal. Das sehe ich nicht ein, denn die haben offenbar permanent mein System verändert und das mag ich nicht. |
Solche so genante Wasserzeichen sind auch viel zu leicht zu umgehen selbe gilt für Trial Fenster und gleiches.
| Zitat: | | Meine persönliche Erfahrung ist, das ich umso leichter für eine SW bezahle, je dezenter und freundlicher die 'Einschränkung' ist. |
Das macht das umgehen auch gleich viel leichter so sparst du einigen Leuten viel arbeit und Zeit  Aber oft nerven solche dinge wirklich arg, aber genau das ist doch der Sinn. Damit man sich die Full-Version dann kauft.
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 06.10.08 13:21
Ich persönlich mache das so, dass man eben ein Hinweisfenster bekommt ab und an und manche Komfortfunktionen nicht dabei sind. Ansonsten ist die Software so ausgelegt, dass man sie normal benutzen kann. Man muss halt mit den immer wieder mal erscheinenden Hinweisen leben. Diese sind so ausgelegt, dass sie je nach Software erst nach einer bestimmten Arbeitszeit wieder angezeigt werden.
Und das steht dann auch dabei, dass man die Version frei benutzen kann, wenn man mit den Hinweisfensterchen dann und wann leben kann und die erweiterten Funktionen nicht braucht.
Der Grund für die Entscheidung: Wer sich die Software partout nicht kaufen will, der findet auch Wege einen Schutz zu umgehen. So verärgere ich aber nicht eventuell kaufwillige Kunden und vielleicht kauft es dann doch jemand, der die Software gerne nutzt und immer wieder mal darauf hingewiesen wird, außerdem trägt das per Mundpropaganda zu einer Verbreitung der Software bei.
|
|
MagicRain
      
Beiträge: 154
WinXp, Win8, iOS
Delphi 7, Lazarus Pascal, Delphi 10.2 Starter, NetBeans Java
|
Verfasst: Mo 06.10.08 13:35
Ja da hast du recht also wenn die Software wirklich gut ist und das nötige Kleingeld stimmt spricht nie etwas gegen einen Kauf. Einige Software ist auch so gut die Kauft man dann auch gerne schon allein zur Unterstützung über andere Software spricht man lieber erst gar nicht  Und zum Schutz wie du es machst ist es eigentlich halt ganz gut, eben eine Version als DEMO, Trial veröffentlichen meinetwegen mit solchen Hinweis Fenstern und eben mit Eingeschränkten Funktionen die auch nicht enthalten sind.
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 06.10.08 13:44
Vor allem kann man das mit Compilerdirektiven ganz gut einbauen, dass der entsprechende Code einfach gar nicht dabei ist. So kann man ohne viel Aufwand die einzelnen Versionen parallel entwickeln und per Skript automatisiert erstellen lassen.
(Für die Skriptoperationen zum Kompilieren habe ich ja ein entsprechendes Tool veröffentlicht.  )
|
|
MagicRain
      
Beiträge: 154
WinXp, Win8, iOS
Delphi 7, Lazarus Pascal, Delphi 10.2 Starter, NetBeans Java
|
Verfasst: Mo 06.10.08 13:49
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 06.10.08 14:18
Das Tool kompiliert Delphi-Projekte, ohne dass man die Bibliothekspfade etc. angeben muss, die liest es selbst aus. Es kennt auch InnoSetup und ich glaube auch in der alten Version upx.
www.delphi-forum.de/viewtopic.php?t=41748
Da es keine Resonanz gab habe ich die neueren Versionen nur noch für mich selbst entwickelt und nicht mehr veröffentlicht.
|
|
|