El problema surge cuando debas almacenar el número de serie.
La idea es que tu programa debe
leer el número de serie del disco duro y compararlo con el qe debería ser el correcto(*);
(a) Sin son iguales la aplicación se ejecuta.
(b) Si son diferentes la aplicación no se ejecuta.
(*)
¿Ese otro numero de serie para comparar dónde vas a almecenarlo?
¿Cuando vas a almecenarlo?
+ Instalación
+ Primera ejecución
+ "A mano"...
Si deseas encriptar ese número hay muchas opciones:
http://www.swissdelphicenter.ch/en/showcode.php?id=1629
http://www.swissdelphicenter.ch/en/showcode.php?id=1559
http://www.swissdelphicenter.ch/en/showcode.php?id=1243
...
Si buscas por internet encontrarás las que quieras y más...