2011-09-07 6 views
6

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

+0

¿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 ... –

+0

posible duplicado de [Algoritmo seguro para crear claves de licencia?] (Http://stackoverflow.com/questions/1015573/secure-algorithm-for-creating -licencia-teclas) – erickson

+0

@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í. –

Respuesta

8

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á

5

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?

0

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.

+0

Me irrito cuando se daña mi tarjeta de red. ¡Me enojaría mucho si reemplazarlo haría que mi software dejara de funcionar! –

+0

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. –

1

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.

1

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.

Cuestiones relacionadas