¿Cómo los desarrolladores de software protegen su código contra la aplicación de parches binarios?

1

Suponiendo que tenemos un software que verifica en línea un servidor remoto si la entrada ingresada por un usuario (una clave de licencia) es válida.

El servidor envía un socket al cliente True o False si la licencia es correcta o no.

En el binario, se realiza un salto ( jz ...) dependiendo del resultado.

Creo que esta implementación es común al software (corríjame si me equivoco en ese punto).

El problema es que nada puede evitar que un usuario malintencionado parche el binario para cambiar el "salto" anterior y omita la validación de verificación de la clave de licencia.

Entonces, ¿cómo evita el desarrollador de software esa situación?

    
pregunta Duke Nukem 24.07.2016 - 12:04
fuente

2 respuestas

5

No puedes evitar que las personas jueguen con tu exe, si verificas que no haya templado, entonces aplicarán el código que lo comprueba. Una cosa que puede hacer es no distribuir todo el programa sino una funcionalidad básica que falta en la versión del exe, luego, cuando ingresen el parche de la clave del CD que en la memoria con los datos se descargan de una URL que contiene la clave del CD. Eso o enviar código cifrado a cada cliente que requiere la clave correspondiente para descifrar.

    
respondido por el Ronan Thibaudau 24.07.2016 - 13:35
fuente
4
  

En el binario, se realiza un salto (jz ...) dependiendo del resultado.

Hay más complejos y múltiples controles de este tipo en su lugar. Sin embargo, se reduce exactamente a lo que escribiste.

  

Entonces, ¿cómo los desarrolladores de software previenen esa situación?

En absoluto. No pueden y cualquier intento de hacerlo tendrá un gran impacto en la usabilidad.

Lo que HACEN las grandes compañías de software: confían en el hecho de que los usuarios promedio de su software

  • no entiendo cómo funciona esa protección y, a su vez:
  • no sé cómo depurar el código del ensamblador para encontrar los 10 - 20 condicionales en el binario y parchearlos
  • no pasa por esa molestia para ahorrar unos pocos dólares

Como resultado, pocas personas toman el esfuerzo y publican sus resultados (conocidos como "grietas") en Internet para que otros los descarguen y utilicen. Ahí es donde las grandes compañías de software pueden darse el lujo de intervenir con una gran cantidad de abogados y demandar a todos los que intentan publicar binarios parcheados. El éxito de esa práctica es "discutible" al menos.

    
respondido por el marstato 24.07.2016 - 13:00
fuente

Lea otras preguntas en las etiquetas