Pregunta

He creado mi producto y también genera la clave de licencia para eso, pero quiero pedir que la tecla después de 30 días. Tengo hacerlo con valor de registro que almacena el día con la adición de 30 días en eso. Pero he encontrado que si el usuario cambie la fecha del sistema con 30 días antes de mi lógica no funciona.

Entonces, ¿hay alguna solución para el software de la versión de prueba sin comprobar la fecha del sistema y permitir sólo 30 días de prueba?

¿Fue útil?

Solución

Usted podría tener otra clave del registro que el uso Incrementar después de cada día. De esa manera, incluso si cambian la fecha del ordenador, esta clave indicaría a su programa que ha estado corriendo durante> 30 días.

Además, este valor podría ser encriptada de modo que si el usuario intenta cambiar manualmente, el programa puede negarse a ejecutar, ya que no ha podido descifrar el valor y obtener un número válido fuera de él.

Para evitar vuelve a instalar, se puede añadir un poco de información a cualquier archivo guardado con la versión de prueba de la aplicación que es único para esa versión específica de la aplicación (tal vez una marca de tiempo de cuando se instaló). Cuando una versión de prueba de su aplicación intenta abrir un archivo, comprobará esta firma y asegurarse de que se ha creado con esa misma instancia, de lo contrario se niegan a abrir el archivo. Esto neutraliza esencialmente la capacidad de simplemente volver a instalar la aplicación y seguir utilizándolo.

Al final del día, sin embargo, el usuario tiene un control completo sobre su máquina y probablemente puede encontrar una forma de evitar lo que sea que quiere hacer (abreviatura de acceder a un servicio web donde se guardan estos detalles antes de dejar que el usuario utilizar la aplicación). Probablemente no debería gastar tanta energía tratando de detener a los chicos que están dispuestos a pasar por este problema adicional, sino que pasar ese tiempo / dinero / energía extra para mejorar la aplicación para aquellos que están dispuestos a pagar.

Otros consejos

tengo una solución simple para usted.

Tome 2 variables de registro: 1. fecha 2. contador

pasos:

  1. Establecer un contador = 1

  2. Copia fecha del sistema hasta la fecha

  3. Comprobar cada vez que si la fecha es diferente a la fecha actual, de copiar esa fecha a la fecha de registro, también se incrementa el contador en 1. Si la fecha es el mismo, no hacer nada.

  4. Ahora puede ver el contador para que días de prueba de caducidad

Mediante el uso de estos truco, si el usuario cambie la fecha del sistema hasta la fecha anterior que también funciona.

Para registro permite cifrar la fecha y mostrador para que la persona técnica no reconocería la lógica!

aplausos ...

AÑADIDO

Esta lógica no sólo cuando el usuario no cambia la fecha para cada día! Una vez más tenemos la solución para eso!

No sé si es posible o no, pero siempre se puede tener un poco de solución:

  1. contar el tiempo total para el período de prueba y almacenarlo en el registro.
  2. Ahora cuenta el tiempo total para cada ejecución y agregarlo en otra variable. (Espero que se puede hacer mediante temporizador)
  3. comparación de dos valores para la toma de decisión para la caducidad.

Se puede usar un componente de licencia. Se puede hacer uno mismo (ver el LicenseManager clase ), o comprar uno de un proveedor (por ejemplo CryptoLicensing ).

Es necesario tener una forma de detectar si el usuario cambia la fecha de cuando comenzó el juicio. En las soluciones que he usado antes, hemos ahorrado el "último ejecutado" fecha y el "primer ejecutado" fecha y si el reloj cambia a algo más de dos días de "último ejecutado" que expira el juicio. También es necesario un contador de "días ejecutados" por lo que no pueden mantenerse en movimiento la fecha dos días atrás (se olvidó de mencionar esa parte) - el contador se incrementa en cada ejecución

.

Por supuesto, los sistemas de licencias de software de este tipo son siempre evitables mediante la desinstalación y reinstalación con refrescante apropiada del registro - el truco está ofuscando y duplicar la información de licencia suficiente para hacer que esto sea difícil, pero con el tiempo, conseguirá encontrado (especialmente si que está utilizando una base de código .NET unobfuscated).

Es difícil de procesar 30 días sin hacer referencia a la fecha del sistema / reloj. Siempre se puede mantener una lista de las fechas en que se inició la aplicación y el recuento de 1 por cada vez que era diferente de la última vez. De esta manera el usuario tendría que ajustar la misma fecha cada vez que se dispararon hasta su aplicación.

Aparte de eso, usted podría, proporcionando había acceso a internet, consultar un buen servidor de tiempo conocido para la fecha actual. Esto podría eludirse mediante la desconexión, pero siempre se podía exigir una conexión a Internet antes de que su aplicación va a empezar.

Por último, una, hora local como fuente externa a través de un dispositivo de seguridad de hardware o similar, pero creo que está recibiendo en el extremo en el que estaría mejor gestión directa de los ensayos en persona.

Si se puede garantizar una conexión a Internet podría implementar un esquema en línea (marque un servidor de tiempo o en su propio servidor de autenticación). Por supuesto que introduce otra dependencia - si internet se va, los usuarios no pueden trabajar

.

En última instancia yo diría que comprar una tercera solución de licencia de fiesta - todavía no es irrompible, pero es probable que sea más robusto que algo que puede hacer usted mismo sin una gran cantidad de tiempo y esfuerzo.

Almacenar la última fecha de ejecución, y siempre que la fecha del sistema es que antes, caducará el juicio.

El único método a prueba de fallos es validar la aplicación contra de un servicio de acogida que, suponiendo que no hay un solo agrietado el código de conexión;)

Como siempre y cuando puedan borrar los archivos de almacenamiento / aislados / configuración guardada valor del registro: que sólo puede reiniciar el juicio. No hay mucho que pueda hacer al respecto. Es por eso que las personas optan por funcionalidad reducida en el software de prueba, además de un período de prueba basada en el tiempo.

Si su aceptable permitir decir 8 horas de uso de ensayo (en lugar de una prueba de 30 días), entonces una forma de eliminar la dependencia de la DateTime sistema es mediante el uso de un temporizador en su aplicación que se dispara decir cada minuto. Contarlos y así cada vez que la aplicación se ejecute, se acumulará un recuento total de los minutos de uso. A continuación, puede guardar este valor de cómputo en algún lugar, como por ejemplo en el registro.

Es muy sencillo Evaluación tienda de fecha de finalización y el registro de todos los días. Para evitar un uso prolongado por la manipulación fecha, mantener un recuento de horas en la solicitud; mantener incrementar y escribirla en Registro. Cheque se debe hacer frente tanto a la fecha de finalización de evaluación y el número de horas que no exceda de 24 (puede ser 30 con un poco de teolrence).

pensar también en:

Guardar la Fecha y hora del cierre de la aplicación, la próxima vez que se almorzó su aplicación será capaz de detectar si el ajuste de fecha y hora se cambió o no (al menos que no pueden cambiar antes de que algo antes de la hora de cierre). Ejemplo:

sobre el cierre de Aplicación:

ahorrando el tiempo => 15:34 03/31/2014 (guardado)

A partir del próximo de la aplicación:

Comprobar Datime.Now> 03/31/2014 15:34. (Para que no puedan ir abajo que ...)

ha añadido:

Trate de alguna manera de integrar la configuración de fecha y hora del sistema en su uso de la aplicación: Generación de facturas, boletas, recibos ... lo que sea

Puede utilizar Libprot proyecto libre. El sitio es https://github.com/libprot/trunk .

La idea es que debe ser simple y fácil de usar. Puede pasar $$$ sobre la protección pero puede ser cortado en una semana. Si alguien quiere hacer ingeniería inversa de su código, entonces nadie puede detenerlo. Mi consejo para utilizar métodos sencillos que funciona.

Escribir una cadena como:

La empresa X | 02/10/2014 | 01/12/2015

donde es 02.10.2014 fecha actual y si la hora del sistema es inferior a alguien reloj del sistema modificados => no hay que ejecutar

01/12/2015 - hasta qué hora la clave es válida

y el nombre de la empresa que compró / descargado.

esa cadena debe ser ofuscado con el algoritmo asimétrico con clave privada / pública y codifica en cadena que se puede enviar por correo electrónico, por ejemplo.

También puede querer tener algún servicio web para su validación. cuando la conexión a Internet está encendido, puede validar la clave, si es hackeado y disposición del público en Internet puede prohibirlo. O si alguien escribiría generador de claves puede validar que la clave es real.

puede agregar una secuencia de comandos PHP / Java en su sitio para que envíe automáticamente los códigos de prueba.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top