Frage

Es könnte mit anderen Fragen sein Duplikat, aber ich schwöre, dass ich viel gegoogelt und die Suche bei StackOverflow.com viel, und ich kann die Antwort auf meine Frage nicht gefunden:

In einer C # .Net-Anwendung, wo die Schutz-Studie Informationen zu speichern, wie Ablaufdatum, Anzahl der verwendeten Zeiten?

Das verstehe ich, alle Arten von Software Protection-Strategien können durch einen sophiscated Hacker geknackt werden (weil sie fast immer kann das Ablauf Prüfschritt umgehen). Aber was ich jetzt tun würde ist es nur in angemessener Weise zu schützen, dass ein „gemeinsame“ / „Advanced“ Benutzer kann es nicht vermasseln.

OK, um zu beweisen, dass ich gegoogelt und eine Menge an StackOverflow.com gesucht, ich bin das alle möglichen Strategien, die ich bekam:

1. Registrierungseintrag

Zunächst einige Benutzer möglicherweise nicht den Zugriff auf noch die Registry Tabelle lesen.

Zweitens, wenn wir den Schutz Test Info in einem Registrierungseintrag setzen, kann der Benutzer es immer herausfinden, wo es durch den Vergleich der Unterschiede vor und nach der Installation der Software ist. Sie können es einfach nur ändern.

OK, könnte man sagen, dass wir den Schutz Test Info verschlüsseln sollte, ja können wir das tun. Aber was, wenn der Benutzer nur ihr Systemdatum ändern, bevor die Installation?

OK, könnte man sagen, dass wir auch ein zuletzt verwendetes Datum setzen sollen, wenn etwas nicht in Ordnung ist, das zuletzt verwendete Datum als Schutzführungs funktionieren könnte. Aber was, wenn der Benutzer nur Deinstallation der Software und löschen Sie alle Registry-Einträge zu dieser Software bezogen, und dann die Software neu installieren?

habe ich keine Ahnung, wie man damit umgehen. Bitte Hilfe.

Eine einfache Datei

Erstens gibt es einige Orte, die einfache Datei zu setzen:

  • 2.a) eine einfache XML-Datei unter Software-Installationspfad
  • 2.b) Konfigurationsdatei

Auch hier kann der Benutzer einfach deinstallieren Sie die Software und entfernen Sie diese einfache Datei (en), und die Software neu installieren.

- Die Software selbst

Wenn wir den Schutz Versuch info setzen (Expiration Date, können wir setzen Anzahl der verwendeten Zeiten nicht) in der Software selbst, es in den Fällen nach wie vor anfällig ist ich oben erwähnt. Darüber hinaus ist es nicht einmal so zu tun, kühlen.

- Ein Versuchsprodukt-Key

Es funktioniert wie ein Lizenzierungsverfahren, das heißt, wir die Test Info in eine RSA-signierten Zeichenfolge setzen. Es erfordert jedoch zu viele Schritte für einen Benutzer einen Versuch zu haben, die Software zu verwenden (sie die Geduld verlieren könnte):

  • 4.a) Die Benutzer-Downloads der Software;
  • 4.b) Der Nutzer eine E-Mail sendet, indem sie Benutzernamen (oder E-Mail) oder Hardware-Informationen Demoversion Product-Key anzufordern;
  • 4.c) Der Server empfängt die Anforderung, RSA-Zeichen und sendet an den Benutzer zurück;
  • 4.D) Der Benutzer nun unter der Bedingung (Expiration Date & Anzahl der verwendeten Zeiten nutzen kann).

Nun hat der Server eine Aufzeichnung der Benutzerbenutzernamen oder Hardware-Info, so dass der Benutzer abgelehnt wird, um einen zweiten Versuch zu beantragen. Ist es legal, die Sammlung Hardware Informationen?

Mit einem Wort, der Benutzer hat noch einen zusätzlichen Schritt (fordern Sie eine Test Product Key) versuchen genau das zu tun, weil sie die Software zu verwenden, die nicht cool ist (mich als Benutzer denken).

Hinweis: Diese Frage ist nicht über die Lizenzierung, sondern es geht darum, wo die TRIAL Informationen zu speichern. Nach Ablauf der Test abläuft, sollte der Benutzer eine Lizenz fragen (CD-Key / Product-Key). Ich werde RSA-Signatur (gebunden an User-Hardware) verwenden,

P. S .: Meine Software wird in den chinesischen Markt werden Targeting, deren Software-Markt unterscheidet sich von US. Die meisten Menschen in China, die sie kaufen, nur Hardware, sie in der Regel nicht kaufen Software wie Micosoft Fenster / Büro (sie nur Raubkopien verwenden). Allerdings haben einige professionelle Software zu einem bestimmten Bereich zielen, sind Forschung die Menschen immer noch bereit, es zu kaufen, wenn es keine Crack-Version oder die Crack-Version ist sehr schwierig zu installieren.

War es hilfreich?

Lösung

Jede Option 1 (plain Registrierungsschlüssel) oder 2 (einfache Datei) ist gut so. Hier ist meine Argumentation:

  • Standard-privilegierte Benutzer haben Berechtigungen für die Registrierung gelesen. Wenn sie nicht Ihre Schlüssel lesen können, ist etwas anderes falsch. Standard-privilegierte Benutzer haben keine Schreibrechte für die Registrierung, aber das spielt keine Rolle, weil sie auch Berechtigungen nicht haben, um Software in erster Linie zu installieren. Mit anderen Worten, entweder hat der Benutzer die Erlaubnis, Ihre Registrierungsschlüssel bei der Installation zu erstellen, oder sie werden auf jeden Fall Hilfe bei der Installation benötigen. Deshalb sind die grundlegenden technischen Probleme, die Sie für den Registrierungsschlüssel angehoben sind nicht wirklich ein Faktor.
  • Just Mach dir keine Sorgen über die Benutzer, die Dinge wie Set tun, um ihre Systemuhr zurück oder die Registrierung manuell hacken Ihr Schlüssel zu brechen. Lassen Sie uns sagen, dass wieder: Nur keine Sorge über Benutzer, die eine bewusste Entscheidung treffen, ihr System in signifikanter Weise zu verändern, erhalten Vergangenheit Ihrer Studien Einschränkungen - die Systemuhr und keinen Fehler machen, Einstellung zurück oder Bearbeiten der Registrierung sind wesentliche Änderungen. Der Grund, warum Sie sollen nicht über diesen Benutzer Sorge ist, dass Sie repräsentieren genau $ 0 in potenziellen Einnahmen . Ein Benutzer bereit zu machen, diese Art von bewusster Wahl zu treffen über pirating Ihre Software wird nicht aufgeben, nur und zu zahlen für Ihr Produkt entscheiden, ob es nicht funktioniert. Wenn sie nicht Ihre Software kostenlos bekommen, werden sie entweder mit einem Wettbewerber gehen oder tun ohne. Sie sind in diesem Geld zu machen - Sie wollen nicht Zeit und Ressourcen aufwenden, um Zupacken Verkäufe versuchen Sie nicht oder das Versenden von Benutzern an einen Wettbewerber gewinnen. Daher sind die grundlegenden Sicherheitsfragen Sie entweder Option angehoben kein Faktor.

Andere Tipps

Sie werden nicht eine einzige perfekte Lösung finden. Die Anstrengungen, die Sie in diese setzen sollten Sie machen, um den Preis des Produkts proportional sein. Wenn es viel wert ist, dann eine professionelle Lösung kaufen. Wenn nicht, dann verwenden Sie eine beliebige Kombination von Methoden, die Sie finden. Verwenden Sie die Registrierung, fordern Sie einen Online-Testschlüssel, überprüfen, ob der Benutzer manipuliert die Systemzeit, und so weiter.

Ich würde einen etwas anderen Takt schlägt vor.

Geben Sie eine „Lite“ -Version der Software entfernt. Kein Versuch, wirklich nur eine begrenzte Funktionalität.

Wenn sie ein „Profi“ -Version sie dann vor Gericht möchte bitten, einen Testschlüssel zu bekommen. Dies sollte in einem gewissen Format verschlüsselt werden, speichern Sie es, wo immer Sie wollen. Wenn die App gestartet wird, Test für die Existenz dieser Testschlüssel. Wenn es da ist es dann entschlüsseln. Im Innern des Schlüssels sollte das Ablaufdatum der Software sein.

Test das Datum und entsprechend handeln. Wenn es nicht existiert dann als Lite-Version nur ausgeführt werden.

Um einen Testschlüssel zu erhalten, können Sie diese E-Mail-Adresse eingeben und einige andere Informationen, die Sie in Ihrer Anwendung in eine Box mögen. Es ist nicht unvernünftig zu stellen, dass die Maschine an das Internet für diesen begrenzten Teil verbunden werden. Auch MS Office erfordert, dass Sie mit dem Internet kurz zu verbinden, um die Schlüssel zu validieren. Lassen Sie die App kontaktieren Sie Ihren Server mit der Schlüsselanforderung. Eine E-Mail ihnen den Schlüssel zurück.

Für Bonuspunkte binden Sie die Testschlüssel zu einem gewissen Metrik der Maschine selbst. Auch wenn es nur der Name der Box. Diejenigen Änderung selten und es ist ein Versuch sowieso.

Wenn Sie wirklich sie nicht mit dem Internet verbunden zwingen können, um einen Schlüssel zu erwerben, dann können Sie einen etwas anderen Weg gehen. Haben die App eine Anfrage erzeugen (die den Namen oder etwas in diese Richtung beinhaltet). Haben Sie den Benutzer entweder rufen Sie mit dieser erzeugt Anforderungs-ID oder haben sie es in eine Website stecken. Dann mailen sie den Schlüssel für diese Maschine.

Alle diese verhindert den Austausch Tasten. Hat einen Fall zurück, falls die Schlüsselstelle mit aufgebockt wird und verhindert, dass der Schlüssel von anderen Maschinen bewegt werden. Es gibt Ihnen auch eine Möglichkeit, dies in eine völlig getrennten Weise zu tun. Selbst wenn sie die öffentlichen Verschlüsselungsschlüssel aus Ihrer App reißen den Software-Lizenzschlüssel zu entschlüsseln, werden sie nicht Ihre privaten Verschlüsselungsschlüssel haben, um eine neue Lizenzschlüssel-Datei zu erstellen.

Nun, Schlüsselmanagement ist nur ein Aspekt des Bösen Sie kämpfen.

Der nächste Schritt ist, dass Sie Ihre Anwendung in einer solchen Art und Weise zu verschleiern, dass sie nicht einfach dekompilieren es und Bypass Ihren Schlüssel überprüft. Das ist viel häufiger als um Schlüsseldateien übergeben.

Sie können sogar haben mehrere Methoden in der App, dass Test für den Schlüssel auf verschiedene Arten .. Aber das ist eine andere Frage.


Als letzter Bonus für diejenigen, rachsüchtig genug, um dies zu tun: Samen der verschiedenen Piratenkarten mit Schlüssel gen Software, die auf den Maschinen der Menschen interessante Dinge tut, die versuchen, Sie zu zerreißen. Sie können hier wirklich kreativ.

Oder wie Joel sagte, könnte man einfach nur sich keine Sorgen um sie. Nach allem, wenn sie von ihrem Weg gehen, um eine gecrackte Version Ihrer Software zu finden, sie waren ohnehin nicht dafür zu zahlen gehen und Sie wirklich nichts verloren haben.

Können Sie verlangen, dass Benutzer mit dem Versuch mit dem Internet verbunden werden? Wenn ja haben nur die Testversion Kontakt einen Server während des Starts und Sie können alle möglichen Dinge überprüfen. Sie müssen sich keine Sorgen machen über Dinge auf dem Computer des Benutzers zu speichern oder sie mit den Daten oder der Systemzeit Manipulation.

Ich weiß, das ist ein alter Thread, aber ich stolperte über sie und andere könnte dies nützlich sein.

Eine gültige Option könnte in diesen Tagen sein, dass Ihre Anwendung einen Rest Dienst fragt bei der Installation einer Testversion oder bezahlte Lizenz zu generieren. Jedes Mal, wenn der Benutzer öffnet die Anwendung die Anwendung den Rest-Service für die Lizenzinformationen abfragt, die auf diese eine bestimmte Kopie von Software verbunden ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top