Estoy intentando crear un ejecutable que solo se ejecutará en una máquina. ¿Cuál es la forma más fácil de lograr esto? ¿Un archivo de licencia? ¿O hay una dirección de máquina muy parecida a la MAC para las conexiones de red que podría codificar en el ejecutable?La manera más fácil de limitar la ejecución del ejecutable en una computadora determinada
Respuesta
Si se ejecutará en una sola máquina, entonces ... simplemente asegure la máquina y solo almacene el ejecutable en esta máquina.
Desafortunadamente, este es el único método confiable. respuesta
más larga:
- bits pueden ser copiados
- programas pueden ser dissassembled
- Desensamblaje puede diseñarse inversa (aunque a veces es larga)
- el costo de la ingeniería inversa puede hacerse más alto que el valor producido por el programa, posiblemente a un costo mayor que el valor producido por el programa.
Si se mira el tiempo suficiente en la industria del software:
- DRM: fallan
- Licencias: fallan
- Licencias con la activación web: fallar
Si vale la pena el agrietamiento , se rajará
La manera más fácil sería hacerlo ilegal a través de una licencia. Intentar forzar esto técnicamente es imposible, y solo perjudica a sus usuarios (¿usuario?): ¿Qué sucede si reinstalan el sistema operativo, o cambian su tarjeta de red, o actualizan su CPU?
Si desea crear solo una copia de su archivo ejecutable y si tiene acceso a la máquina en la que tiene que instalar el archivo ejecutable, entonces está bien codificar la dirección MAC en su archivo ejecutable. En caso de que desee distribuir más de una copia de su archivo ejecutable y no tenga acceso a todas las máquinas, puede codificar el archivo ejecutable para solicitar un archivo de licencia que se genera a partir de la dirección MAC de las máquinas. Es un tipo de activación de software.
Me irrito cuando se daña mi tarjeta de red. ¡Me enojaría mucho si reemplazarlo haría que mi software dejara de funcionar! –
También puede usar un número de placa madre. Puede tomar los números de la tarjeta madre y de la tarjeta de red y comprobar que al menos uno de los dos coincide cada vez. –
No hay una solución que sea 100% efectiva, y no hay ninguna solución que sea "más fácil" y también "altamente efectiva". Por lo general, existe un continuo de "efectivo" y "vuelve locos a los usuarios" sobre el que debe tener mucho cuidado.
La dirección MAC no es un lugar horrible para comenzar. No es tan difícil cambiar su dirección MAC, pero si tiene varias instancias del mismo MAC en la misma subred, su máquina no funcionará, por lo que es bueno para mantener a muchas personas en la misma subred ejecutando su producto sin licencias. El problema con MAC es que en los escritorios, el MAC cambia si la tarjeta de red cambia; que marca a tus usuarios que pagan.
Un archivo de licencia es generalmente mejor que modificar el binario. Sin embargo, debe firmar el archivo de licencia para que no se pueda modificar fácilmente.
Su aplicación en sí es siempre el eslabón más débil. Un atacante dedicado simplemente eliminará la prueba de tu aplicación.No hay una solución universal para este problema. Un buen enfoque siempre está relacionado con "mantener a las personas honestas honestas" al facilitar la licencia de su aplicación de manera correcta y al usuario para que pueda determinar si lo han hecho. Puede gastar grandes cantidades de dinero tratando de molestar a las personas que nunca le pagarán de todos modos.
Creo que my answer a otra pregunta se aplica aquí.
Esto es un problema legal, no tecnológico. Su objetivo debe ser hacer que sea fácil para las personas que quieren asegurarse de que tengan licencias válidas para su software. En lugar de proteger su código contra las personas que quieren robarlo, debe concentrarse en ayudar a los clientes que están preocupados por usarlo accidentalmente sin una licencia adecuada.
También voy a repetir mi comentario de yet another question:
Creo que "mantener la gente honesta" es la mente correcta puesta a enfoque de este problema. Nada puede ser criptográficamente seguro, pero que tiene algún tipo de clave única o número para cada licencia puede realmente hacer que sea más fácil para los clientes comerciales contar su software, y que agrega valor a su producto. DRM Onerous (que no funciona) destinado a frustrar a los delincuentes (que nunca pagarían de todos modos) es solo un obstáculo para pagar a los clientes.
- 1. ¿La manera más fácil de mostrar la ubicación?
- 2. ¿Cuál es la forma más fácil de acceder a un micrófono de una computadora en Python?
- 3. La manera más fácil de reorganizar los métodos en Eclipse
- 4. ¿La manera más fácil de ejecutar una aplicación simple GLES/EGL/OpenVG en una PC?
- 5. ¿La manera más fácil de administrar mi CLASSPATH?
- 6. ¿La manera más fácil de hacer un iterador cíclico (circulador)?
- 7. La manera más fácil de recuperar XmlHttpRequest entre navegadores
- 8. La manera más fácil de escribir y leer un XML
- 9. ¿La manera más fácil de clasificar los nodos DOM?
- 10. ¿La manera más fácil de determinar si la conexión a internet del iPhone está disponible?
- 11. ¿La manera más fácil de empaquetar/minificar múltiples archivos javascript?
- 12. ¿Cuál es la manera más fácil en C# para recortar una nueva línea de una cuerda?
- 13. ¿La manera más fácil de probar la existencia de una GPU compatible con cuda de cmake?
- 14. Comunicación entre aplicaciones C#: la manera fácil
- 15. MySQL - Seleccione la última fila insertada manera más fácil
- 16. La manera más fácil de dibujar una secuencia de puntos en WPF desde el código
- 17. ¡Tiene que haber una manera más fácil de manejar matrices!
- 18. La manera más fácil de leer muestras de 2 canales en una matriz de WaveStream
- 19. ¿Hay alguna manera más fácil de enviar la tecla ENTRAR en la pantalla GNU?
- 20. Ver la conexión activa de escritorio remoto en una computadora determinada
- 21. ¿La mejor manera de limitar una versión de prueba?
- 22. ¿Manera más fácil de ejecutar una aplicación Java de Maven?
- 23. La manera más fácil de abrir una página web en Android con un ícono
- 24. ¿La forma más fácil de crear una GUI en Java?
- 25. La manera más fácil de realizar la fusión incremental en mercurial
- 26. ¿Cómo se define la clase de excepción personalizada en Java, de la manera más fácil?
- 27. ¿La manera más fácil de leer una cadena de terminación nula con istream?
- 28. ¿Cuál es la mejor forma de obtener la ruta del ejecutable durante el tiempo de ejecución?
- 29. La mejor/manera fácil de configurar un arranque rápido Linux
- 30. jQuery - La manera más fácil para tirar múltiple (val) en una cadena
¿Cómo distinguirías esa "máquina única" de una réplica exacta en una máquina virtual? El descubrimiento de que los bits se pueden copiar ha llevado a la industria de medios a lo largo de 30 años ... –
posible duplicado de [Algoritmo seguro para crear claves de licencia?] (Http://stackoverflow.com/questions/1015573/secure-algorithm-for-creating -licencia-teclas) – erickson
@erickson: No me parece un duplicado, las licencias solo funcionan para las personas que respetan las licencias para empezar. Sería bueno si el PO aclarara si quiere protegerse contra Murphy o Maquiavelo, pero de la pregunta inferí a Maquiavelo aquí. –