He hecho un programa que necesito licencia antes de venderlo a los clientes. Como no estoy seguro de que me gane, al menos, el costo del software de licencias comerciales, no me gustaría comprar uno.. Licencia de software en tiempo real en red
Así que estoy en busca de consejo sobre cómo implementar la característica de licencia con lógica siguiente:
- Todo claves de licencia se validan en el lado del servidor cada vez que se inicie la aplicación (sin información de licencias se almacenan en userside excepto la licencia número).
- Solo hay una aplicación ejecutándose con una clave de licencia al mismo tiempo.
Lo que no sé es cómo proteger mi programa de simple descompilación/desmontaje y simplemente quitar una llamada para verificar la licencia? ¿O hacer un servidor propio que hará que una respuesta sea cierta en cada licencia? ¿Cómo se hace normalmente esa seguridad?
He buscado SDK gratuitos o algo así, pero no he podido encontrar nada. ¡Estaré muy agradecido por su ayuda!
P.S: No aspiro a hacer que el sistema sea "indestructible", pero me gustaría recibir la protección que es más costosa de crackear que pagar $ 5.10 por una copia del programa.
P.P.S: Lo siento por mi mal inglés.
¿Ha considerado que esto significa que sus usuarios solo pueden iniciar la aplicación cuando tienen una conexión a Internet que funcione? Esto podría descartar una gran cantidad de usuarios de computadoras portátiles/móviles, y cualquier persona con mala conectividad. Además, ¿qué has intentado hasta ahora? Su pregunta muestra una falta de investigación, y eso a menudo lleva a que las preguntas se cierren o se ignoren. –
http://msdn.microsoft.com/en-us/magazine/cc164108.aspx explica cómo el nombre fuerte del ensamblado impide la manipulación del ensamblaje. Para el servicio web, debe considerar el uso de un certificado de servidor que debe ser validado por el cliente antes de aceptar la respuesta. Pero esto evitaría que todos los usuarios fuera de línea lo usen. – Ramesh
Lo siento, pensé, que la pregunta era clara. Hasta ahora he escrito un servicio web y un cliente para verificar una licencia, y funciona bien, pero es realmente fácil desactivar esa defensa ... Así que he preguntado si alguien puede dar un consejo sobre cómo protegerse de esto. Tan pronto como mi aplicación sea la automatización del juego en línea, mis usuarios deben tener una buena conexión a Internet, por lo que no será un problema con el control en tiempo real. La ofuscación está bien, pero después de la ofuscación todavía puedo ver el evento en el depurador y saltar sobre él ... – CodeDemen