Kopierschutz

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.
Benutzeravatar
SirCus
Beiträge: 182
Registriert: 10.09.2004 11:44
Wohnort: München
Kontaktdaten:

Kopierschutz

Beitrag von SirCus »

tach
ich überlege gerade wie ich mein Programm vor wildem Kopieren schützen kann. Es ist einfach erklärt eine Art Buchhaltungssoftware für kleinere Firmen.
Das Problem:
erstens: es soll als Demo verfügbar sein. Die Abfrage nach 30 Tage etc ist sinnlos, da das tool "daykill95" jeder normale Admin kennt :)

Eine überprüfung nach 100x starten oder so erscheint mir schon besser.

Eine andere Alternative erscheint mir eine Art Registrierschlüssel a la Microsoft: beim ersten Aufruf errechnet das Programm anhand einer Formel einen Code, der muss mir zugeschickt werden und ein zweites Programm auf meinem Rechner errechnet aus DIESEM Code dann den gültigen Schlüssel.
Also etwa so: Output Installationsprogramm 12345 - gültige "Antwort" wäre 24680 oder so.

Nachteil: Die Firma selbst braucht mich immer beim Installieren.

Zweites Problem: Das Programm ist eine Mehrplatz Lösung. D.h. der Kunde kann, wenn er es möchte, mehrere Lizenzen kaufen, und hat so die Möglicheit verschiedenen Usern verschiedene Rechte geben.
(Rechnungsabteilung darf z.B. nicht neue Aufträge abgeben, der Mitarbeiter vor Ort hat eine Offline-Datenbank, nur das Lager hat Zugang zu Lieferantenrechnungen /Daten etc)

Wenn der Kunde nun 3 Rechner hat, und braucht eine vierte Lizenz, soll er mit seinem 3 Lizenz-Code keine vierte Installation vornehmen können.
Meine Idee war, das ganze über die zentrale mySQL Datenbank zu machen. Aber jeder findige Admin hat da natürlich Zugriff drauf, spätestens über die dump-files...

Es geht mir garnicht sosehr um mein Mißtrauen gegenüber meinen Kunden sondern um die Idee an sich wie man so etwas lösen könnte.
2D Game H.E.R.A. (Entwicklung eingefroren)
www.chamaeleo-fx.de.vu

- mein Lieblingszitat
"die Informationsumwelt wird von einer fürchterlichen Menge an Unsinn und Lügen verschmutzt" (Stanislaw Lem, Lokaltermin, 1954 (!) )
http://www.stanislaw-lem.de/zitate/zitate.shtml
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Beitrag von GPI »

Wenn genügend kriminelle Energie aufgebracht wird, ist jeder Kopierschutz schnell weg.

Zur Demo:
Die muß halt irgendwie eingeschränkt sein. Zeitliche Einschränkungen oder Aufrufzähler sind schnell manipuliert.

Scherze, wie drucken nicht erlaubt, etc. sind hilfreich. (tip für die Demo-Erstellung: mach in der Quellcode ganz oben ein "#Demo=#true" und kommentiere entsprechende Teile mit "compilerIf #demo" etc aus. Ein code für die Vollversion/DemoVersion).

Was den Registrierungsschlüssel angeht: Furchtbar nervig, wenn sich die Hardware ändert und dann braucht man einen neuen Registrierungsschlüssel. (Auch hinderlich für die Datensicherheit. Angenommen dir passiert was und der PC geht kaputt. An die Daten kommt man dann nicht mehr so leicht)

Das mit den mehrfachinstallationen wirst du auch nur in griff kriegen, wenn man die Installationen voneinander wissen -> nicht möglich.

Verschiedene Denkansätze
*Für Privat-Anwender kostenlos freigeben (diese Raubkopierergruppe unter kontrolle zu kriegen ist zwecklos) (Demo-Version)
*Jede Firma eine induviduelle Version zukommen lassen (versteckte S/N-Nr. etc. Mehrfach unterbringen + CRC-Checksum etc. um die richtigkeit der S/N-Nummer beim abfragen festzustellen). Keine Abfragen und Programmabbrüche! Dient nur dazu, eine Raubkopiererquelle zu entdecken. (In kaufvertrag sollte drinne stehen, das der Lizenznehmer dafür sorgen muß, das diese nicht raubkopiert wird, ansonsten Lizenz-Verlust)
*Falls du doch direkte Copyprotections einbaust: Auf keinen fall den Benutzer offensichtlich zeigen, das erkannt wurde, das eine Raubkopie läuft. Lass das programm dann irgendwann mit einer Fehlmeldung beenden, die sagt, das man sich in Kontackt mit dir begeben soll. Wichtig: Alles absichern! Es darf keine Daten verloren gehen, falls dein Kopierschutz mal überreagiert.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Benutzeravatar
SirCus
Beiträge: 182
Registriert: 10.09.2004 11:44
Wohnort: München
Kontaktdaten:

Beitrag von SirCus »

ja, also den Anspruch einen unknackbaren Schutz zu entwickeln habe ich natürlich nicht.

Ich will einfach nur verhindern, dass man "versehentlich" 6 statt 5 Lizenzen installiert.
Das mit dem Lizenzschlüssel hätte ich nicht an die Hardware gekoppelt, sondern einfach einen normalen rechenalgorhytmus laufen lassen.

Es sind nur kleine Hürden, aber mir würden die reichen.

Dass die Lizenzen voneinander wissen ist schon möglich, wenn man sie als Client/Server auslegt ;)
Um dann meher Lizenzen als erlaubt zu installieren müsste man auch mehr Server installieren als nötig und das wiederum könnte probleme mit der Datenbank verursachen.. denke das ist gar keine schlechte Idee.

Der Lizenzcode für den Server lässt sich dann an die Lizenzanzahl der Clients anpassen und er "weiss" somit wieviele Clients sich installieren dürfen.
Be der Installation der clients wird sich jeder Client beim Server erstmal "anmelden" müssen und dann sieht der Server anhand des Client-keys ob es ein "unerlaubter" ist oder nicht.

Naja das sind zumindest denkansätze. Wie gesagt es sollen nur etwas unübliche Steinchen sein. Keine undurchdringbare "Mauer"
2D Game H.E.R.A. (Entwicklung eingefroren)
www.chamaeleo-fx.de.vu

- mein Lieblingszitat
"die Informationsumwelt wird von einer fürchterlichen Menge an Unsinn und Lügen verschmutzt" (Stanislaw Lem, Lokaltermin, 1954 (!) )
http://www.stanislaw-lem.de/zitate/zitate.shtml
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Beitrag von GPI »

Client-Server anders auslegen.
Nicht die Installationen überprüfen, sondern die gleichzeitig aktiven Clients.

So dürfen ohne Probleme mehr als 5 Clients installiert sein, aber maximal 5 können gleichzeitig drauf zugreifen.
Die Clients sollten eine Ich-will-rein und eine ich-habe-fertig Message senden. Und in falle eines Absturzes sollte ein TimeOut von 5 Minuten gesetzt werden (der Client sollte sich alle 4 Minuten dann melden).

Wichtig: Es bringt nichts, wenn der Client die Abfrage und das Programmbeenden macht (kenn ich von einen anderen Programm. Teilweise kommt dann: "Es liegen noch daten zum versand vor, wirklich beenden?" und dann einfach auf nein und man hat eine beliebige anzahl von clients...)! Der Server muß die Daten zentral speichern und diese Freigeben.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Benutzeravatar
mueckerich
Beiträge: 220
Registriert: 13.09.2004 11:33
Wohnort: Am schönsten Flecken der Erde, zwischen PC und Motorrad

Beitrag von mueckerich »

Hi,

habe mich auch schon mit dem Thema Kopierschutz beschäftigt und bin dabei auf die Freeware "Copyprotector V3.4" von Frank Franzoni http://www.franzoni-online.de :mrgreen: gestoßen, die kann auch eine bestimmte Anzahl von Tokens (Lizenzen) verwalten und wird als DLL zur Verfügung gestellt. In der alten Version (die leider nicht mehr zur Verfügung steht :cry: , aber man kann ja mal höflich nachfragen) war es auch möglich eine Dongledisk zu erstellen auf der die Lizenzen (Token) abgespeichert sind. Ferner enthält die DLL Routinen zum erstellen von System-ID's anhand der Hardware uvm. Leider ist das Ansprechen der DLL wegen der in PB nicht vorkommenden Datentypen nicht ganz unkompliziert /:-> , habe aber bereits eine Lib bzw eine Include dafür geschrieben. Diese wurde nur nicht veröffentlicht weil der CP so wie er ist nicht mehr verfügbar ist. Nach Aussage von Frank gibt es aber bald eine neue Version, die aber leider keinen Dongledisk mehr erstellen kann.
"Wenn Sie glauben, mich verstanden zu haben, dann habe ich mich falsch ausgedrückt" ( Alan Greenspan)
the_pharao
Beiträge: 51
Registriert: 09.09.2004 14:20

Beitrag von the_pharao »

1) wenn du eine eingeschränkte demoversion rausgeben willst, darfst du die nicht ZU sehr einschränken. wenn man mit einer demo nicht arbeiten kann, kann man sich auch nicht an das programm "gewöhnen" und ist leichter versucht, was anderes auszuprobieren

2) bei demoversionen empfiehlt es sich immer, bei ausdrucken, berichten etc. die erstellt werden (und die mehr leute zu gesicht bekommen), irgendwo gut lesbar "erstellt mit demoversion von xyz" mit auszudrucken. wenn z.b. excel-tabellen erstellt werden, diese vor veränderungen mit zufällig generiertem passwort schützen und demo-hinweis mit aufs tabellenblatt.

3) nag screens, die jede halbe stunde oder so für ein paar sekunden eingeblendet werden (aber nicht zu oft und nicht zu lange!!!)

4) dem käufer einen eindeutigen schlüssel geben. natürlich kann er diesen weitergeben. aber supportanfragen werden nur mit schlüssel<->kunde bearbeitet.

5) ein hartnäckiger und aufdringlicher kopierschutz schreckt ab und erhöht die wahrscheinlichkeit, dass ein crack genutzt wird

Epic Space Battles: Solar*Conflict - 3D Shoot'em up: UFO Onslaught! 3d
Antworten