2008-09-19 9 views
13

Ich schrieb ein Dienstprogramm für Fotografen, die ich online verkaufen ziemlich billig ($ 10). Ich möchte dem Benutzer erlauben, die Software eine Woche lang auszuprobieren, bevor er nach einer Lizenz fragt. Da dies ein persönliches Projekt ist und die Software nicht sehr teuer ist, denke ich nicht, dass es sich lohnt, die Dienste von professionellen Lizenzanbietern zu kaufen, und ich mache meine eigenen.Trialware/Lizenzierungsstrategien

Derzeit überprüft die Anwendung, ob ein Registrierungsschlüssel eine verschlüsselte Zeichenfolge enthält, die angibt, wann die Testversion abläuft oder ob sie eine gültige Lizenz besitzt. Wenn der Schlüssel nicht vorhanden ist, wird ein Testperiodenschlüssel erstellt.

Also alles, was Sie tun müssen, um eine weitere Woche kostenlos zu bekommen, löschen Sie den Registrierungsschlüssel. Ich glaube nicht, dass viele Benutzer das tun würden, besonders wenn die App nur $ 10 ist, aber ich bin neugierig, ob es einen besseren Weg gibt, dies zu tun, der dem legitimen Benutzer nicht lästig ist. Ich schreibe normalerweise Web-Apps und habe mich noch nicht mit diesen Dingen beschäftigt.

Die App ist in .NET 2.0, wenn das zählt.

Antwort

15

BEARBEITEN: Sie können Ihr gegenwärtiges Lizenzierungsschema erheblich schwieriger machen, indem Sie die Registrierungsinformationen in der Local Security Authority (LSA) speichern. Die meisten Benutzer können Ihre Schlüsselinformationen nicht von dort entfernen. Eine Suche nach LSA auf MSDN sollte Ihnen die Informationen geben, die Sie benötigen.

Meinungen zu Lizenzierungsschemata variieren mit jedem einzelnen, mehr unter Entwicklern als bestimmte Benutzergruppen (z. B. Fotografen). Sie sollten einen tiefen Atemzug nehmen und versuchen zu sehen, was Ihr Zielbenutzer angesichts der Geschäftsanforderungen, die Ihre Anwendung lösen wird, akzeptieren würde.

Dies ist meine persönliche Meinung zu dem Thema. Es wird Stimmen geben, die nicht übereinstimmen.

Die Antwort darauf hängt stark davon ab, wie Sie Ihre Anwendung erwarten. Wenn Sie erwarten, dass die Anwendung mehrmals täglich verwendet wird, profitieren Sie am meisten von einer sehr langen Testphase (mehrere Monate), um eine Lock-in-Situation zu schaffen. Damit dies funktioniert, müssen Sie eine Übergangsfrist einhalten, in der die Software den Benutzer darauf hinweist, dass die Zahlung in Kürze fällig sein wird. Vor der Nachfrist werden Sie mehr Erfolg haben, wenn die Software keine Probezeit hat.

Ob Sie an diese recht kühne Aussage glauben oder nicht, liegt natürlich ganz bei Ihnen. Aber wenn Sie das tun, sollten Sie feststellen, dass die Probezeit umso kürzer sein sollte, je seltener Ihre Bewerbung verwendet wird. Es ist auch sehr wichtig, dass die Bezahlung für den Benutzer sehr schnell und einfach ist (so wenig Dateneingabe und so wenig Klicks wie möglich).

Wenn Sie sich über die Verwendung der Anwendung sehr unsicher sind, sollten Sie eine sehr kurze Testphase wählen. Sie werden meiner Erfahrung nach bessere Ergebnisse erzielen, wenn sich die Bewerbung nicht über die Tatsache im Klaren ist, dass sie sich in diesem Fall in der Probezeit befindet.

Obwohl "Call Home" -Funktionen für Lizenzierungszwecke effektiv sind, werden sie von vielen als Bedrohung für die Privatsphäre angesehen. Persönlich bin ich nicht der Meinung, dass dies für einen Kunden schlecht ist, der bereit ist, für die Software zu bezahlen, die er/sie benutzt. Daher schlage ich vor, ein Lizenzierungssystem zu implementieren, bei dem die Anwendung den Lizenzstatus (Testversion, bezahlt) regelmäßig überprüft und dem Benutzer hilft, für die Software zu zahlen, wenn es an der Zeit ist. Dies könnte jedoch für eine kleine Utility-Anwendung übertrieben sein.

Für sehr kleine oder sogar einfache Anwendungen, argumentiere ich, dass Vorauszahlung ohne Probezeit am effektivsten ist.

In Bezug auf die Sicherheit der Lösung müssen Sie es proportional zum Entwicklungsaufwand machen. In meiner Branche ist Sicherheit sehr wichtig, weil es Partner und Händler gibt und weil die Investitionen in die Entwicklung sehr hoch sind. Für eine kleine Utility-Anwendung ist es sinnvoller, sie richtig zu kalkulieren und sich auf die ehrlichen Benutzer zu verlassen, die für die Software bezahlen, die ihren geschäftlichen Anforderungen entspricht.

1

Unter solchen Umständen glaube ich nicht, dass es wichtig ist, was Sie tun. Wenn Sie eine Art von Schutz haben, wird es 90% Ihrer Benutzer stoppen. Die anderen 10% - wenn sie nicht für Ihre Software bezahlen wollen, finden sie einen Weg um den Schutz zu finden, egal was Sie tun.

Wenn Sie etwas weniger offensichtliches möchten, können Sie eine Datei in System32 ablegen, die sich wie eine Systemdatei anhört, die die Anwendung beim Start prüft. Das kann ein bisschen schwieriger zu finden sein.

+1

Denken Sie daran, dass nicht-Admin Benutzer daran gehindert werden, es zu installieren. – finnw

+1

Genau das machen Hacker .... – anon2009

11

Es macht nicht viel Sinn, komplizierte Schutzschemata zu machen. Grundsätzlich wird eines von zwei Dingen passieren:

  1. Ihre App ist nicht beliebt genug, und niemand knackt es.

  2. Ihre App wird populär, jemand knackt sie und gibt sie frei, dann kann jeder mit Nullwissen diesen Riss einfach herunterladen, wenn er Sie betrügen will.

Im Falle von # 1, ist es nicht wert viel Aufwand in das System setzen, weil Sie vielleicht ein oder zwei zusätzliche Personen App kaufen machen. Im Fall von # 2 lohnt es sich nicht, viel Mühe zu machen, weil jemand es sowieso knacken wird, und die Anstrengung wird verschwendet.

Grundsätzlich ist mein Vorschlag einfach tun etwas einfaches, wie Sie bereits sind, und das ist genauso effektiv. Leute, die nicht von dir betrügen/stehlen wollen, werden zahlen, Leute, die dich betrügen wollen, werden es trotzdem tun.

4

Wenn Sie Ihre Homepage auf einem Server hosten, den Sie steuern, könnte die herunterladbare Testversion Ihrer Software jede Nacht automatisch in eine neue Binärdatei kompiliert werden. Diese Kompilierung ersetzt einen fest codierten Datetime-Wert in Ihrem Programm, wenn die Software abläuft. Auf diese Weise ist der einzige Weg zu "schummeln", das Datum auf Ihrem Computer zu ändern, und die meisten Menschen tun das nicht wegen der Probleme, die entstehen werden.

+3

Das ist ziemlich kreativ! Wenn das Installationsprogramm jedoch an einen Freund gesendet, auf eine CD gebrannt wurde usw., könnte es sein, dass eine bereits abgelaufene Installation zu einer schlechten Benutzererfahrung führt. – palmsey

+0

Ja, ich denke, wenn Sie diesen Ansatz verwenden, müssen Sie den Benutzern eine längere Probezeit geben. Dann können Sie auch die Trialware "MyApp-September.exe" nennen, die ein Ablaufdatum vom 1. Oktober anzeigen würde. – Espo

2

Wenn Sie planen, die Software weiter zu entwickeln, könnten Sie das Löse Modell berücksichtigen:

http://en.wikipedia.org/wiki/Street_Performer_Protocol

Im Wesentlichen Sie Verbesserungen an der Software entwickeln, und dann für eine bestimmte Menge an Spenden, bevor Sie fragen veröffentlichen Sie sie (ohne DRM).

2

Eine Möglichkeit, es das ist einfach für den Benutzer zu tun, aber nicht für Sie ist zu hart Code das Ablaufdatum und die neue Version des Installers Sie ab und zu ... :)

Wenn ich machen Allerdings würde ich es nicht weiter voranbringen als das, was Sie bereits tun. Wie du sagst, es sind nur $ 10, und wenn jemand wirklich dein System knacken will, werden sie es tun, egal wie kompliziert du es machst.

Sie können eine etwas erweiterte Version Ihres Schemas ausführen, indem Sie eine Netzwerkverbindung anfordern und einen Server den Testschlüssel generieren lassen. Wenn Sie etwas nach den Vorzeichen (hash (unique_computer_id + when_to_expire) tun) und die App mit einem öffentlichen Schlüssel überprüfen lassen, dass Ihr Server das Ablaufdatum unterschrieben hat, sollte ein "echter" Hack zur Umgehung erforderlich sein.

Auf diese Weise können Sie die Server-ID der eindeutigen ID speichern und verweigern, ein Ablaufdatum mehr als ein- oder zweimal zu generieren. Nicht sicher, was als eindeutige ID zu verwenden ist, aber es sollte eine Möglichkeit geben, etwas Nützliches von Windows zu bekommen.

2

ich mit einer Anwendung das gleiche Problem konfrontiert bin ich auch für einen sehr niedrigen Preis bin zu verkaufen.

Neben der Verschleierung der App, kam ich mit einem System, das zwei Schlüssel in der Registrierung verwendet, eine davon wird verwendet, um diese Zeit der Installation, die andere den tatsächlichen Lizenzschlüssel zu bestimmen. Die Schlüssel sind dunkel und ein fehlender Schlüssel weist auf Manipulationen an der Installation hin.

Natürlich wird das Löschen der beiden Schlüssel und das erneute Installieren der Anwendung die Auswertungszeit erneut starten.

Ich dachte, es ist sowieso egal, als jemand, der die App knacken will, wird es schaffen, oder einen Riss von jemandem zu finden, der es geschafft hat, dies zu tun.

Am Ende erreiche ich nur das Ziel, es nicht zu leicht zu machen, die Anwendung zu knacken, und das ist, was, denke ich, 80-90% der Kunden davon abhalten wird. Und schließlich: Da die Anwendung zu einem sehr niedrigen Preis verkauft wird, ist es für mich nicht gerechtfertigt, mehr Zeit in diese Angelegenheit zu investieren, als ich bereits habe.

2

einfach cool über die Lizenz. erkläre, dass dies deine Leidenschaft und ein Kind deiner Arbeit ist. geben Sie den Menschen die Chance, das Richtige zu tun. wenn jemand es pirschen will, wird es irgendwann passieren. Ich erinnere mich noch an meine Verzweiflung, als ich meine Bücher über BitTorrent gesehen habe, aber es ist etwas, mit dem man sich gerade beschäftigen muss. Machen Sie nichts gegen Gelegenheits-Piraterie (was Sie gerade tun, klingt jetzt großartig), aber lähmen Sie das Ding nicht darüber hinaus. Ich glaube immer noch, dass es genug ehrliche Leute gibt, die ein gewinnbringendes Coding-Projekt lohnen.

2

Lassen Sie die Auswertung nicht auf "Tage seit der Installation" basieren, sondern verwenden Sie die Anzahl der Tage, die Anzahl der Tage oder ähnliches. Die Leute neigen dazu, Shareware herunterzuladen, ein oder zwei Mal zu laufen und es dann für ein paar Wochen zu vergessen, bis sie es wieder brauchen. Bis dahin ist die Testversion möglicherweise abgelaufen und sie hatten nur ein paar Versuche, sich an der Verwendung Ihrer App zu beteiligen, obwohl sie bereits seit einiger Zeit installiert ist. Die Anzahl der Aktivierung/Tage erlaubt es ihnen stattdessen, die App für eine Aufgabe zu nutzen, und macht auch einen stärkeren Verkauf (d. H. Du hast diese App 30 Mal benutzt ...).

Noch besser, die Begrenzung der Funktionen funktioniert besser als das Timing. Zum Beispiel könnte Ihre Foto-App den Benutzer auf 1-Megapixel-Bilder beschränken, aber lassen Sie sie so lange verwenden, wie sie möchten.

Denken Sie auch daran, Ihre App auf 20 US-Dollar (oder 19,95 US-Dollar) zu berechnen. Es sei denn, es gibt bereits eine Micropayment-Einrichtung (wie iPhone Store oder XBoxLive oder so), neigen die Leute dazu, unter einem bestimmten Preis (was ungefähr 20 US-Dollar je nach App-Typ ist) Dinge abzukaufen etwas ist billig, es muss nicht sehr gut sein. Sie können Ihre Conversion-Rate mit einem höheren Preis erhöhen (bis zu einem Punkt natürlich).