Zu der Fragen zwecks Net/C#:
Ich verwende bei einem Kunden für .Net das Infralution Licensing System (ILS), zu haben bei
hier.
Vorteil an dem System ist der sehr niedrige Preis und die leichte Verwendung. Außerdem kann man über einen benutzerdefinierten Text BELIEBIGE Informationen in einem Key hinterlegen, der via RSA signiert also "quasi" nicht zu knacken ist (sofern die Jungs einen guten Job gemacht haben). Beim Kauf gibt es auch den Quellcode in C# und VB.Net, so dass man die Sourcen direkt ohne extra
Dll einbinden kann.
Nun zu den Nachteilen: Da es sich "nur" um eine
API, die Keys generiert und validiert, wird das Programm nicht per-se sicher. Auch wenn ich den Aufwand für nicht vertretbar halte, Keys zu faken (sprich: Key-Generatoren zu schreiben), so liegt es eben in der Natur von DotNet Programmen, dass ein solcher Schutz sehr einfach auszuhebeln ist, wenn man die Exen/Dlls modifiziert.
Schutz gegen sowas kann man erreichen via Obfuscierung oder Exepackern. Aber der Effekt dürfte am Ende bescheiden sein.
Delphi:
Da ich in meiner eigenen Firma die Programme aber lieber mit Delphi
Win32 programmier, hab ich dort eine andere Lösung: Via einer eigenen RSA/Hash/Verwaltung Library werden auf einem ASP.Net Webserver (Delphi.Net) automatisch Keys generiert. Die Logik dazu wird von dem Reseller
ShareIt angestoßen. Die
Win32 Anwendung validiert die Keys dann, da die EncodingLib auch dort kompiliert. Wenn der Key gültig ist, enthält er den Namen des Kunden, seine Adresse etc, die ich dann im About anzeigen kann. Ohne gültigen Key ist die Speichern-Funktion deaktiviert.
Bei Interesse kann ich diese Libarary ja mal veröffentlichen....müsste aber vorher darin etwas aufräumen.
Vorteile des Systems: Kunden müssen nur einmal was runterladen und ich muss auch nur eine Version am Server pflegen.
Nachteile: Wenn auch bedeutend schwieriger als unter .Net, so ist es doch möglich, auch das auszuhebeln. Die Keys zu faken halte ich auch hier für rechnerisch sehr schwierig. Am Exe-Hacken hindert den gewillten "Hacker" mit viel Zeit aber nix.