c# store protection trial

c# - Dónde almacenar la información de prueba de protección para la protección del software Propósito



store protection (5)

¿Puede requerir que los usuarios que usan la versión de prueba estén conectados a Internet? Si es así, haga que la versión de prueba se ponga en contacto con un servidor durante el inicio y puede verificar todo tipo de cosas. no tiene que preocuparse por almacenar cosas en la computadora de los usuarios o por alterar los datos o la hora del sistema.

Puede estar duplicado con otras preguntas, pero juro que busqué mucho en Google y busqué mucho en StackOverflow.com, y no puedo encontrar la respuesta a mi pregunta:

En una aplicación de C # .Net, ¿dónde almacenar la información de la prueba de protección, como la Fecha de vencimiento, la cantidad de veces utilizada?

Entiendo que, todo tipo de estrategias de protección de software puede ser resquebrajado por un pirata informático sofisticado (porque casi siempre pueden sortear el paso de verificación de caducidad). Pero lo que ahora voy a hacer es protegerlo de manera razonable para que un usuario "común" / "avanzado" no pueda arruinarlo.

Bien, para probar que he buscado en Google y he buscado mucho en StackOverflow.com, enumero todas las estrategias posibles que obtuve:

1. Entrada de registro

Primero, algunos usuarios pueden no tener acceso incluso a leer la tabla de Registro.

En segundo lugar, si colocamos la información de prueba de protección en una entrada de registro, el usuario siempre puede averiguar dónde está comparando las diferencias antes y después de la instalación del software. Simplemente pueden cambiarlo.

De acuerdo, podría decir que debemos cifrar la Información de prueba de protección, sí, podemos hacerlo. Pero, ¿qué pasa si el usuario simplemente cambia la fecha de su sistema antes de instalar?

Bien, podría decir que también deberíamos poner una fecha de último uso, si algo está mal, la fecha de último uso podría funcionar como una guía de protección. Pero, ¿qué sucede si el usuario simplemente desinstala el software y elimina todas las entradas del Registro relacionadas con este software y luego vuelve a instalarlo?

No tengo idea de cómo lidiar con esto. Por favor ayuda.

Un archivo simple

Primero, hay algunos lugares para poner el archivo plano:

  • 2.a) un archivo XML simple bajo la ruta de instalación del software
  • 2.b) archivo de configuración

Nuevamente, el usuario puede simplemente desinstalar el software y eliminar estos archivos sin formato, y reinstalar el software.

- El software mismo

Si colocamos la información de la prueba de protección (Fecha de caducidad, no podemos incluir el Número de tiempos de uso) en el propio software, todavía es susceptible a los casos que mencioné anteriormente. Además, ni siquiera es bueno hacerlo.

- Una clave de producto de prueba

Funciona como un proceso de licencia, es decir, ponemos la información de prueba en una cadena firmada por RSA. Sin embargo, se requieren demasiados pasos para que un usuario intente usar el software (es posible que pierda la paciencia):

  • 4.a) El usuario descarga el software;
  • 4.b) El usuario envía un correo electrónico para solicitar una clave de producto de prueba al proporcionar el nombre de usuario (o correo electrónico) o información de hardware;
  • 4.c) El servidor recibe la solicitud, RSA la firma y la envía al usuario;
  • 4.d) El usuario ahora puede usarlo bajo la condición de (Fecha de caducidad y Número de horas utilizadas).

Ahora, el servidor tiene un registro del nombre de usuario o la información del hardware del usuario, por lo que el usuario será rechazado para solicitar una segunda prueba. ¿Es legal recopilar información de hardware?

En una palabra, el usuario tiene que hacer un paso adicional (solicitar una clave de producto de prueba) solo por intentar usar el software, lo cual no es bueno (me considero un usuario).

NOTA: Esta pregunta no es sobre la licencia, sino sobre dónde almacenar la información de la PRUEBA. Una vez que caduque la versión de prueba, el usuario debe solicitar una licencia (clave de CD / clave de producto). Voy a utilizar la firma RSA (vinculada al hardware del usuario)

PD: mi software se dirigirá al mercado de China, cuyo mercado de software es diferente al de EE. UU. La mayoría de las personas en China, solo compran hardware, generalmente no compran software como Micosoft Windows / Office (solo usan copias piratas). Sin embargo, algunos programas de software profesional dirigidos a un campo específico, los investigadores aún están dispuestos a comprarlo SI no hay una versión crack o la versión crack es muy difícil de instalar.


La opción 1 (clave de registro simple) o 2 (archivo simple) está bien. Aquí está mi razonamiento:

  • Los usuarios con privilegios estándar tienen permisos de lectura para el registro. Si no pueden leer tu clave, algo más está mal. Los usuarios con privilegios estándar no tienen permisos de escritura para el registro, pero esto no importa porque tampoco tienen permisos para instalar software en primer lugar. En otras palabras, el usuario tendrá permiso para crear su clave de registro en el momento de la instalación o necesitará ayuda para instalar de todos modos. Por lo tanto, los problemas técnicos básicos que plantea para la clave de registro no son realmente un factor.
  • Simplemente no se preocupe por los usuarios que hacen cosas como retrasar el reloj de su sistema o piratear manualmente el registro para romper su clave. Permítanme decirlo de nuevo: no se preocupe por los usuarios que toman la decisión consciente de alterar su sistema de manera significativa para superar las limitaciones de su versión de prueba , y no se equivoquen, cambiar el reloj del sistema o editar el registro son modificaciones significativas . La razón por la que no debería preocuparse por estos usuarios es que representan exactamente $ 0 en ingresos potenciales . Un usuario que esté dispuesto a tomar este tipo de decisión consciente sobre la piratería de su software no se rendirá y decidirá pagar por su producto si no funciona. Si no pueden obtener su software de forma gratuita, o irán con un competidor o prescindirán de él. Usted está en esto para ganar dinero: no quiere gastar tiempo y recursos tratando de obtener ventas que no puede ganar o enviar usuarios a un competidor. Por lo tanto, los problemas de seguridad básicos que plantea para cualquiera de las opciones no son un factor.

No encontrarás una sola solución perfecta. Los esfuerzos que pongas en esto deben ser proporcionales al precio del producto que haces. Si vale mucho, entonces compre una solución profesional. Si no, usa cualquier combinación de métodos que encuentres. Utilice el registro, solicite una clave de prueba en línea, verifique si el usuario manipula la hora del sistema, etc.


Sé que este es un hilo viejo, pero me topé con él y otros podrían encontrarlo útil.

Una opción válida en estos días podría ser que su aplicación solicite un servicio de descanso en el momento de la instalación para generar una licencia de prueba o pagada. Cada vez que el usuario abre la aplicación, la aplicación consulta al servicio de descanso por la información de la licencia que está vinculada a esa copia específica del software.


Yo sugeriría tomar un tacto ligeramente diferente.

Regala una versión "lite" de tu software. Sin prueba, solo funcionalidad realmente limitada.

Si desean probar una versión "profesional", pídales que obtengan una clave de prueba. Esto debe estar encriptado en algún formato, guárdelo donde desee. Cuando se inicie la aplicación, compruebe la existencia de esta clave de prueba. Si está ahí, entonces descifra. Dentro de la clave debe estar la fecha de vencimiento del software.

Probar la fecha y actuar en consecuencia. Si no existe, simplemente ejecútelo como la versión lite.

Para obtener una clave de prueba, puede hacer que ingresen una dirección de correo electrónico y otra información que desee en una casilla de su aplicación. No es irrazonable pedir que la máquina esté conectada a Internet para esta parte limitada. Incluso MS Office requiere que se conecte a Internet brevemente para validar las claves. Haga que la aplicación se ponga en contacto con su servidor con la solicitud de clave. Enviarles la clave por correo electrónico.

Para obtener puntos de bonificación, vincule la clave de prueba con alguna métrica de la propia máquina. Incluso si es sólo el nombre de la caja. Esos cambios rara vez y es un juicio de todos modos.

Si realmente no puede obligarlos a conectarse a Internet para adquirir una clave, entonces puede ir por una ruta ligeramente diferente. Haga que la aplicación genere una solicitud (que incluya el nombre de la máquina o algo parecido). Haga que el usuario lo llame con el ID de solicitud generado o que lo conecte a un sitio web. Luego, envíeles por correo electrónico la clave de esa máquina.

Todo esto impide compartir claves. Tiene un retroceso en caso de que la ubicación de la llave esté conectada con un gato e impida que la llave se mueva a otras máquinas. También le proporciona una forma de hacerlo de forma completamente desconectada. Incluso si extraen la clave de cifrado pública de su aplicación para descifrar la clave de licencia del software, no tendrán su clave de cifrado privada para crear un nuevo archivo de clave de licencia.

Ahora, la gestión de claves es solo un aspecto del mal con el que estás luchando.

El siguiente paso es que debe ofuscar su aplicación de tal manera que no puedan simplemente descompilarla y omitir sus comprobaciones clave. Esto es mucho más común que pasar archivos clave.

Incluso puede tener varios métodos en la aplicación que prueban la clave de diferentes maneras. Pero esta es una pregunta diferente.

Como bono final para aquellos que tienen la suficiente fuerza para hacer esto: siembre las diferentes tablas piratas con el software de generación clave que hace cosas interesantes a las máquinas de las personas que están tratando de estafarlo. Puedes ser realmente creativo aquí.

O, como dijo Joel, simplemente no puedes preocuparte por ellos. Después de todo, si están haciendo todo lo posible por encontrar una versión crackeada de su software, no iban a pagar por ello de todos modos y realmente no ha perdido nada.