Esto estaba originalmente en un comentario a otra respuesta, pero creo que sería más adecuado como una respuesta de nivel superior.
Un *virus informático* es un concepto muy simple. Para escribir un virus informático, basta con escribir un programa que se copie a sí mismo en todos los medios disponibles (es decir, todas las unidades de red conocidas, memorias flash, discos duros externos, etc). Eso’s todo. Eso’es un virus. Un virus significa simplemente «un programa que se propaga a sí mismo a otros ordenadores mediante una combinación de operaciones automáticas y manuales». Así que mientras el programa se copie a sí mismo a otros ordenadores, es un virus. No es necesario que se ejecute por sí mismo en los otros ordenadores, ya que un virus se propaga mediante la intervención manual. Si la propagación del programa está completamente automatizada, y no requiere ninguna acción humana, no es un virus sino un gusano.
Pero tal vez el autor de la pregunta se refería más bien a «¿cómo puedo crear malware?», a lo que la respuesta sería escribir un programa que muestre una ventana emergente cada 10 minutos. Eso es molesto, y el usuario no quiere que se ejecute, así que es malware.
Más probablemente quería decir «¿cómo puedo crear malware de última generación que sea realmente interesante desde el punto de vista de la seguridad?», a lo que la respuesta más realista es «no puedes». El malware moderno es extremadamente complejo, y es construido por múltiples personas especializadas. Alguien trabaja en el xdev (desarrollo de exploits) para encontrar y explotar una vulnerabilidad para conseguir un shellcode que se ejecute en el ordenador de la víctima y desplegar un dropper. Otra persona trabaja en el dropper, que llama al ordenador del atacante desde el ordenador de la víctima y descarga la carga útil. Otra persona trabaja en el empaquetador para mantener la carga útil ofuscada hasta que esté bastante seguro de que no se ejecuta en una caja de arena antivirus. Otra persona trabaja en la propia carga útil, que es la que realmente hace las cosas interesantes. Otra persona puede trabajar en un rootkit para ocultar la carga útil una vez que se haya desplegado en el sistema de la víctima. La mayoría de estos pasos pueden omitirse en ciertas circunstancias, por ejemplo, el exploit y el shellcode pueden omitirse si puedo convencer al usuario de que descargue y ejecute el malware directamente. Lo cual no es muy difícil con la mayoría de los usuarios (sólo hay que prometerles emoticonos o porno gratis)
La mayoría del malware moderno es una compilación de muchos componentes de muchos autores. Algunos de ellos son de ingeniería inversa de otro malware, algunos de ellos son escritos a medida, algunos de ellos son comprados a una empresa. En general, una sola persona ya no escribe malware interesante. Es un proyecto demasiado grande, que requiere demasiados conocimientos y, francamente, hacerlo todo desde cero es una pérdida de esfuerzo, ya que significaría reinventar muchas ruedas.
¿En cuanto a matar el malware? No. Si sabe que su ordenador ha sido infectado, haga una copia de seguridad de todos sus datos, borre el disco duro, instale un sistema operativo nuevo y, un par de meses después, pase todos los datos de la copia de seguridad por varios antivirus diferentes utilizando un sistema operativo forense como Kali (www.kali.org — también, vea www.virustotal.com para una buena suite de escáneres) antes de cargarlos de nuevo en su sistema operativo normal. Si lo necesitas antes, sólo accede a él desde un sistema operativo vivo. Incluso después de todo eso, es posible que todavía esté infectado, pero si lo está, probablemente nunca lo sabrá y la única solución segura sería reemplazar el ordenador de todos modos.
Mucha gente le dirá que es un consejo terrible, que es demasiado, y que sólo estoy siendo paranoico. Bueno, yo soy un analista de malware (sólo aficionado, no profesional) y desde mi punto de vista, ese es el único consejo sólido que se puede tomar después de saber que ha sido infectado. Hacer algo menos requiere que confíes en que el malware que tienes no era realmente muy malicioso, y ¿te parece una decisión inteligente? Sobre todo porque, si lo piensas, cualquier cosa que consigas que no sea muy peligrosa probablemente va a descargar un montón de cosas que son muy peligrosas porque la gente que hace las cosas realmente peligrosas está dispuesta a pagar a todos los demás para distribuir sus cargas útiles para ellos.
Como nota final, si realmente quieres aprender cómo se hace el malware y cómo funciona, recomiendo aprender ingeniería inversa de software. Aprenderás una tonelada de malware de esta manera, incluso si no sabes programar. También aprenderás un montón de cosas sobre ordenadores en general. Es una buena cosa para aprender en cualquier circunstancia. ¡Diviértete! 🙂