De casualidad ví esto y me interesó, a ver ... abordemos algunas cosas antes de contestar.
Que yo sepa, un lenguaje de programación "multiplataforma" es Java. Pero claro, para poder crear un virus en Java necesitarias tener Java en las maquinas que quieras infectar... Desde mi punto de vista no sería buena idea por el simple hecho de que ya dependes de un factor "externo" para correr tu virus: Java.
Así es, necesitás algo que te permita correrlo en todos los sistemas, ya que los formatos binarios son totalmente distintos y por más que armes trucos en ASM (que es terriblemente dependiente del sistema y procesador por ser, justamente de bajo nivel), de una u otra forma no podés evadir al "contenedor" y ahí ya perdés portabilidad.
Lo óptimo es Java, es más fácil de encontrar que .NET o perl, python o demás cosas. (y encima, bien configurado)
Java?¿ ok; y C?? El mismo codigo se puede compilar en la mayoria de los SO al igual que C++. Se podria hacer un virus muliplataforma en C?¿
Sí, con ayuda del preprocesador si ... ahí vas a poder compilar para cada plataforma, pero no vas a tener un binario "universal" ...
ASM?
lenguaje bajo nivel?
Tampoco, relee la primer respuesta.
Hola n0more,
estoy de acuerdo en que no es buena idea depender de la VM para correr los virus, pero seamos francos, la VM está instalada en la mayoría de los equipos.
Un saludo.
+1
Puede usarse como un "entrypoint" para algo desarrollado en C (un downloader y un poquito más) ... eso lo veo más copado.
Un rootkit de bajo nivel podria ser la solución y sin plataforma porque arrancaría antes del sistema operativo haciendola independiente, solo que tendrias que programarla para que sepa interactuar con el kernel de windows, linux y mac.
El lanzador o el que infecta si debería estar hecho en un lenguaje propio del sistema operativo pero es lo de menos.
Yo no conozco ninguno.
Ahá ... un bootkit? demasiada complicación al pedo... salvo que lo hagas por amor al arte, claro está.
para lo que mencionás, hay que tocar muchas cosas delicadas y estar implementando muchas otras ... y ah, si, en sistemas tipo Unix (no sé la situación actual de Windows, no espero que sea distinta, por lo menos en 7) tenés que elevar privilegios para poder tocar el MBR ... eso si estás usando un esquema MBR y no otra cosa
Saludos.