¿Cómo puede un virus polimórfico descifrar y ejecutar partes del código durante el tiempo de ejecución?

-3

Encontré este artículo sobre un virus polimórfico que se encriptó y desencriptó durante el tiempo de ejecución. El artículo decía que la única parte no cifrada era un código auxiliar que descifraba la siguiente parte del virus. ¿Cómo se puede ejecutar el código que fue encriptado y luego descifrado? El virus no fue escrito en un lenguaje interpretado.

    
pregunta Fluffy 12.04.2016 - 01:13
fuente

1 respuesta

1

Yo mismo no he desarrollado un virus polimórfico, pero la idea de cifrar parte de cualquier ejecutable (ELF, PE o de otro tipo) no es tan inimaginable para mí.

Siempre que haya una parte del código que no esté cifrada para iniciar el proceso (el código auxiliar en su descripción), debería funcionar. Recuerde que (aunque no está cifrado, sino que está comprimido), el kernel de Linux comprime la mayor parte de la imagen y utiliza un mecanismo analógico para descomprimir la imagen durante el arranque.

Siempre que el apéndice inicial constituya una instrucción ejecutable simple que la CPU entienda, el código siempre puede hacer un seguimiento de la dirección de la memoria, el puntero de la instrucción (EIP).

Todo el código debe estar seguro de que, antes de que el EIP alcance la dirección de las instrucciones a ejecutar, el contenido (instrucciones) de esas direcciones se descifra. De manera similar, la lógica del código debe asegurarse de no eliminar referencias a ninguna dirección que apunte a un rango de memoria cifrada (a menos que el propósito sea descifrarlo).

¿Eso tiene sentido?

    
respondido por el wei 12.04.2016 - 01:31
fuente

Lea otras preguntas en las etiquetas