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.