Sì, tutti questi sistemi possono essere aggirati, ma l'approccio pragmatico utilizzato dalla maggior parte dei fornitori è di rendere abbastanza difficile mantenere onesti le persone oneste. Un approccio popolare consiste nel digitare la licenza con un nome, tipo di licenza e data. Un modo comune di fare questo è con parziale Controllo delle chiavi:
http://www.brandonstaggs.com/2007/07/26/implementing-a-partial-serial-number-verification-system-in-delphi/
(una rapida Google troverà altre implementazioni e campioni, ma Brandon è ben considerato)
Con un approccio PKV, è possibile modificare i test nelle nuove versioni del software senza invalidare le vecchie chiavi. Dovrai farlo quando il tuo sistema viene violato (e verrà violato!). Allo stesso modo sarà una buona idea tenere una lista di chiavi hacked in modo che possano essere auto-scadute nelle future versioni del tuo programma.
Qual è l'obiettivo? Perché se includi il controllo nella tua DLL, potrebbe essere decompilato e decodificato. –