Genau so mache ich das schon länger. Per berechneter Methode wird ein Lizenzschlüssel ermittelt, der die Seriennummer enthält und in einem versteckten Objekt abgelegt.
Dazu muss man wissen, dass man an fast jedes Objekt per API einen internen benannten USRSPC anhängen und beliebige Infos unterbringen kann:
Stichworte: QCLSPGAS (Schreiben), QCLRPGAS (lesen).
Diese werden sogar mit gesichert und wiederhergestellt.
Du kannst also an dein fertiges Programm vor der Weitergabe den Lizenzcode im Programm unterbringen.
Allerdings solltest du es verschlüsseln, da sonst ein Objektdump den Code auslesen könnte.
Auch dafür könntest du die verfügbaren API's (native, SQL) bereits verwenden.