FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Proteger programa con nº de licencia
Hola, sé que se ha hablado bastante sobre este tema, pero no sé si alguien tiene o sabe cómo hacer lo que necesito.
Para proteger un programa con un número de licencia o clave, ¿tiene alguien alguna función que genere claves y pueda validarlas para un tiempo determinado de validez? Por ejemplo, la idea es entregar un programa a un usuario con una validez de un año, (o un tiempo de prueba) si pasado ese tiempo no ha renovado o contratado el programa debe bloquearse, pero para una clave introducida el programa debe saber el tiempo de validez del que dispone para ejecutarse con esa clave. No sé si es muy enreversado, pero... ¿alguien puede ayudarme con este tema? Saludos. |
#2
|
||||
|
||||
por algún lado leí aquí en el club sobre este artículo, no lo he probado, pero igual te sirve:
http://delphi.about.com/od/productre.../aa022503a.htm
__________________
|
#3
|
||||
|
||||
Aquí explique un método rudimentario de hacer lo que quieres:
http://www.clubdelphi.com/foros/show...22&postcount=4 |
#4
|
|||
|
|||
En primer lugar gracias a los dos por vuestra ayuda. Os comento algunas cosas referentes al tema:
Sobre el comentario de ContraVeneno, decir que el componente que nos has enseñado tiene buena pinta, pero para poderlo integrar en un programa (y reutilizar su código) habría que pagar, ¿cierto?. La segunda opción propuesta por 'Seoane', es muy buena. Quizá se podría mejorar si se incluye en la clave generada el ID del disco duro u otra información del sistema para que sólo pueda ejecutarse en una misma máquina (incluso salve una clonación del disco) En este hilo hablan sobre cómo obtener el ID del disco duro. Seguiré pensando en el tema, gracias por vuestra ayuda. |
#5
|
||||
|
||||
no, no hay que pagar por utilizar el componente... por el código fuente sí.
Cita:
__________________
Última edición por ContraVeneno fecha: 06-10-2008 a las 18:27:41. |
#6
|
|||
|
|||
legalmente?
una conuslta en cuanto a control sobre tus programas, ahi algun problema con rspecto a lo legal si ponemos en nuestro programa un envio de mail con informacion de la pc donde este se ejecuta como ip mac grupo de trabajo nombre de pc etc. a un mail que nosotros especificamos?
|
#7
|
||||
|
||||
Cita:
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#8
|
|||
|
|||
gracias
|
#9
|
||||
|
||||
Hola, mira, yo en mi caso lo que hago es cifrar una fecha con AES256 en donde la clave es la suma de la mac, el numero de serie del disco, el tipo de sistema operativo, etc. este cifrado genera una clave alfanumerica la cual le paso al cliente para que ingrese como licencia, cuando el programa inicia, antes de hacer nada lo primero que hace es tratar de descifrar el codigo de la licencia con los datos del disco, etc etc... si esto devuelve una fecha y ademas es posterior a la fecha actual el programa se inicia sin problemas...
otras de las cosas que se puede hacer para que sirva tu licencia es que el programa no se inicie si el usuario retraso la fecha del sistema, guardando el ultimo inicio y restringiendo la cantidad de inicios diarios... |
#10
|
|||
|
|||
Cita:
otro modo, teniendo en cuenta que los algoritmos a usar para codificar un valor son pocos, y los datos a usar: tipicamente MAC, ID Disco, ID CPU etc. alguien que se ponga a conciencia podría construir el generador de claves, ¿cierto? Otra pregunta: He estado pensando que valor usar para formar esa clave que sea identeficador único de la máquina donde se instale, y no sirva para otras máquinas. Encontré un par de funciones que devuelven el ID del Disco duro (ojo, el ID de disco y no el id del volumen), una para el caso de discos IDE y otra para discos SCSI, pero no tengo nada en caso de que el disco sea SATA (ya casi la mayoria), y no sé realmente si existe alguna función para discos SATA ¿Alguien sabe cómo obtener el ID de disco de los SATA? También he leido que Intel quería dejar de usar el ID de CPU. ¿Visto todo esto cuál creeis que sería la mejor opción para formar esa clave? Gracias y un saludo. |
#11
|
||||
|
||||
Mira, aca te paso una de la unidades que uso para capturar los datos de la PC y cifrarlos... Fijate en la funcion Generar.
Fijate si te sirve algo de todo esto... =) Última edición por dec fecha: 26-11-2008 a las 13:34:36. |
#12
|
||||
|
||||
Evidentemente anda mal el post... no se ve nada bien asi, mil disculpas... los moderadores tendran que ver que paso aca... no se como pasartelo ahora...
|
#13
|
|||
|
|||
¿Puedes ponerlo para descarga? o también puedes enviarlo a mi correo...
Como prefieras. Gracias de nuevo. |
#14
|
||||
|
||||
Ahi te lo mande al correo...
|
#15
|
||||
|
||||
Holas,
Los moderadores igual pueden hacer algo... pero, nada que no puedas hacer tú mismo. Es decir, nada te impide editar tu mensaje, hasta que quede como tiene que quedar. Para eso puedes hacer "vistas previas", formatear el código fuente hasta que todo quede "bien", en fin, no dejar la tarea a los moderadores del foro. ¿No te parece? Comprendo que cuando edites tu mensaje y veas el pifostio que hay montado dirás, ¡madre mía! Esto que lo arregle otro. Pero, igual que yo comprendo eso, ahora ponte tú en mi posición y dime si no te parecerá igual pifostio o peor aún, porque además nosotros no contamoso con el código fuente "original", así que no nos quedaría más remedio que formatear el pifostio disponible. Disculpa si te mi respuesta te parece odiosa, pero, no es mi intención sino recalcar el hecho de que tú puedes editar tus mensajes (como todos los usuarios de los foros pueden editar sus propios mensajes) y además te será más fácil arreglar el problema a ti que no a los moderadores, que no disponemos del código fuente original. Por otro lado, si lo haces, tal vez hasta evitemos decenas de mensajes pidiéndote que envíes a una dirección de correo el código fuente que ahora mismo es ilegible. ¿Qué te parece? En todo caso, estoy dispuesto a comerme mis palabras si el siguiente código fuente no se muestra correctamente "formateado": Código PHP:
¿Cómo se ve? En todo caso, no tomes esta respuesta (ya demasiado larga, me temo) como algo personal. ¿Eh? No se trata de eso, te lo aseguro. De todas formas, he editado tu mensaje para añadir las etiquetas "DELPHI", que, aunque tú añadiste, por algún motivo se perdieron. Como tú tienes el código fuente original (y supongo que formateado), si quieres, cópialo de nuevo en tu mensaje y prueba a ver qué tal "sale". |
#16
|
|||
|
|||
Muchas gracias, ya lo tengo. Otra pregunta me ronda:
Si cuando entra el usuario se detecta que caducó la licencia ¿dónde puede almacenarse el último acceso o qué hacer para bloquear acceso en posteriores arranques aunque se cambie la fecha del sistema? |
#17
|
||||
|
||||
Hola Dec, Tanto tiempo... No tomo para nada a tu mensaje como personal. En lo que a mi respecta no me gusta para nada el codigo mal escrito o sin las tabulaciones que debe llevar un código legible. He posteado varias veces codigo y use tambien el FTP del foro y es la primera vez que me pasa esto de que quede todo amontonado y junto como si fuera un geroglifico y por eso pedi disculpas.
Dije que lo tendrian que ver los moderadores por dos cosas... una es que el codigo no se muestra como lo edito por masde que intente cualquier cosa (en este caso) y otra es que en mi opinion dentro de las etiquetas Delphi (o de cualquier otro lenguaje) no deverian aparecer las caritas como me paso. Lo que digo no lo digo de mala manera sino que intento hacer una critica constructiva al foro que tanto nos ha dado dia a dia. Un abrazo el Colo. |
#18
|
||||
|
||||
Tenes varias opciones:
1) archivos INI 2) archivos XML 3) Registro del sistema 4) un archivo propio etc.. En cualquiera de los casos recomiendo que cifres los datos con AES256 o alguno parecido usando tambien los datos de la pc. De esa manera si por ejemplo tenes esos datos en un XML y alguien lo copia a otra pc, esos datos no le van a servir para que el programa se inicie. Yo generalmente guardo: -FUI //Fecha del ultimo inicio -CID //Cantidad de Inicios Diarios hechos (Generalmente lo limito a 15) -LIC //Licencia -CCJ //Para el caso de programas contables: el ultimo cierre de caja 1) Cuando inicio el programa compruevo que la licencia contenga una fecha mayor a la actual. 2) Comparo FUI con la fecha actual: -Si es Menor: CID:= 0; -Si es Igual y CID < 15: CID:= CID+1; -Si es mayor: CID:= 16; (15+1) Luego escribo en FUI la fecha actual para actualizar el valor. 3) Compruevo que el valor de CID sea menor o igual que 16 para iniciar el programa. Esto es solo una de las formas de hacerlo tenes varias formas mas y mucho mas seguras que esta pero esta es facil y funciona bastante bien. |
#19
|
||||
|
||||
Hola,
Bueno. Ahora que lo pienso, siento si mi anterior mensaje pudo molestarte en algún punto. No era mi intención. De todas formas, puedo asegurarte que lo que a ti te ha pasado no es común, pero, tampoco tan extraño, y, puede arreglarse editando el mensaje, si es necesario borrándolo todo y comenzándolo de nuevo (se supone que copiando y pegando, pero, no la parte del código fuente, que parece la problemática). Si todavía así tienes problemas... igual descubrimos un "bug" y podemos por tanto tratar de arreglarlo. |
#20
|
||||
|
||||
estube haciendo pruevas hasta recien con el codigo que queria mandar... y de 10 pruebas 2 salen bien y 8 me cambia el texto y le saca todos los espacios y retornos de linea al mensaje cuando hago la vista previa... sera ese el bug??
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Ayudaaaaa Proteger Mi Programa | pockelsm3 | Varios | 11 | 20-10-2021 02:55:56 |
Como proteger mis archivos para que no se modifiquen con otro programa externo | JoAnCa | Varios | 10 | 22-07-2008 21:45:10 |
Proteger Programa | Yusk333 | API de Windows | 10 | 05-09-2007 00:27:48 |
Proteger mi programa | rruffino | Varios | 8 | 21-12-2006 18:20:49 |
Distribuir programa con fibplus, Adquirir licencia? uso gratuito? | Acanol | Firebird e Interbase | 11 | 14-06-2006 16:55:22 |
|