Como puedo hacer que mi aplicación solo dure una cantidad X de tiempo y luego se bloquee o directamente se desinstale? C#
Juan Álvarez
Está pregunta fue realizada en nuestro grupo en facebook Preguntas de Programación
Hola Juan! (Y)
Hay varias formas:
1. Crear un registro en el sistema operativo, en dónde guardes la fecha de instalación y al iniciar el programa validar si se pasó el periodo de prueba. La desventaja es que si cambian la fecha o borran el registro pueden seguir usando tu software; aunque es algo incómodo porque puede causar problemas con los certificados SSL al que lo haga.
2. Tener un servidor dónde se haga una consulta, si el usuario tiene una Key válida puede usarlo, sino, generarle una de prueba que dure 30 días. La desventaja es que al desinstalar puede generar una nueva key.
3. Mezclar los métodos 1 y 2, y añadir logueo con cuentas de usuario (emails previamente verificados) para mayor seguridad. Asegurarse de ofuscar el ensamblado (https://docs.microsoft.com/es-es/visualstudio/ide/dotfuscator/).
4. Enviar versiones de prueba con características limitadas. Aunque te complica el tener 2 ramas del proyecto, nadie podrá utilizar las características avanzadas si no puede descargar la versión completa. Mezclar con los métodos anteriores para más seguridad y limitar el número de veces que una key puede ser activada, así la gente no se puede pasar los ejecutables y ejecutar la versión completa cómo si nada.
5. Utilizar algún DRM (ej: https://partner.steamgames.com/doc/features/drm)
Ningún método es 100% seguro, ni los sistemas más avanzados de antipiratería se salvan de ser vulnerados. Dependiendo de la aplicación puedes buscar otros mecanismos de obtención de ingresos o por lo menos bloquear a unos cuantos listos con estos métodos. Eso sí, hay que tener cuidado con no terminar haciendo más complicada la vida de los que pagan por el software que de los que consiguen versiones piratas.
¡Saludos!