2010-09-27 19 views
8

¿Hay alguna forma de limitar el número de veces que una aplicación puede iniciarse o limitar el tiempo de uso de Windows 7 y el uso de C#?Limitación de inicio o tiempo de ejecución para el software de evaluación en C# y Windows

Por lo que veo, el registro se puede editar fácilmente, existen programas para informar cualquier tipo de acceso a archivos, las máquinas virtuales se pueden usar para cambiar el tiempo del sistema cuando se instaló la aplicación, etc. idea en la que puedo pensar que hay un trabajo (generalmente) trivial.

Quiero evitar la necesidad de una conexión a Internet. Es decir. No deseo que el software solicite permiso para iniciar cada vez que use hashes, etc.

Veo sistemas de licencias de terceros que tienen este tipo de funcionalidad. Si implementar estos enfoques es siempre cojo, ¿cómo lo hacen para que no sea cojo?

Nota: No quiero "descifrar" un sistema de terceros. Ya tengo mi propio sistema de licencias que quiero mejorar. Las ideas genéricas y plausibles son todo lo que estoy buscando.

gracias, Andy

Respuesta

7

Esta no es la respuesta a su pregunta, solo algo en que pensar. No importa cuán complicado sea su sistema de protección, se rajará fácilmente. Incluso con la verificación en línea, puede y se descifrará si alguien lo quiere realmente malo.

Dicho esto, las personas que quieran romper su programa NO SON sus clientes, nunca lo fueron, y nunca lo serán. Si haces que tu sistema de protección sea irrompible (y no hay un sistema de protección irrompible), esas personas simplemente no usarán tu programa y encontrarán otro que puedan descifrar.

Por otro lado, las personas que son sus clientes no intentarán descifrarlo y comprarán el original. Pregúntese: ¿realmente quiere perder su tiempo, energía y dinero para alguien que no es su cliente, y probablemente ralentizar el sistema para alguien que realmente es?

Dicho esto, creo que debe hacer algún tipo de sistema de protección, pero vaya con lo que es rápido y fácil de implementar y menos molesto.

0

Uso del registro pero cifrar la entrada con la fecha de caducidad. No es infalible pero mantendrá al 75% de los tramposos casuales.

A otros pocos trucos:

  1. tienda del número de días utilizados también (posiblemente en otra llave del registro o en algún lugar totalmente diferente) así que si ruedan hacia atrás el reloj el número de días utilizado sigue siendo el mismo.
  2. Usa alguna forma de sal en tu encriptación para que dos programas con la misma fecha de expiración tengan diferentes valores.
  3. Aléjate de cosas realmente desagradables, como escribir en el sector de arranque de la HD (mirándote Adobe) perderás más usuarios de esa práctica de los que obtendrás con la DRM.

La clave para cualquier sistema seguro es que no puede confiar en nada de lo que controlan. Cualquier sistema que no tenga una conexión a Internet no puede impedir que vuelva a cargar una máquina virtual.

1

Construir un sistema relativamente seguro pero simple para licencias de software no es nada fácil. No hace falta decir que cualquier sistema (que no sea el alojamiento del código en servidores seguros) se puede romper con los recursos y el tiempo suficientes. Lo mejor que puede hacer es hacer el esfuerzo necesario para hacerlo mayor que el beneficio promedio.

Si realmente quiere proteger sus propios activos de software, debe considerar el uso de una tecnología de licencias comercialmente probada, en lugar de usar la suya propia. Dicho esto, veamos cómo podrías considerar proteger de la manera que describes.

En primer lugar, debe tener en cuenta que, en la era de las máquinas virtuales, cualquier archivo o entrada de registro que cree se puede revertir fácilmente. Sin un componente en línea para el proceso de verificación, no puede evitar este escenario.

Lo que puede hacer cosas como son:

  • tienda un valor cifrado del número de días que el sistema se ha utilizado para - un valor que nunca puede paso atrás.
  • Almacene un contador encriptado que decrementa hacia cero cada vez que se usa el sistema.
  • Almacene un valor encriptado de la última fecha/hora en que se lanzó el software.
  • Almacene un hash cifrado para los otros tres valores.

Ahora tiene un medio para comprobar que estos valores son consistentes y limitan la capacidad de alguien para alterarlos. También debe SALT estos valores para que no puedan reproducirse fácilmente.

0

Noto una tendencia de los instaladores de algunos programas que son clientes de descarga independientes para el resto del programa. ¿Podrías usar la metaprogramación para enviar ejecutables que hagan comprobaciones en algo oscuro como (inserta algo oscuro aquí)?

Cuestiones relacionadas