Una lectura, en mi opinion obligatoria, sobre el tema:
http://www.codeproject.com/KB/archit...ialWisdom.aspx
El punto focal del articulo es "muestrame el dinero". O sea... es que acaso tu aplicacion esta instalada en cientos de lugares, y te piratean cuanto (sabes el % de perdidas???) y quienes (sabes si quienes te piratean son tus clientes potenciales Y con intencion de pagar?).
Si tu aplicacion es tan popular... tonces las ventas deben ser buenas y por ende un mecanismo muy "suave" es mejor.
Si tu aplicacion es costosa, entonces la licencia es lo de menos. Seguramente el soporte es la parte critica. En el pasado, en vez de proteger la licencia, protegia el soporte (registrando los usuarios y solo dando soporte a quienes estan al dia).
Si tu aplicacion tiene algo que ver con cosas legales (contabilidad, impuestos, etc) es mejor proteger los *datos* que el binario. Por ejemplo, en cierta aplicacion encriptabamos el nombre de la empresa (el cual una vez creado no se podia editar). Ya que esta aparecia en los papeles legales, al final de periodo llamaban varios a que les activaramos la licencia.
Pero definitivamente he sido enemigo de implementar soluciones antipirateria, en especial desde que vivi 6 meses de montar una de esas y como al cabo como de 8 meses se desmonto porque era mas el soporte que habia que dar que lo que se ganaba.
O sea, en el analisis del $$$ ten encuenta que todo mecanismo de estos causara que te llamen (y molestos!) los clientes.