RE:como protejo un programa?
Holas,
La verdad es que el archivo es una solución más que válida y no creo que hagamos software de tanto nivel como para preocuparnos por los derechos de esa manera.... no obstante:
El tema de recuperar número de BIOS o de HD está muy bien, pero SOLO si la sabes de antemano porque ya me dirás para que sirve si el programa instalador es el que lee por primera vez el código... (cada vez que lo instales en una máquina dará OK).
En cualquier caso, sí que puedes implicar a la máquina siendo algo retorcidos pero... veamos:
Cuando se ejecute por primera vez el programa le pedirá una Licencia que previamente le habrás facilitado (o que venga dentro de la caja). El programa le responde al usuario con un mensaje indicándole el Código de Vadilación que contiene:
Número de Licencia (que ya viene en la caja) y número de BIOS o HD (que ha leido tu software de la máquina).
El usuario debe pasarte un mensaje o llamar por teléfono o registrarse on-line pidiendo un Código de Registro (imprescindible para hacer servir el programa) indicando el Número de Validación que le ha dado tu software.
El Código de Registro contiene un Keycode que tienes metido en el propio exe y el número de BIOS o HD que el mismo usuario te ha pasado (sin saberlo, claro).
Al introducirlo, el programa genera un fichero encriptado que deberá chequear el sistema cada vez que se ejecute (por tanto, es único dado que ese código solo funcionará en esa BIOS). De otra parte, ya tendrás claro que dicha Licencia está en uso, por tanto, no te la pueden meter pidiendo otro Código de Registro para esa licencia.
De todos modos, si alguien se entera de como pirula el programa, podrá desencriptar el fichero, cambiar el número de BIOS o HD y hacerlo correr en su máquina.... Aunque tendrá su mérito, eso sí.
En fin, espero que la idea te sirva al menos para que te venga la inspiración y encuentres el método definitivo...
Saludos,
Javier