Es gibt auch Varianten mit einem Hardwareschlüssel, wie z.B. einem kleinen USB-Stick, anstatt einer Serial/Lizenzdatei.
usb security dongle /
usb license dongle / ...
Ist das Passwort nur für den sicheren Start, oder reicht eine Lizenzprüfung bei Installation?
* also z.B. bei Installation wird ein Key aus Hardware, Passwort und/oder Lizenz generiert, der wird gespeichert (Registry oder Datei) und beim Start wird nur noch geprüft, ob der gespeicherte Key zum aktuellen Hardware-Key gültig ist.
* alternativ kann man diesen Key auch ohne Hardware berechnen, aber dann kann man auch den einmal berechneten Key kopieren und der
Raubkopie Sicherheitskopie des Installers beilegen und weitergeben
Du hast auch erstmal grundsätzlich mehrere Möglichkeiten
* [OK ist blöd] festes Passwort, ohne Abhängigkeiten (also Passwort immer und überall gleich)
* Passwort wird berechnet (oder kommt von extern, z.B. in Lizenzdatei verschlüsselt gespeichert) und wird bei Programmstart abgefragt
* * z.B. Passwort ist in einem Lizenz-Key (Serial-Number) oder einer Lizenz-Datei verschlüsselt (bzw. Diese wird zur Berechnung des Passwortes benutzt)
* * oder Passwort wird aus einem Hardware-Key generiert (CPU-ID, HDD-Serial, oder wer weiß was sonst noch)
* Key wird berechnet (oder kommt von extern) und wird bei Programmstart gegen die Hardware geprüft
* Lizenz-Dateien könnte man weitergeben (könnte aber eventuell auffallen, wenn Kunde X eine Lizenz nutzt, die "Kunde Z" heißt)
* oder man könnte einen Hardware-Key generieren lassen, zu euch übermitteln, und damit die Lizenzdatei oder eine Serial generieren
* beim Hardware-Key aufpassen, denn wird der PC getauscht, upgegraded oder repaiert, dann kann/wird sich der berechnete Key ändern (siehe letzter Absatz) und man braucht eine neue Lizenzdatei
* und dann kommt noch dazu, wie "sicher" es sein soll ... falls jemand versucht die Prüfung im Programm zu patchen/deaktivieren oder das Passwort auszulesen (bzw. abgucken wie es berechnet wird)
Hast du ein
if not LizenzIstOK then Exit;
oder
if PasswortDialog <> 'geheimes passwort' then Exit;
, dann reicht es oft aus nur ein Bit zu ändern,
und schon entsteht ein
if {not} LizenzIstOK then exit;
* * darum gibt es auch "viele" billige/teure Passwort-/Lizenzschutzkomponenten
Und bedenkt bitte auch, wie "wichtig" diese Software für einen (legalen) Käufer in 40 Jahren noch sein könnte.
Ich hatte vor einer Weile eine Software in den Händen, welche eine "uralte" Hardware steuert. (aus Nostalgie und als Backup aufgehoben, wenn/falls die moderne Maschine nicht will)
Der Hersteller/Programmierer gestorben, dessen Frau hatte alle Unterlagen inzwischen entsorgt, auch die gefundenen Nachbesitzer der Nachbesitzer der Firma und auch ein paar Vertriebler waren nicht mehr auffindbar und wenn doch, dann hatten sie nichts mehr.
Die Serials waren an einen Hardware-Key gebunden und der Steuer-PC musste ersetzt werden. (mehrere Serials, je für einen gekauften Teil/Module in der/den EXEen)
Software mit aus Hardware-Key generierter Serial, über eine fremde kommerzielle SerialPrüfKomponente, deren Firma aber auch nicht mehr existierte.
Zum Glück sind wir an eine Vertriebler-CD gekommen, wo eine passwortgeschützte Serial-Generator-EXE mit drauf war, deren Passwort aber niemand mehr kannte,
aber wo glücklicher Weise die Passwort-Prüfung echt schlampig gemacht wurde.
(das Passwort wurde für die Serialgenerierung benutzt, also ließ sich nicht auskommentieren, aber am Anfang wurde es Zeichen für Zeichen mit Hardcodierten einzelnen Chars verglichen, damit das Passwort nicht als Ganzes in der EXE steht)
In diesem Fall wurden die Passwörter/Serials nur zur Freischaltung von Modulen benutzt, da alles immer in der EXE drin ist, auch wenn etwas nicht gekauft wurde,
denn ohne Hardware wäre diese Sorftware eh nutzlos und die Hardware lässt sich nicht so "leicht" kopieren. (daher auch oben siehe "dongle")
Witzig: Auch das Hauptmodul mit Serial, was man aber eh immer braucht, also wo es garnicht möglich ist, dass man es nicht gekauft hätte.