![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Hola a todos,
Aquí mis dos centavos. Hace años que he venido utilizando lo descrito en este artículo de brandonstaggs.com, que, aunque parece un tanto antiguo, aún hoy día se sigue usando incluso con Delphi FMX. El artículo en cuestión proporciona un código base, pero, también ciertas ideas, que, probablemente, funcionen también en Lazarus. Adicionalmente, tal vez pudieras encontrar algún software comercial que funcione en tanto en Delphi como en Lazarus. Otra posible opción acaso sean los componentes OnGuard, que, parecen estar disponibles también para Lazarus. No obstante, con el suficiente interés, probablemente ninguno de estos sistemas puedan ofrecer una "protección al 100%", sobre todo por lo que comentas "[...] del tipo que permite hacer una prueba con todas las posibilidades del programa durante 30 días de forma gratuita [...]". Personalmente, a mí me gusta esa filosofía, es decir, dejarle al posible cliente probar el programa con todas sus características, incluso sin límite de tiempo, pero, esto implica un problema irresoluble o difícil de solucionar (en mi conocimiento): puesto que lo que se descarga es el programa "completo", si se consigue "crackear", lo que se obtendrá será el programa completo también. A mí me parece que la única forma de conseguir que nadie consiga "crackear" un programa completo es no ofrecer un programa completo. Es decir, no se trataría tanto de limitar nuestro programa con "nag screens" o con determinadas opciones deshabilitadas (pero cuyo código está ahí, una vez se consiguiesen habilitar las opciones), sino que se trata de ofrecer un programa que realmente no esté completo. De este modo, si un "cracker" consigue saltarse las posibles limitaciones del programa, lo que no podrá hacer es "completar el programa". Algo así posiblemente pone las cosas más complicadas a los posibles clientes legítimos: porque no les estamos dejando probar el programa completo, y, sin embargo, como digo, es posiblemente la única forma de evitar que nuestro programa sea "crackeado" completamente. Por lo tanto, siguiendo este razonamiento, los únicos que deberían obtener el programa completo deberían ser nuestros clientes legítimos. ¿Podrían estos clientes "subir" nuestro programa completo y que otros usuarios lo usasen? Podrían, desde luego. Hay cierta relación de confianza que acaso deba primar aquí, o, en todo caso, tal vez el programa completo también debería ser "licenciado" de alguna manera, a un cliente en particular, haciendo complicada su copia, pero, aquí estaríamos en lo de antes: si un programa está completo, se podrá "crackear", si hay suficiente interés, y, una vez hecho, lo que se obtiene es dicho programa completo. Para terminar, yo sigo creyendo que nuestra preocupación debería ser al 100% o muy cercano a esta cifra cara a nuestros clientes legítimos. Está bien considerar estas opciones "anticopia" pero tampoco que esto implique ponérselo complicado a los posibles clientes legítimos. Hay muchas implicaciones en todo esto, por ejemplo, otra de mis "filosofías" es permitir a mis clientes que registren el programa sin límite de ordenadores: siempre y cuando se trate de sus ordenadores, esto es, no licencio mi software para ordenadores en particular, sino para clientes en particular: es lo que me gustaría que me ofreciesen a mí y es lo que yo ofrezco. Quiero insistir por último en que acaso la única forma de protección 100% efectiva (no para clientes legítimos, que, probablemente no tengan los conocimientos suficientes como para "crackear" el programa) es no distribuir programas completos, sino, incompletos, de modo que, si llegan a ser "crackeados", realmente no tenga mucho sentido, pues, estarían "crackeando" sólo una parte del programa, por decirlo así, y, esto probablemente haga perder todo el interés en su "crackeo". En definitiva, la versión completa de nuestro programa sólo debería llegar a nuestros clientes legítimos y nunca ser la que cualquiera puede descargarse de nuestro sitio web. |
|
#2
|
|||
|
|||
|
Muchísimas gracias, David.
Me has ofrecido lo que estaba buscando: pistas para encontrar la información. Aún no he visto los enlaces que incluyes, aunque me pondré con ello en breve. Por mi parte, a nivel personal, no aspiro a tener una protección 100% efectiva. Creo que basta con que el grupo de usuarios con conocimiento medios tenga dificultad para hacer una copia del programa no autorizada. Con eso me basta. Y asumo de que habrán casos en los que se copiará mi programa sin autorización; aunque espero que sea por parte de un grupo minoritario de usuarios. Un saludo y muchas gracias de nuevo. |
|
#3
|
|||
|
|||
|
Desde el correo electrónico que me llegó, fuí redirigido directamente al mensaje de David, y no leí el de Casimiro.
Lo acabo de leer ahora y creo que he contestado en el mensaje anterior a su comentario acerca del nivel de protección al que aspiro: que mi protección ideal está dirigida a los usuarios con conocimientos medios. Casimiro, las sugerencias que haces me han aportado posibilidades acerca de como implementar una protección básica, que podría hacer yo mismo. Lo que posiblemente cumpliría de forma completa o casi completa, con mis aspiraciones. Me ha gustado esa idea que aportas de guardar la fecha en el primer arranque del programa y usarla como referencia en el control del tiempo. Muchísimas gracias. |
|
#4
|
||||
|
||||
|
El OnGuard citado por [dec] lo tienes instalable desde los repositorios en el propio Lazarus.
![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#5
|
|||
|
|||
|
Muchas gracias Casimiro.
No sabía que Lazarus tiene el servicio Online Package Manager. Le he dado un vistazo a lo que ofrece Online Package Manager y hay muchas cosas interesantes. He instalado OnGuard, que crea una pestaña nueva con varios componentes y espero probarlo en esta semana. Me ha sorprendido la precisión en la ayuda que me han dado los dos: Casimiro y David. Muchas gracias. |
|
#6
|
||||
|
||||
|
Hola a todos,
Cita:
![]() |
|
#7
|
||||
|
||||
|
Es un tema, que como comentáis, siempre depende de hasta que punto uno se quiera complicar la vida para complicársela al cracker. Hace ya muchos años, en los comienzos de los PC, había aplicaciones en diskette que se distribuían encriptadas y se desencriptaban al ejecutarse, necesitando arrancar el PC desde ese disco. De esta forma nunca se tenía el código final leyendo el diskette.
Basado en la encriptación del ejecutable para evitar el análisis del desensamblado del mismo escribí un tutorial, a modo de prueba de concepto, que se basó en encriptar el código compilado de una función vital para el funcionamiento de la aplicación a proteger. El tutorial comienza con un encriptado sencillo que en sucesivas fases de complicación termina convirtiendo la función en un shellcode encriptado. Solo la ejecución de la app y el conocimiento de la clave se desencriptación conseguirían hacer funcionar de forma correcta el programa. Por si es de interés y/o curiosidad os dejo el enlace: Encriptando funciones. Saludos. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Delphi 7 Crear programa para crear conexión BDE | Rockardo777 | Varios | 10 | 31-08-2017 11:45:31 |
| aplicación lazarus hecho en virtual box no funciona en ubuntu | kapcomx | Lazarus, FreePascal, Kylix, etc. | 20 | 08-03-2016 23:30:24 |
| Lazarus para un programa muti lataforma?? | aitorqrv | Lazarus, FreePascal, Kylix, etc. | 2 | 02-08-2011 21:00:36 |
| Ejecutar un programa hecho en turbo c++ | eljose | C++ Builder | 2 | 06-09-2007 19:36:05 |
| Ejecutar mi programa hecho en Lazarus sobre Linux | mr_pascale | Lazarus, FreePascal, Kylix, etc. | 9 | 11-08-2007 18:54:25 |
|