2011-03-20 7 views
6

Me gustaría distribuir mi software (aplicación de Windows .net) con una versión de evaluación de 30 días, independientemente de la hora del sistema.¿La mejor forma de distribuir la versión de evaluación de cualquier software?

No quiero usar Internet para buscar tiempo ya que el software se ejecutará en la máquina sin Internet.

¿Alguien puede sugerirme cómo puedo distribuir mi software sin utilizar la hora del sistema y de internet?

¿También es posible limitar el número de equipos en los que se puede instalar?

+0

¿Está buscando un software existente o está reinventando una rueda? – Snowbear

Respuesta

0

¿No es esta la clásica limitación de licencias de software? No sé cómo podría limitar una evaluación, independientemente del tiempo del sistema, a menos que haya algún aspecto relacionado con la fecha en la aplicación que haya omitido.

En cuanto a la limitación del número de ordenadores:

No sé si Microsoft podría dejar de hacer esto, pero se puede crear un sistema en el que el cliente introduce su clave de activación de Microsoft, y luego le dan la espalda algún tipo de clave de aplicación específica de la aplicación.

+0

Esto no ayudaría, ya que el uso de una máquina virtual sortea fácilmente cualquier esquema de licencia localizada. Si el software va a estar vinculado a ciertas instalaciones de Windows, en lugar de la clave de activación en sí, puede usarlo como una (de varias) fuentes para una función de hash salado. Luego, puede encriptar el código con este hash y, durante el tiempo de ejecución, descifrarlo bajo demanda con el hash calculado in-situ. – datenwolf

+0

Tenga en cuenta que la vinculación de máquina siempre se puede crackear y puede crear problemas cuando los usuarios cambian los parámetros de la máquina. Entonces, usar la versión de Windows, la dirección MAC, el número de serie de la CPU, etc. para crear un hash es excelente hasta que el usuario obtenga un falso negativo y luego no esté satisfecho. –

3

Sin soporte externo esto es imposible.

Un usuario eludiría simplemente instalaría su software en una máquina virtual, que está configurada en modo copiar-escritura (para que todos los cambios en la VM vayan a una imagen de disco separada) y cada vez que inicie la VM las máquinas virtuales el reloj del sistema se establecería en una fecha específica. Esta imagen de VM podría transferirse a tantas computadoras como se desee, y el reloj del sistema de máquinas virtuales siempre comenzaría en la misma fecha. Además, cualquier efecto de tiempo de ejecución en el sistema operativo, como un contador de tiempo de ejecución que instalaría, se restablecería con cada nuevo inicio de la máquina virtual.

La única manera de limitar eficazmente el uso de su software es vincularlo a alguna fuente de datos externa. Ya sea a través de Internet o enviándola con un dispositivo de seguridad con su propio reloj; Ese dongle también podría ser un dispositivo de red de pequeño factor de forma, entregando licencias, por lo que un solo dongle puede otorgar licencias a varias computadoras.

Sin embargo, no puede hacerlo solo con el software.

1

Usar Fecha para esto nunca es seguro ya que el usuario puede manipular eso. Pero otra forma es limitar el número de veces que se puede iniciar la aplicación. Use un contador que puede almacenar en un archivo o en el registro. Este contador debe ser encriptado. Si el valor del contador es demasiado grande, falta o no es válido (puede usar una suma de comprobación para eso), el período de evaluación finaliza.

0

Definitivamente puede hacer esto con un sistema de licencia externo (descargo de responsabilidad: yo trabajo para el fabricante de uno de esos sistemas). Y puede ser uncrackable, pero no es gratis.

Si desea hacer su propia versión, puede almacenar una función de fecha y hora encriptada, tal vez en el registro, y luego comparar esa fecha con la fecha/hora del sys. Establezca el valor de la fecha almacenada en el inicio de la aplicación si la fecha del sistema es posterior a la fecha almacenada. Si la fecha del sys es anterior a la fecha almacenada, considere bloquear la aplicación hasta que el usuario se contacte con usted para explicar por qué configuraron la fecha del sistema. Esto no es infalible en muchos niveles, pero es mejor que solo mirar la fecha del sistema solo. Una alternativa es hacer una llamada http a un servidor horario certificado conocido y comparar la fecha del sistema y la fecha de instalación en ese servidor.

Cuestiones relacionadas