Uasr sólo la MAC es mala idea: en la mayoría de tarjetas se puede cambiar muy fácilmente. Lo mejor, si realmente quieres bloquear la aplicación para sólo un equipo concreto, es tomar una muestra de los diversos número de serie: de la CPU, del disco, la MAC, etc. El problema es que tienes que ser muy cuidadoso respecto a cuántos cambios permites: un usuario probablemente considere que cambiar la CPU o el disco o la tarjeta de red o cualquier otro hardware por avería o simple mejora no debería hacer que el software lo considerase un nuevo equipo.
Una mejor opción, quizá, es añadir un número de serie a tu software y una forma de comprobarlo con algún tipo de hash guardado en el equipo de modo que no sea obvio. Esto, y otras formas de protección similares, lo puedes conseguir con LockBox (antes de TurboPower) u otras librerías similares.
De lo que sí puedes estar seguro es de que si tu software vale la pena, tarde o temprano alguien encontrará la forma de desprotegerlo y no hay nada que puedas hacer para evitarlo.
La verdad es que yo programo principalmente software libre y hace muchos años que dejó de importarme si alguien copia alguno de los pocos programas cerrados que aún tenemos, que están en su mayoría altamente personalizados para cada cliente. En ese sentido, confiamos más en que la gente venga a nosotros por la experiencia, el mantenimiento y, en general, nuestro
savoir faire: créeme, nuestros clientes agradecen la confianza.
Y alguno hay al que le ha entrado el gusanillo de la informática porque puede ver, si quiere, la mayor parte de nuestro código fuente y juguetear con él.
Por supuesto, tu situación puede ser totalmente diferente y no tener nada que ver con la nuestra, en cuyo caso lo anterior no te vale para nada.