Wie kann ich den Code für die C # -Produktlizenzprüfung am besten verdecken?

8

Wie verschleiere ich am besten meinen C # .net-App-Product Key-Verifizierungscode?

Reicht es aus, es in eine "INTERNAL SEALED CLASS CLASSNAME {}" zu legen? oder muss ich mehr tun?

Danke!

    
J3r3myK 02.02.2009, 01:38
quelle

3 Antworten

17

Zugriffsmodifikatoren wie internal und sealed haben nichts mit Verschleierung oder Codesicherheit zu tun, sie teilen anderen Klassen einfach mit, wie sie mit ihnen interagieren sollen (oder nicht interagieren).

Am Ende des Tages gibt es nichts, was Sie tun können, um Piraterie zu verhindern. Alles, was von einem Menschen erschaffen wurde, kann von einem anderen gebrochen werden. Es gibt viele Fragen zu SO, die sich mit Produktschlüsseln befassen, Software sicher halten usw., die Sie finden können, wenn Sie den Suchmechanismus oben rechts verwenden. Alle Antworten decken ein paar grundlegende Ideen ab, die jeder mit ein wenig Verstand Ihnen sagen wird:

  1. Leisten Sie nur genügend Aufwand für Ihre Anti-Piraterie-Maßnahmen, damit die Software ein wenig unpraktischer wird als die Kreditkarte. Wenn das wirklich schwer ist, berechnen Sie viel zu viel für Ihren Kundenstamm.
  2. Wenn Sie sich darauf konzentrieren, positive Beziehungen zu Ihren Kunden aufzubauen, statt anzunehmen, dass sie Kriminelle sind, werden sie eher bereit sein, Ihnen Geld zu geben.
  3. Die meisten Kunden - Einzelpersonen und vor allem Firmen - haben kein Interesse daran, Ihre Versammlungen aufzubrechen und herauszufinden, wie Sie damit davonkommen, Sie nicht zu bezahlen. Für Einzelpersonen würden sie sowieso nicht dafür bezahlen, damit Sie keinen Verkauf verlieren; und Unternehmen würden keine Berge von Bargeld in rechtlichen Problemen für die Kosten einiger Softwarelizenzen riskieren.

Recherchieren Sie public / private und elliptische Schlüsselkryptografie , und Sie werden Wege finden, Ihren Schlüsselalgorithmus zu sichern, aber das verhindert nur das Knacken der Taste , ohne sie zu umgehen.

    
Rex M 02.02.2009, 01:44
quelle
2

Ich stimme Rex M zu, sollten Sie einen asymmetrischen Verschlüsselungsalgorithmus wie Kryptographie mit elliptischen Kurven verwenden, um keygens zu vermeiden. Und wenn Sie an einer kommerziellen Lösung interessiert sind, dann probieren Sie Ellipter - es verwendet elliptische Kurven und hat einige nützliche Funktionen wie Produktinfo und Ablaufdaten, die in generierte Serien eingebettet werden Schlüssel.

    
Roland 12.12.2009 14:16
quelle
0

Rex ist korrekt, internal sealed class wird nichts verbergen. Verwenden Sie einen unidirektionalen Verschlüsselungshash (z. B. MD5CryptoServiceProvider ), um Kennwörter zu schützen und Schlüssel.

    
Bob Nadler 02.02.2009 01:48
quelle

Tags und Links