Un protector de código afirma que "asegura que es físicamente imposible ejecutar el código sin un número de serie" ¿es esto una estafa?

5

El software VMProtect (que se encuentra en enlace ) afirma que:

"permite la generación y verificación de números de serie. Tanto la generación manual como la automática son compatibles. Los números de serie se pueden limitar por hora o fecha y se pueden bloquear en el hardware, mientras que el período de actualización gratuita también se puede limitar. VMProtect garantiza que sea físicamente imposible ejecutar el código sin un número de serie ".

Creo que la palabra "imposible" es claramente incorrecta porque pensé que cualquier mecanismo de protección de número de serie podría romperse si se dedica suficiente tiempo a la ingeniería inversa.

Sin embargo, he buscado en línea y VMProtect se usó como empaquetador para ofuscar el malware a través de la protección virtualizada como se describe aquí enlace por lo que parece lograr que "proteja el código ejecutándolo en una máquina virtual" como afirma. Entiendo las ideas de Virtualization-Obfuscated Software y no busco una respuesta al respecto (simplemente lo utilicé como ejemplo de una cosa que VMProtector pretende hacer, que de hecho hace).

¿Es este anuncio falso o hay nuevas formas sofisticadas de hacer que el código no se ejecute sin números de serie?

    
pregunta whatever489 05.02.2016 - 00:21
fuente

1 respuesta

7

Por lo tanto, su mercado está protegiendo su aplicación de las miradas indiscretas de los ingenieros de reversa. Yo mismo, encuentro esa página un poco demasiado esponjosa y un poco demasiado escasa en detalles. Ciertamente no compraría su producto basado únicamente en las descripciones de esa página.

Según las descripciones, parece que generan un lenguaje de ensamblaje personalizado para cada aplicación, luego ejecutas el código bizzaro dentro de su traductor de ensamblajes (máquina virtual) que produce el código de ensamblaje real en tiempo de ejecución. ¿Estoy en lo correcto? Puedo ver por qué eso hace que el código sea difícil de aplicar ingeniería inversa.

Ahora a tu pregunta. Ya que controlan el arnés en el que se ejecuta el código, podrían agregar fácilmente un cheque en el inicio que diga "¿el número de serie que proporcionaron coincide [el número de serie que estoy esperando]? Si no es así, cancele". Entonces, la respuesta simple a la pregunta "¿hay nuevas formas sofisticadas de hacer que el código no se ejecute sin números de serie?" es sí , pero la mejor pregunta es "¿cómo evitar que los ingenieros inversos descubran qué número de serie está esperando?".

Primero, me pregunto qué quieren decir con "número de serie". En el sentido más estricto, eso significa "tomar el número anterior emitido y agregar uno". Eso no debería ser demasiado difícil de falsificar. Además, ¿cómo obtienen la parte del [número de serie que estoy esperando] para comparar? ¿Su producto requiere acceso a Internet para llamar a casa por teléfono para obtener el número de serie correcto? Claro que pueden hacer una conexión SSL desde casa para protegerla de la detección de paquetes, pero como se ejecuta en mi hardware, ¿puedo hacer un volcado de memoria y extraer el [número de serie que estoy esperando] directamente?

Tal vez en lugar de "número de serie", significan algún tipo de huella digital del hardware del sistema. Es un truco común en la industria de la seguridad agrupar la dirección MAC, el número de serie de la placa base, el número de modelo del procesador, la fecha de hoy (si el código solo es válido para un día), etc. De esa manera no me importa Si extrae el hash que estoy esperando de mi código fuente, buena suerte virtualizando el hardware que produce un hash coincidente. Un truco como ese sería coherente con su afirmación de que está "bloqueado en el hardware", pero en realidad no podría llamarse un "número de serie".

Incluso si tienen algún comprobador de huellas dactilares súper elegante, su arnés es un ensamblaje regular, como ingeniero inverso, ¿puedo poner un goto para omitir el cheque?

Entonces, la respuesta más larga es: podría haber formas de crear una aplicación que se niegue a ejecutar sin el número de serie / clave / huella dactilar adecuados, pero su intuición probablemente tenga la razón de que se puede descifrar. con suficiente esfuerzo Además, su página de descripción definitivamente no da suficientes detalles para inspirar confianza. Pero * je *, están en el juego de la ofuscación, ¿qué más debería esperar? Lo que hayan hecho es probablemente lo suficientemente bueno para mantener a la gente de Symantec ocupada durante un par de meses mientras recaudan algo de dinero.

    
respondido por el Mike Ounsworth 05.02.2016 - 00:53
fuente

Lea otras preguntas en las etiquetas