(Esta es una descripción muy poco técnica de todo el proceso. No dudes en comentar y preguntar)
El mecanismo en la práctica es el mismo en todos los sistemas y tiene mucho que ver con el motivo por el que estas cosas se denominan virus en lugar de bacterias .
Un virus no está "vivo" porque carece de maquinaria esencial. Lo que hace es hijack la maquinaria de una entidad más compleja, como una célula, y hacer que haga su oferta: el virus no puede ser más que un mecanismo de secuestro con la lista de "ofertas" como carga útil .
Un virus informático es muy similar a esta estructura simple.
¿Cómo funciona el secuestro?
Un sistema informático debe tener una secuencia de inicio . Primero, haga esto, luego haga eso, hay más instrucciones aquí , luego ... - y un < em> secuencia de acción (que se utiliza para iniciar programas).
Por ejemplo, cuando intenta ejecutar un archivo ejecutable, el sistema abre el archivo, descubre lo que necesita (y se queja si no puede satisfacer esas necesidades; por ejemplo, "biblioteca faltante"), descubre cómo ubicarlo. todos los componentes empaquetados en el archivo .exe
en la memoria, determinan dónde hacerlo, actualizan los componentes con información entre ellos para que puedan comunicarse, desempaquetan los componentes y los colocan en los lugares preparados en la memoria, y finalmente liberan un Medida de control al componente marcado "primero".
El virus secuestra este proceso mediante (dos ejemplos):
- localice la lista de lugares donde se va a activar el código ejecutable
(MBR, sector de inicio, cargador de sistema operativo, código auxiliar de sistema operativo, scripts de ejecución automática, procesos de inicio, ...)
-
inyectarse a sí mismo en esta lista, de modo que el sistema tenga una cosa más que hacer cuando se inicie, y esa cosa es darle vida a la crisálida del virus. Esto se puede hacer modificando la lista de cosas por hacer del sistema operativo, o colocándose en algún lugar conveniente, como la carpeta
auto-run
o la rama Run registry
en Windows. Todo lo que se coloque allí se ejecutará al inicio.
-
o puede reemplazar uno de los componentes, guardándolo en otro lugar. Cuando el sistema activa el componente creyendo que es legítimo, el virus hace lo suyo, luego también recupera el componente hibernado y lo activa como si fuera el sistema. Entonces, en efecto, la secuencia es nuevamente un paso más larga, pero "oficialmente", desde afuera, el número de pasos no cambia.
El virus también puede escribirse dentro de las rutinas de diagnóstico del sistema operativo para que no informen nada fuera de lo común. Este proceso se puede ejecutar muy cerca del hardware , por lo que la infección es muy difícil de detectar.
Para infectar ejecutables, el virus hace lo mismo de una manera ligeramente diferente. Puede modificar el "manifiesto" interno del archivo para que el sistema realmente ejecute el virus. El virus luego extraerá de su "cuerpo" hinchado el cuerpo del proceso original, y lo activará a su vez. El usuario verá ejecutarse el proceso deseado y no notará un ligero retraso en la activación.
La desinfección requiere conocimiento del virus para poder extraer el archivo original del objeto infectado y usarlo para reemplazarlo por completo.
Existen formas más sofisticadas de ocultamiento: muchos archivos ejecutables tienen áreas internas que en su mayoría son ceros, que se utilizan como almacenamiento temporal de un tipo u otro. El virus se oculta allí, y solo hace una pequeña modificación en el archivo para que el "primer componente" que se active no sea el original sino el área vacía donde ahora reside el virus. Al estar "dentro" del archivo, el tamaño del archivo ahora no se modifica. El virus, al recibir el control, se moverá a otro lugar, nuevamente reduciendo a cero el área (en la memoria) donde estaba escondido, y pasará el control al antiguo "primer componente", que luego no notará nada incorrecto.