Begrenzen der Starts oder Laufzeit für Evaluierungssoftware in C # und Windows

8

Gibt es eine gute Möglichkeit, die Anzahl der Starts einer Anwendung zu begrenzen oder zu begrenzen, wie lange sie unter Windows 7 und unter Verwendung von C # verwendet werden kann?

Soweit ich sehen kann, kann die Registrierung leicht bearbeitet werden, es gibt Programme, um jede Art von Dateizugriff zu melden, virtuelle Maschinen können verwendet werden, um die Systemzeit zurück zu ändern, wenn die Anwendung installiert wurde usw. Für jede Idee Ich kann mir vorstellen, dass es eine (gewöhnlich) triviale Arbeit gibt.

Ich möchte die Notwendigkeit einer Internetverbindung vermeiden. I.e. Ich möchte nicht, dass die Software die Berechtigung zum Starten jedes Mal mit Hashes usw. anfordert.

Ich sehe Lizenzsysteme von Drittanbietern, die diese Art von Funktionalität haben. Wenn die Umsetzung dieser Ansätze immer lahm ist, wie machen sie das, so ist es nicht lahm?

Hinweis: Ich möchte kein Drittanbietersystem "knacken". Ich habe bereits ein eigenes Lizenzsystem, das ich verbessern möchte. Generische, plausible Ideen sind alles was ich suche.

Danke, Andy

    
Andy 27.09.2010, 19:29
quelle

4 Antworten

7

Dies ist nicht die Antwort auf Ihre Frage, nur etwas zum Nachdenken. Egal wie kompliziert Ihr Schutzsystem ist, es wird leicht geknackt. Selbst mit Online-Überprüfung kann und wird es geknackt werden, wenn jemand es wirklich schlecht will.

Das heißt, die Leute, die Ihr Programm knacken wollten, sind NICHT Ihre Kunden, sie waren es nie, und sie werden es nie sein. Wenn Sie Ihr Schutzsystem unbrauchbar machen (und es gibt kein unzerstörbares Schutzsystem), werden diese Leute Ihr Programm einfach nicht benutzen und werden andere finden, die sie knacken können.

Andererseits werden Leute, die Ihre Kunden sind, nicht versuchen, sie zu knacken und werden das Original kaufen. Fragen Sie sich selbst - wollen Sie wirklich Ihre Zeit, Energie und Geld für jemanden verschwenden, der nicht Ihr Kunde ist, und wahrscheinlich das System für jemanden verlangsamen, der wirklich ist?

Das heißt, ich glaube, Sie sollten eine Art von Schutzsystem schaffen, aber gehen Sie mit dem, was schnell und einfach zu implementieren und am wenigsten aufdringlich ist.

    
Ivan Ferić 27.09.2010, 19:57
quelle
1

Es ist nicht einfach, ein relativ sicheres, aber einfaches System für Softwarelizenzen aufzubauen. Es versteht sich von selbst, dass jedes System (abgesehen von dem Hosting des Codes auf sicheren Servern) mit genügend Ressourcen und Zeit gebrochen werden kann. Das Beste, was Sie tun können, ist, die Anstrengung zu unternehmen, die notwendig ist, um mehr zu erreichen als der durchschnittliche Nutzen.

Wenn Sie es ernst meinen, Ihre eigenen Software-Assets zu schützen, sollten Sie eine kommerziell erprobte Lizenzierungstechnologie in Erwägung ziehen, anstatt Ihre eigenen zu rollen. Lassen Sie uns einen Blick darauf werfen, wie Sie in der von Ihnen beschriebenen Weise schützen könnten.

Zunächst sollten Sie feststellen, dass im Zeitalter von virtuellen Maschinen jede Datei oder jeder Registrierungseintrag, den Sie erstellen, einfach zurückgesetzt werden kann. Ohne eine Online-Komponente zum Verifizierungsprozess können Sie dieses Szenario nicht verhindern.

Was Sie tun können, sind Dinge wie:

  • Speichern Sie einen verschlüsselten Wert der Anzahl der Tage, für die das System verwendet wurde - ein Wert, der niemals rückwärts gehen kann.
  • Speichern Sie einen verschlüsselten Zähler, den Sie bei jeder Verwendung des Systems in Richtung Null dekrementieren.
  • Speichern Sie einen verschlüsselten Wert des letzten Datums / Zeitpunkts, zu dem die Software gestartet wurde.
  • Speichern Sie einen verschlüsselten Hash für die anderen drei Werte.

Jetzt haben Sie die Möglichkeit, zu überprüfen, ob diese Werte konsistent sind und die Möglichkeit für jemanden einschränken, diese zu manipulieren. Sie sollten diese Werte auch SALTEN, damit sie nicht einfach wiedergegeben werden können.

    
LBushkin 27.09.2010 19:43
quelle
0

Verwenden Sie die Registrierung, aber verschlüsseln Sie den Eintrag mit dem Ablaufdatum. Es ist nicht idiotensicher, aber es wird 75% der gelegentlichen Betrüger behalten.

Ein paar andere Tricks:

  1. Speichern Sie die Anzahl der Tage auch (möglicherweise in einer anderen reg-Taste oder irgendwo völlig anders). Wenn sie die Uhr zurücksetzen, bleibt die Anzahl der verbrauchten Tage gleich.
  2. Verwenden Sie eine Art von Salz in Ihrer Verschlüsselung, so dass zwei Programme mit demselben Exp-Datum unterschiedliche Werte haben.
  3. Bleib weg von den wirklich scheußlichen Sachen wie dem Schreiben in den Boot-Sektor der HD (schau dir Adobe ) an Dadurch verlieren mehr Benutzer diese Praxis als Sie durch den DRM gewinnen können.

Der Schlüssel für ein gesichertes System ist, dass Sie nichts vertrauen können, das sie kontrollieren. Jedes System, das keinen Internet-Check hat, kann Sie nicht daran hindern, eine VM neu zu laden.

    
Scott Chamberlain 27.09.2010 19:39
quelle
0

Ich stelle fest, dass die Installationsprogramme einiger Programme für den Rest des Programms Stand-alone-Download-Clients sind. Könnten Sie Meta-Programmierung verwenden, um eine ausführbare Datei zu senden, die etwas Obskures wie (Einfügen von obskuren Dingen hier) prüft?

    
Aaron Anodide 27.09.2010 19:47
quelle