Ich schlage vor, dass Sie nicht einmal versuchen, einen Kopierschutz hinzuzufügen. Du wirst die Leute nur nerven. Sie sind viel wahrscheinlicher, um Verkäufe zu erhalten, wenn Leute Ihr Produkt mögen. Kleinigkeiten zu sein und Kunden wie Diebe zu behandeln, wird nicht helfen. (Es sei denn, das Produkt ist wirklich schlecht, und Sie müssen verhindern, dass die Leute es ausprobieren können, bevor sie es kaufen.)
Sie möchten vielleicht einen Lizenzschlüssel senden, dessen einziger Zweck darin besteht, Benutzer zu befriedigen, die etwas für ihr Geld erhalten möchten. Fügen Sie einfach einen Status hinzu, um anzuzeigen, ob Sie bezahlt haben. Der Status muss ziemlich offensichtlich sein, damit klar ist, dass etwas passiert ist (ein Produkt, an dem ich vor einiger Zeit gearbeitet habe, kam auf Disketten mit zwei Disks - die Hälfte der Supportanrufe war, weil der Installer nicht nach dem zweiten [Win32s] fragte Scheibe).
Sehen Sie sich truelicense an, das ein Open-Source-Framework für genau das ist. Wenn Sie Ihre eigenen erstellen möchten, gibt es einige Dokumentationen, die die Konzepte erklären, und Sie können wahrscheinlich einige gute Ideen bekommen, indem Sie sich den Code ansehen.
bearbeiten: erwähnenswert, dass es sich nicht um ein Kopierschutzprogramm handelt.
Es gibt kein Lizenzsystem, von dem ich weiß, dass es nicht leicht zu knacken ist. Ich werde nicht auf Details eingehen, aber als Beispiel, in Java, wenn es in Java gemacht wird, kann es dekompiliert werden (so wie C ++ oder irgendeine kompilierte Sprache, aber Java ist einfacher als C ++ zum Beispiel). Wenn es nativ gemacht wird, dann brauchen Sie native Methoden, und die DLL / so könnte durch eine ersetzt werden, die den Zugriff erlaubt.
Für das C / C ++ - Beispiel kenne ich jemanden, der den CL (Microsoft-Compiler) dekompiliert hat, um herauszufinden, wie sie Mangelnamen benennen. Alles, was sie hatten, war das Binäre, und sie konnten es mit einem Disassembler und viel Zeit tun.
Mach dir keine Sorgen über solche Dinge, es nervt ehrliche Benutzer und verlangsamt mäßig diejenigen, die es kopieren wollen. Werfen Sie einen Blick auf World of Goo (tolles Spiel!) Und ihre Erfahrungen mit DRM (was eine ähnliche Idee ist, über die Sie sprechen).
Die Entwickler von World of Goo fanden heraus, dass ihr Produkt zu 90% raubkopiert wurde (erklären sie wie diese Zahl ungenau sein könnte), im Gegensatz zu einem anderen Spiel, das mit DRM ausgeliefert wurde und in 92% der Fälle raubkopiert wurde.
Wenn Sie über seriöse Unternehmen sprechen, dann möchten sie normalerweise die Lizenzkonformität einhalten, also sicherzustellen, dass sie nicht kopieren, ist eine Verschwendung. Wenn Sie über Leute sprechen, die das Produkt nicht kaufen würden, oder einfach nicht dafür bezahlen wollen, werden Sie nicht wirklich die Anzahl der Leute ändern, die Ihre Software illegal bekommen, Sie werden nur die Geschwindigkeit verringern Erste Person, die es bekommt - danach ist die Katze aus der Tasche.
Ich persönlich denke, dass IntelliJ es richtig macht: voll funktionsfähige Version für 30 Tage. Sie sollten nicht restriktiver als das sein.
Der "voll ausgestattete" Teil ist wichtig. Wenn Ihre unregistrierte Version so verkrüppelt ist, dass sie nutzlos ist, wie erwarten Sie dann, dass sich die Leute dafür entscheiden, sie zu kaufen? Sie müssen Features ausprobieren, bevor sie entscheiden, dass sie sie mögen und wollen, aber die Vorstellung, dass einige Verkäufer haben, dass die Leute etwas kaufen werden, das Versprechen von Features, die sie nicht ausprobieren konnten, ist lächerlich.
Oracle ist am liberalsten Ende des Spektrums. Sie können im Grunde eine voll funktionsfähige Version ihrer Software herunterladen und einfach verwenden. Sie behandeln die Lizenzierung als ein soziales Problem und es gibt eine Menge Vorteile für dieses Argument.
Sie sollten niemals Ihre potenziellen Kunden nerven oder auf andere Weise ärgern (darüber hinaus ist es möglich, dass die Software nach einer bestimmten Zeit abläuft). Die meisten Hinweise, die Sie geben sollten, ist "X läuft ab in N Tagen" auf einem Begrüßungsbildschirm oder etwas.
Das andere, was Sie tun können und sollten, ist eine niedrige Zugangsbarriere für Ihre Software.
Stellen Sie eine günstige (wenn nicht freie) akademische oder persönliche Version zur Verfügung. Marketing ist auch eine gute Idee. Damit meine ich IntelliJ: Es wird kostenlos für genehmigte Open-Source-Projekte angeboten.
Was die technischen Aspekte der Durchsetzung betrifft: seien Sie nicht zu sehr besorgt über die technischen Aspekte. Wählen Sie niemals ein Schema, das Ihre Benutzer verärgert oder, noch schlimmer, Ihre Software verlangsamt (wie es einige Systeme tun) oder (noch schlimmer) die Sicherheit des Betriebssystems des Benutzers verletzt (zB wie das Sony-Rootkit-Fiasko). Ihre Durchsetzung soll nicht hacksicher sein. Wenn Leute deine Software stehlen wollen, werden sie es tun. Das Durchsetzungssystem ist eine sanfte Erinnerung (und nicht mehr) für ein soziales und nicht ein technisches Problem.
Nach dem Lesen Orakels BCL (die kommerzielle Freiheit bekräftigt). Ich hatte dann ein Gespräch mit einem Oracle-Vertreter, der sagte, dass JavaSE für kommerzielle Zwecke frei ist!