En definitiva, sea cual fuere el motivo por el cual se siguen produciendo virus, se debe destacar que su existencia no ha sido sólo perjuicios: gracias a ellos, mucha gente a tomado conciencia de qué es lo que tiene y cómo protegerlo.

En realidad no 'salieron' de ningún lado. Las personas los han programado, como bien te dijeron arriba, desde antes que existiera el Internet.

Los motivos, muchos y variados. Por ejemplo, cuando existían los discos flexibles de 5 1/4, las empresas que vendían software trataban por muchos medios de evitar que les copiaran sus discos. Algunos trucos aún se usaban hasta hace poco. Entre estos había uno que era esconder rutinas que borraran el disco si no estaba propiamente metida la clave de activación. Eso puede considerarse una especie de virus.


Todo aquel que ha programado -creo- ha podido darse cuenta que existen multitud de comandos que te permiten hacer programitas malos con cara de buenos... 
Otros, los que se meten con el sistema operativo de las máquinas, bueno, ya están en otro nivel. Y así, mientras más elementos tienes de programación en un cierto tipo de aplicación, es más fácil que llegue alguien a inventarse un virusín o pedazo de software que de molestias.


También se ha dicho que hay un gran negocio allá afuera para las empresas que hacen antivirus. Se dice que ellos mismos los sacan para luego vacunarnos a todos. Improbable pero no descabellado.
Y conforme va tomando importancia el internet los usos se vuelven cada vez mas complejos, y perversos.

¿EN QUE SE DESARROLLA UN VIRUS INFORMATICO?

El lenguaje de programación por excelencia para desarrollar virus, es el Assembler pues los denominados lenguajes de alto nivel como Turbo Pascal, C, Delphi, gestores de bases de datos, etc. han sido diseñados para producir software aplicativos.
Una excepción a la regla son los Macro Virus, tratados por separado y los virus desarrollados en Java Scripts, Visual Basic Scripts y de Controles Active.

Las instrucciones compiladas por Assembler trabajan directamente sobre el hardware, esto significa que no es necesario ningún software intermedio –según el esquema de capas entre usuario y hardware- para correr un programa en Assembler (opuesto a la necesidad de Visual Basic de que Windows 9x lo secunde). No solo vamos a poder realizar las cosas típicas de un lenguaje de alto nivel, sino que también vamos a tener control de cómo se hacen. Para dar una idea de lo poderoso que puede ser este lenguaje, el sistema operativo Unix está programado en C y las rutinas que necesitan tener mayor profundidad para el control del hardware están hechas en Assembler. Por ejemplo: los drivers que se encargan de manejar los dispositivos y algunas rutinas referidas al control de procesos en memoria.

¿COMO CREAR UN VIRUS FACILMENTE?