RE:¿Debo temer más a los viruses en ASM?
Publicado por
ASTRO MUERTO (1 intervención) el 05/11/2008 11:40:42
Sí. Con ASM puedes hacer lo que se te antoje. Los virus no tienen un único modo de actuar, de estar residentes, o de infectar; tienen muchas formas de hacerlo, y eso va a depender estrictamente de la creatividad del programador.
Además lo que caracteriza a un virus es su capacidad para contagiar a otros programas o archivos ejecutables. Técnicamente hablando, cuando un programa es compilado se transforma en código de máquina, y lo que hace un virus es trasladar su código de máquina dentro del código de máquina de otro programa, modificándolo para que en lugar de ejecutarse el programa, se ejecute primero el virus, entregándole luego éste el control al programa que lo hospeda.
En otras palabras:
VIRUS = 111111
PROGRAMA SIN INFECTAR = 222222
PROGRAMA INFECTADO = 222222111111
Claramente, algo como esto no puede ser programado en un lenguaje de alto nivel, como Visual Basic, simplemente porque desde un lenguaje de alto nivel, es imposible hacer referencias al propio código del programa una vez que éste está compilado y corriendo.
Un virus necesita tener acceso a su propio código de máquina en el momento de infectar, para duplicarlo y escribirlo en el programa que va a ser infectado.
Cada programa infectado aloja y ejecuta el virus generándose nuevas infecciones tras ser ejecutado.
El motivo por el cual los lenguajes de alto nivel se quedan cortos a la hora de programar un virus, es que dichos lenguajes, están orientados hacia lo práctico. Por ejemplo: ¿Por qué querría un programa tener acceso a su propio código de máquina? Claramente eso es inútil para el fin hacia cual están orientados los enguajes de programación de alto nivel; pero claro, con ASM (y lenguajes de bajo nivel) manejas las interrupciones (en DOS) y las APIS (en windows) de forma directa, pudiendo hacer cosas como las que necesita hacer un virus.
Las cargas de los virus informáticos no se basan simplemente en comprobación de fechas y cosas semejantes. También dependen de la creatividad del programador, así como también de su nivel y conocimiento del sistema operativo que desea infectar.
Por ejemplo, la carga de un virus puede ser:
-mostrar un mensaje.
-cambiar nombres de archivos y/o directorios y/o eliminarlos.
-resetear el sistema opeativo.
-mostrar efectos gráficos.
-Bloquear el teclado.
-Modificar el mapa del teclado.
-Imprimir algo si es que hay una impresora conectada.
-Emitir sonidos.
-Todo lo que al programador se le pueda ocurrir.
O simplemente, un virus, puede no llevar carga alguna, estando tan bien diseñado que el usuario jamás note que está infectado. Un virus bien diseñado no tiene por qué estropear el sistema operativo. Es más, no causará mayor efecto que el simple hecho de replicarse de forma invisible para el usuario.
La creatividad también tiene un papel importante en las infecciones. Existen varios modos de infectar:
-Infección de sobreescritura: Simplemente el virus se copia encima del programa infectado, dejando inútil al programa que, al ejecutarlo, sólo correrá el virus y más nada.
-Infección por agregado: Esto quiere decir que el virus se adhiere en algún lugar del programa infectado, no alterando su buen funcionamiento.
-Infección por suplantación: El virus hará una copia del programa que va a infectar y se copiará en lugar del programa. Cuando el usuario crea por ejemplo que está ejecutando la calculadora, estará en realidad ejecutando el virus, el cual, una vez finalizada su taréa, ejecutará la copia original de la calculadora dando la impresión de que nada ha pasado. El usuario podrá usar sus programas normalmente.
Espero que te haya quedado más claro lo que es un virus. De todos modos en internet existe mucha información al respecto. Saludos.
PD: El que un virus sea peligroso o no, depende estrictamente de la creatividad y del grado de maldad del programador y, por irónico que parezca, también puede depender de que tan mal programador sea. Por ejemplo, si se programa un virus de una forma poco elegante, podrá fallar en algunas ocasiones lo cual provocará errores en los programas infectados e incluso en el sistema operativo.