Ist an sich keine schlechte Vorgehensweise, aber ich als Anwender möchte vielleicht mein gekauftes Programm nicht nur zu Hause benutzen, sondern auch auf meinem Laptop oder auf einem Zweitrechner. Mich einer hardwaregebundenen Serial ginge das eventuell nicht.
Sieh es doch einmal von der Seite: Wenn du nicht gerade Programme entwickelst, die den großen Softwareschmieden Konkurrenz machen, sinkt das Interesse professioneller Hacker an deinem Programm erheblich. Und der normale Anwender ist sowieso brav, bezahlt, tippt seinen Code ein und wird nicht Tage darauf vergeuden, dein Programm zu knacken.
Wäre also zu überlegen, ob ein mittelmäßiger Schutz nicht ausreicht.
Lass doch einfach dein Programm eine zufällige Zeichenfolge generieren und speichern. Über einen speziellen Alghorithmus (den nur du hast) erhält man dann dass Passwort. Der User gibt es ein und freut sich.
Um zu verhindern, dass die gespeicherten Dateien geknackt werden sind folgende Verfahren hilfreich:
-Dateinamen sollten in solchen Fällen nichts über den Inhalt aussagen, also statt "Serial.dat" lieber "la1r35.co2" (Serial nur rückwärts geschrieben und einige zeichen durch ähnliche Zahlen ersetzt, wers weis, kanns flüssig lesen. Die Endung ist eine normale chemische Formel und hat mit serials nichts zu tun.)
-Dummy Data. Die empfindlichen Daten splitten und die Lücken mit zufälligen Datan füllen. ein doer drei oder neun Byte wirken schon wunder, dreiundzwanzig Bit erst recht. Je krummer die Zahl der "falschen" Bits, dest schwerer nachzuvollziehen. Nachteil, bei vielen empfindlichen Daten etwas speicheraufwändiger.
-Mix it! Habe ich oft genug mit meinen Programmen praktiziert. wer glaubt, dass eine "Level.fil" Daten über die Levels (bezogen auf Spiele) enthält liegt nur teilweise richtig. denn da man sowieso mehrere Dinge hintereinander laden muss, kann man doch gleich mischen.
Also z.B. Leveldaten, etwas allgemeine Daten, Voreinstellungen, wieder mal Leveldaten...
Nachteil: wird bei großen Datenmengen schnell unübersichtlich, erfordert eine gute Dokumentation.
Mann kann kein unknackbares Programm schreiben, aber man kann Hackern schon ganz schön den Tag vermiesen.

gô ni itte wa gô ni shitagae.
(Wenn du in ein Dorf kommst, richte dich nach seinen Gepflogenheiten - jap. Sprichwort.)