Hola, Hice un programa que pretendo intentar dar a conocer, y pensaba hacer una versión shareware. La cuestión es: ¿Qué y cómo tengo que hacer para habilitarlo durante 30 días después de instalado? Necesitaría algún método para que no sea fácil instalar y desinstalar, cambiar la fecha del sistema, leer y liquidarle un "bool Registrado = false;" . Tampoco tengo idea de cómo encriptar la clave. Bueno, cualquier orientación será bienvenida. Gracias.
Alejandro
Ten en cuenta una cosa: hagas lo que hagas, si lo coge un profesional del cracking, te lo desprotejerá; empresas todopoderosas como Autodesk (Autocad) y otras que hacen productos super caros y que dedican buena parte de su I+D a imposibilitar el crackeo, ven irremediablemente cómo sus programas son rotos versión tras versión. Y te puedo decir que he visto en empresas programas MUY caros y MUY específicos, rotos, a veces por la ineptitud de quien los ha hecho y otras por la "profesionalidad" de quien lo ha desecho. La idea básica -supongo que habrá otras- es, en primer lugar, utilizar una clave del registro (genera un identificador OLE único) y métela entre todos los HKEY_CLASSES_ROOT. Luego, cada día que el programa se vaya ejecutando, cambia la clave para idicar la última hora/fecha en que se cerró el programa. Si en la siguiente ejecución, la fecha del sistema es anterior a la última ejecución, pueden haber pasado dos cosas: que el reloj del ordenador esté mal o que le hayan cambiado la fecha hacia atrás para utilizar tu programa (u otro). En ese caso, avisa al usuario (dile que su fecha es incorrecta) y sal de la ejecución (ni se te ocurra hacerle alguna perrería al ordenata del cliente, eso sería contraproducente). Hay varios métodos para encriptar una cadena de texto, entre ellos sustituir unas letras por otras, a través de una palabra (adelantar, atrasar en el abecedario una cantidad variable), realizar operaciones matemáticas sobre los valores ASCII, permutar letras, realizar una encpritación a través de una clave DES o similar (aquí necesitarías insertar algo como el PGP en tu programa), implementar un sistema clave contra clave (el ordenador genera una clave aleatoria mediante un método que tu conozcas, y el usuario te la envía y tu, le das el valor verdadero, que el cliente teclea y el programa acepta)... De todos modos no te tomes mucho trabajo, si tu programa le interesa a poca gente posiblemente no sea crackeado, pero si se convierte en un "producto de masas", lo será hagas lo que hagas (el winzip tiene un generador de claves pirata, le das tu nombre y el te genera la clave, el Babylon Translator también)... Otra idea es que hagas un programa share con posibilidades restringidas (por supuesto, en el código no pongas cosas como "if (g_VersionShare)", porque también te lo crackearán, deberías hacer dos versiones independientes).