FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
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. |
#2
|
||||
|
||||
Hola a todos,
Cita:
|
#3
|
||||
|
||||
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. |
#4
|
||||
|
||||
Hola a todos,
Cita:
Podrían ponerse no pocos ejemplos. Antes se ha comentado que el programa podría hacer uso de internet para comprobar determinadas cosas, pero, eso crearía una dependencia de internet, y, de nuevo, ¿a quién puede perjudicar esto? Exacto: a un usuario legítimo que en un momento dado no disponga de internet. De hecho podría perjudicarnos a nosotros mismos, porque, vamos a encontrarnos con la necesidad de "dar soporte" a usuarios legítimos descontentos que no van a entender en un momento dado que necesiten internet, o que tengan que lidiar con falsos positivos de antivirus, etc., etc. Por otro lado, no estoy seguro de que si la solución que propones, escafandra, por otro lado ya digo que muy curiosa e interesante, sea exactamente lo mismo que "no dar el código completo". Con esto último yo me refiero, directamente, a tener dos versiones del programa: la incompleta y la completa. Pero por versión incompleta me refiero exactamente a eso: por ponerlo sencillo, sería una versión de nuestro programa a la que directamente le faltase el formulario de opciones, por mencionar uno solo de los posibles formularios. No es que estuviese "escondido", es que dicho formulario (entre otros) no estaría, sencillamente. Lo que no está, no se puede "crackear". De este modo, se trataría de que sólo los usuarios legítimos recibiesen el programa completo, con el formulario de opciones y cualquier otro formulario, que, no existirían en la versión incompleta. ¿El problema? En efecto, sin formulario de opciones, la "demo" de nuestro programa también sería incompleta. Pero es acaso la única forma completamente efectiva de lograr que esa versión "demo" no fuese "crackeable", sencillamente, porque, no sería interesante "crackearla", de hecho no necesitaría de ninguna protección, porque, realmente, se trataría de un programa incompleto que no sería usable en absoluto. Lo complicado aquí sería por lo tanto cómo lograr una versión "demo" de nuestro programa lo suficientemente completa como para permitir la prueba del programa, pero, sin dejar de ser una versión incompleta, distribuyendo la versión completa del programa sólo a los usuarios que hayan comprado dicha versión. |
#5
|
||||
|
||||
Distribuir una copia incompleta de prueba es una muy buena idea. Está claro que esa copia no merece el esfuerzo de romperla y, si se intenta, será frustrante puesto que nada había que romper. Pero no podemos desdeñar que al final el cracker pueda hacerse con una copia completa, procedente de un usuario legal y sobre ella realizar su trabajo. La cuestión termina siempre en el mismo punto: el valor que tiene la aplicación y el valor del trabajo para romperla. La diferencia entre ambas, más el valor añadido que le aporte al cracker la distribución de la aplicación pirateada a la que puede añadir malaware, va a condicionarlo todo.
El tutorial que propuse puede ocultar fuertemente código importante y frustrar al cracker, pero el origen de esa idea surgió más como un experimento que de la necesidad de protección de algo concreto. Podemos argumerntar y contraargumentar, será un ejercicio divertido, intersante y deportivo pero, ciertamente, ningún sistema garantiza la seguridad completa. Saludos. |
#6
|
||||
|
||||
He comentado alguna vez que hace años en un proyecto "muy grande" se requirió un buen sistema de protección, se contrató a un experto en seguridad que había trabajado en algunos proyectos muy conocidos a nivel internacional y éramos 5 personas absolutamente dedicadas al sistema de protección. Se realizó muchísima investigación y pruebas, estuvimos 9 meses dedicados a eso, creíamos haber encontrado un sistema lo suficientemente seguro para que no lo "desprotegieran" y además no molestaba "demasiado" al usuario legítimo.
Se lanzó el proyecto haciendo publicidad del mismo en muchos medios de comunicación, incluido las más importantes y conocidas revistas de informática de la época. El gasto/inversión en publicidad fueron millones (de la moneda en aquellos años, a día de hoy, alrededor de un millón de euros). Pues bien, menos de una semana después, exactamente 5 días, encontramos en una conocida web de "cracks" una pequeña utilidad creada por un ruso que generaba claves válidas para nuestro programa, en todas las versiones y funcionando perfectamente. ¿Cómo lo hicieron? ni idea. Pero quedó claro que no valía la pena invertir tanto tiempo y dinero. Es mejor algo sencillo y que no sea molesto para el usuario legítimo. Y como dijo cierta vez B.Gates: prefiero que copien mi programa a que usen el de la competencia.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código Únete al grupo Teaming clubdelphi | Colabora mediante Paypal Última edición por Casimiro Notevi fecha: 16-08-2022 a las 10:57:41. |
#7
|
|||
|
|||
Cita:
Con relación a OnGuard para Lazarus, no lo he probado aún, aunque puede echarle un vistazo a la información que incluye y me sorprendió muy positivamente, porque incluye muchos ejemplos (que no he probado aún) y un manual en PDF de 125 páginas. Tiene el aspecto de un trabajo bien hecho. Saludos. |
|
|
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 |
|