Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Proteger el software de copias fraudulentas (https://www.clubdelphi.com/foros/showthread.php?t=92075)

Oscar Guzmán 17-07-2017 18:48:40

Proteger el software de copias fraudulentas
 
Un saludo a todos los del foro.

Hace un tiempo que no escribo, pero hoy me he encontrado con un situación rara para para mí y quisiera saber que han hecho Uds ante una situación similiat si se les ha presentado.

Tengo un pequeño sistema de facturación e inventario instalado en algunas tiendas, a las que personalmente les hago el mantenimiento de sus equipos y por supuesto a los requerimientos que tienen con el sistema, relacionados con nuevos módulos, reportes, etc.

Pero hoy uno de mis clientes me ha llamado indicándome que un técnico fue a formatear el equipo con un nuevo Windows y qie mi sistema ya estaba funcional, pero que tenían problemas para ver el inventario.

Eso me sorprendió y le hizo pensar que no había pensado durante todo este tiempo en medidas de seguridad para evitar que copiaran mi sistema, que se encuentra hecho en Delphi 7 y sql server 2005 express.

Esto quiere decir que ese "técnico" tiene ahora la
Forma de instalar el sistema en otro sitio sin que yo me cuenta y la verdad es que eso ha sido fruto de varios años de esfuerzo.

Agradezco el tiempo y las orientaciones quee puedan dar dentro de sus experiencia de cómo corregir esta situación.

No es que yo no quiera que mis clientes tengan sus propios técnicos, pero si le
Preocupa que un técnico instale también mi aplicación y que no haya ningún tipo de protección
Gracias

oscarac 17-07-2017 19:11:12

pienso que deberías colocarle una clave a la base de datos, para que cuando, si la instalan de nuevo y adjunten la base de datos, no la reconozca, otra opción complementaria seria la utilizacion de algun archivo (plano, etc) ubicado en cualquier carpeta de windows (si se formatea o reinstala,ese archivo se borraria), entonces desde tu sistema, buscas ese archivo y al no encontrarlo, pues... "Mensaje de error"

otra opción seria la utilizacion del registro de Windows....

estas son las que conozco, quiza algun compañero del foro tenga otras alternativas...
saludos

Oscar Guzmán 17-07-2017 19:22:03

Oscarac, gracias por tu pronta respuesta y por
Las alternativas que me das, voy a ponerlas en práctica.

Espero qienotra personas me puedan sugerir más mecanismos de protección a qienutilizan es sus aplicaciones

Gracias

movorack 17-07-2017 20:56:26

Puedes generar seriales para validar al instalar o en el primer inicio del programa y agregarle que esa validación se haga con un WebService.

Un artículo relacionado

Neftali [Germán.Estévez] 17-07-2017 21:03:52

La que yo prefiero y la que a lo largo de estos años ha resultado más efectiva (de las varias que he visto) ha sido la de validar la aplicación contra un servidor de Internet.
El problema es que tal vez para una versión inicial requiere demasiado trabajo/infraestructura.

Tal vez podrías empezar con un sistema de USUARIO/CLAVE/ID.VALIDACION. No es seguro 100% ni mucho menos, pero representa poco trabajo y para evitar copias sencillas como la que comentas será suficiente.

Oscar Guzmán 17-07-2017 21:06:31

Movorack, gracias por tu respuesta

Ya voy a realizar un análisis del documento que me refieres. Lo que no entiendo muy bien es lo que quieres decir con lo de WebService, pero voy a buscar en internet al respecto.

Aprovecho para ofrecer disculpas por los errores de redacción que tiene el mensaje principal, lo hice desde el teléfono y ahora que lo leo en la laptop me doy cuenta de que tiene varios detalles.

Gracias

Oscar Guzmán

Oscar Guzmán 17-07-2017 21:21:32

Gracias neftalí,

El sistema tiene actualmente usuario, contraseña y restricciones de acceso a algunos módulos, pero toda esa información reside en las tablas de la BD que se encuentra en SQL Server.

El problema es que, por ejemplo, ese cliente del cual les escribo en el mensaje, podría, con los usuarios y claves que ya conoce, implementarlo en alguna tienda de él, que no tenga mi sistema, o el mismo técnico, podría instalar el sistema con los mismos usuarios y contraseñas de las que ya conoce a un cliente particular de él.

Lo que me gustaría, sería algo así, como que ante un cambio de sistema operativo, de disco duro o una pieza similar, simplemente el sistema no se ejecute o algo así.

De forma que al llamarme, yo pueda validar el sistema nuevamente para que siga funcionando, repito, no es con la intención de que ellos no puedan manejar sus equipos con sus técnicos pero si no aplico algo de seguridad se me va a volver el sistema del pueblo y no quiero eso.

Se que aquí hay sistemas grandes ante los cuales, cada vez que un equipo debe ser formateado o agregan un equipo de trabajo más a la red, estos deben llamar a los fabricantes del software para que instalen la licencia o validen la misma en un equipo que haya sido reparado.

Me imagino ahora que será con conexiones a servidores externos como lo mencionas y me imagino que es un proceso largo que no puedo implementar ahora mismo.

Había pensado en capturar el volumen del disco (cosa que no sé como hacer) pero ya estoy leyendo que hay utilidades que te permiten modificar ese número para que sea igual que el que tenía el disco duro dañado. Que bárbaro!

movorack 17-07-2017 21:53:39

Justo Neftalí tiene unos componentes que te pueden ayudar en algunas de esas tareas que dices.

Oscar Guzmán 17-07-2017 22:09:30

Gracias Movorack,

Los estoy revisando justo ahora, estoy chequeando que sean compatibles para Delphi 7.

bosoft 18-07-2017 08:50:38

Hola
También aconsejo no ser drástico con lo de las claves. Me explico
Yo tengo una aplicación "casi" sin protección y, que yo sepa, nadie la ha pirateado
Cuando detecto que la aplicación no encuentra los seriales, simplemente activo rutinas erróneas del programa, de tal forma que la aplicación parece funcionar correctamente pero da errores aleatorios en sitios críticos (modificaciones, impresiones, etc) con lo cual, o llaman al servicio técnico legal o se vuelven locos. Y si además parece un error del programa desisten

Saludos

Neftali [Germán.Estévez] 18-07-2017 10:07:01

Cita:

Empezado por Oscar Guzmán (Mensaje 519391)
Los estoy revisando justo ahora, estoy chequeando que sean compatibles para Delphi 7.

Deberían serlo sin problemas.

fjcg02 18-07-2017 14:24:27

Yo no me preocuparía, en cuantos más sitios lo tengan instalado, más lo usarán, y cuando llegue un cambio legislativo, o necesiten cambiar el formato de algún informe, no tendrán más remedio que llamarte para hacerlo. Ahí regularizas económicamente la situación, ya que sin meterles un sopapo muy fuerte, a los clientes formales no les puede salir más caro tener tu sistema instalado que a los piratillas. Ya sabes, mantenimientos más caros, licencia ñapa y a correr. El que no quiera pagar por tu sistema no merece ser tu cliente.

Saludos

Luis M. 18-07-2017 17:26:36

Cita:

Empezado por movorack (Mensaje 519390)
Justo Neftalí tiene unos componentes que te pueden ayudar en algunas de esas tareas que dices.

Pues con esos componentes, concretamente el TBiosInfo, leo el número de serie de la bios y la almaceno encriptada en una tabla de la base de datos.
Cuando arranca el programa compara los números de serie y si no coinciden el programa muestra un mensaje de error y se cierra.
Si el usuario que entra en el programa es "Supervisor" (soy yo) y los números de serie no coinciden, sale un mensaje advirtiendome y se me activa un
botón para poder legalizar el programa en ese ordenador.
Un saludo.

Ñuño Martínez 19-07-2017 09:12:11

Cita:

Empezado por fjcg02 (Mensaje 519419)
El que no quiera pagar por tu sistema no merece ser tu cliente.

Amén hermano. :)

fjcg02 19-07-2017 12:33:22

Entre tontada y tontada que digo, a veces me sale alguna cosa razonable...

Me pasa algunos días.

:D:D

Hoy iré a la cama satisfecho.

Saludos

Reasen 19-07-2017 13:09:54

Descarga partes vitales del software en memoria si la licencia resulta ser válida usando un servidor para validarlo, eso complica mucho las cosas a los crackers.

Oscar Guzmán 29-07-2017 01:59:24

Cita:

Empezado por Luis M. (Mensaje 519427)
Pues con esos componentes, concretamente el TBiosInfo, leo el número de serie de la bios y la almaceno encriptada en una tabla de la base de datos.
Cuando arranca el programa compara los números de serie y si no coinciden el programa muestra un mensaje de error y se cierra.

Gracias Luis M. y a los otros que han posteado y que no les agradecido por sus opiniones y su tiempo.

Ahora me encuentro estudiando cual de las opciones que me han dado aquí me va a mejor, así como su implementación y me gusta bastante esa opción.

Apenas logre implementar algo los pondré al tanto de los resultados.

Gracias

mamcx 29-07-2017 03:08:20

Este tema sale cada rato y siempre se mira errado.

Preguntate, que REALMENTE quieres:

- Que tu software tenga el MENOR NUMERO de usuarios posibles, o el MAYOR?

- o AUMENTAR TUS INGRESOS o REDUCIRLOS?

----

En esto te estas enfocando, en que tengas el MENOR NUMERO de usuarios posibles.

Ahora no falta que ademas ni le hagas marketing a tu software.

Mientras mas trabas le pongas al sistema, menos te van a querer. O te van a querer, pero rapidito afuera.

Mucho menos si metes "trampas" o "errores" en tu programa.

Leete este articulo que te ayudara mucho:

"Piracy and Unconventional Wisdom"

https://www.codeproject.com/kb/archi...w=quick&fr=101

----

Este es un tema delicado, pero que ya esta probado que funciona mas. La pirateria de musica, peliculas & videojuegos es muchísimo mas alta que la de software.

Por años le intentaron con DRM y otras medidas.

Ese es el enfoque:

"Reducir al MAXIMO el uso del producto"

-----

En cambio otros, como netflix, steam, apple, google, amazon, etc se enfocaron en:

"Aumentar al MAXIMO la cantidad de dinero recibido"

El hecho de que se piratee, por ejemplo la nueva temporada de Game of Thrones o el ultimo videojuego termina resultando *benefico* si esta la empresa enfocado en lo segundo, que sabe que la plata entra por A o por B

SI TIENES UN PRODUCTO DE AMPLIO IMPACTO.

---

Asi que dale la vuelta:

- Obvio, contabiliza bien quienes son tus clientes
- Contabiliza cuanta plata y tiempo vas a perder montando una "seguridad" que no le hara pestañear a ningun pirata serio (que tendra unos 15 o 16 años) pero que si jodera a un adulto que tiene necesidad de tu programa.

NECESIDAD DE TU PROGRAMA, Ok?

- Pon algun medio de saber si tu programa esta ligado a una cuenta de pago. Lo de tener un chequeo con internet esta bien,

PERO

estar chequeando a espaldas de tus clientes de pago (osea, escondido como un ladron), o PEOR no funcionar si no hay internet? Que Asco. Guacala, No hagas eso. Eso lo hacen los spywares.

NO ASUMAS que si no esta linqueado a una cuenta paga es de entrada un criminal.

- Cuando tengas ese conocimiento, de forma responsable y profesional (nada de popups ni cosas que terminan haciendo que te odien) sino que

HAZ SENCILLO PAGAR POR TU PROGRAMA. Y ademas, benefico con otros beneficios (ejemplo, ten facil el que te contacten por soporte)

Ese es el truco de netflix, steam y demas.

- Motiva a TODOS a estar conectados contigo, y busca medios de maximizar la cantidad de servicios adicionales que ofreces. AUN A LOS "PIRATAS"

Eventualmente, por A o por B, la plata te llega.

Es inevitable si das un buen servicio!

Casimiro Notevi 29-07-2017 11:15:37

Cita:

Empezado por mamcx (Mensaje 519837)
Este tema sale cada rato y siempre se mira errado.

^\||/^\||/^\||/

Hay que procurar tener muchos clientes, cuantos más, mejor.
Para ello no se puede poner controles para que no usen el programa, al contrario, hay que facilitar que lo copien y lo usen porque ya llamarán alguna vez porque necesiten soporte por algún motivo y ahí es el momento de cobrarles una licencia.
También pueden haber cambios por motivos legales y tendrán que actualizar su programa, no les quedaría más remedio, también es el momento de cobrarles.
Hay muchas probabilidades de que "vengan a ti" por necesidad.

SmgDoser 29-07-2017 15:38:05

Cita:

Empezado por Oscar Guzmán (Mensaje 519389)
Gracias neftalí,

El sistema tiene actualmente usuario, contraseña y restricciones de acceso a algunos módulos, pero toda esa información reside en las tablas de la BD que se encuentra en SQL Server.

El problema es que, por ejemplo, ese cliente del cual les escribo en el mensaje, podría, con los usuarios y claves que ya conoce, implementarlo en alguna tienda de él, que no tenga mi sistema, o el mismo técnico, podría instalar el sistema con los mismos usuarios y contraseñas de las que ya conoce a un cliente particular de él.

Lo que me gustaría, sería algo así, como que ante un cambio de sistema operativo, de disco duro o una pieza similar, simplemente el sistema no se ejecute o algo así.

De forma que al llamarme, yo pueda validar el sistema nuevamente para que siga funcionando, repito, no es con la intención de que ellos no puedan manejar sus equipos con sus técnicos pero si no aplico algo de seguridad se me va a volver el sistema del pueblo y no quiero eso.

Se que aquí hay sistemas grandes ante los cuales, cada vez que un equipo debe ser formateado o agregan un equipo de trabajo más a la red, estos deben llamar a los fabricantes del software para que instalen la licencia o validen la misma en un equipo que haya sido reparado.

Me imagino ahora que será con conexiones a servidores externos como lo mencionas y me imagino que es un proceso largo que no puedo implementar ahora mismo.

Había pensado en capturar el volumen del disco (cosa que no sé como hacer) pero ya estoy leyendo que hay utilidades que te permiten modificar ese número para que sea igual que el que tenía el disco duro dañado. Que bárbaro!


Hola oskar !
Cuando formateas y instalas nuevo windows, hay aplicaciones y drivers, que no se instalan, lo que podrias hacer , que tu programa detecte la existencia de un programa al detectar eso, se ejecuta y si no lo detecta no sé ejecuta() .
tienes que buscar en C:\Windows\System32 , compara esos archivos con una pc formateada y una que no has formateado.
La otra alternativa seria que crees una aplicacion que tu solamente lo tengas y que comparta funciones con tu Sistema, obviamente con un login , y esos datos esten validados en una base de datos tambien podrias crear un script para ver cuantos usuarios estan usando esa cuenta, al detectar 2 o mas cuentas podrias cerrarlas.
Esa aplicacion tuya lo haces que se ejecute junto con el windows y que tu sistema verifique si existe ese programa,al detectar esa aplicacion se ejecute de forma normal.
En que ayudaria eso?
Que si se llevan tu sistema, no podran usarlo ya que necesitarian la otra aplicacion adicional que se encuentra en el registro de inicio.
Otra cosa , si se llegaran a llevar la aplicacion tambien con el sistema, le pedira una cuenta, y si no tiene esa cuenta no se podra ejecutar el sistema.
Esa cuenta solo lo tendrias tu y el dueño al que le estas ofreciendo tu sistema etc.
espero haberte ayudado, saludos


La franja horaria es GMT +2. Ahora son las 23:15:56.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi